فرمان at در لینوکس - وان سرور آکـادمی
دستور at در لینوکس
دستور at در لینوکس

فرمان at در لینوکس

زمان تقریبی مطالعه: 4 دقیقه

دستور at در لینوکس

atیک ابزار خط فرمان است که به شما امکان می دهد تا دستورات را در زمان خاص اجرا کنید. جاب های ایجاد شده با atفقط یک بار اجرا می شوند. در این مقاله توضیح خواهیم داد که چگونه می توان از فرمان atو برنامه های همراه آن batch, atq, atrm برای مشاهده ، حذف و ایجاد جاب ها استفاده کرد تا بعداً اجرا شود.

نصب at

بسته به توزیع لینوکس، atممکن است در سیستم لینوکس شما وجود داشته باشد.

اگر atنصب نشده است ، می توانید به راحتی آن را نصب کنید.

یک راز بزرگ درمورد 90 % هاستینگ های ایرانی، اورسل کردن بیش از حد است که باعث افت کیفیت سرورها میشود.

وان سرور با ارائه دسترسی های مختلف این امکان را به شما خواهد داد که تمامی منابع سرورتان را مدیریت و بررسی کنید و همچنین با ارائه گارانتی 100% برگشت وجه ریسک خرید شما را به %0 کاهش میدهد.

برای خرید سرور مجازی با گارانتی 100% بازگشت وجه کلیک کنید.

نصبat در اوبونتو و دبیان

sudo apt update 
sudo apt install at

نصبat در CentOS و Fedora

sudo yum install at

پس از نصب برنامه ، مطمئن شوید atdکه برنامه ریزی Daemon در حال اجرا است و هنگام بوت شدن سیستم عامل فعال می شود:

sudo systemctl enable --now atd

نحوه استفاده از دستور at

نحو ساده شده برای atفرمان به شرح زیر است:

at [OPTION...] runtime

دستور at تاریخ و زمان ( runtime) زمانی که می خواهید برای اجرای این جاب به عنوان یک پارامتر خط فرمان و دستور به از ورودی استاندارد اجرا شود میگیرد.

بیایید جاب ایجاد کنیم که ساعت 9 صبح اجرا شود:

at 09:00

پس از Enter زدن ، از شما می خواهد دستور فرمان at را بدهید که اغلب با at>شروع می شود.

warning: commands will be executed using /bin/sh
at>

یک یا چند فرمان مورد نظر برای اجرای را وارد کنید:

tar -xf /home/one3erver/file.tar.gz

وقتی کار دستورات را تمام کردید ، Ctrl-D را فشار دهید تا سریعاً از آن خارج شوید و جاب را ذخیره کنید:

at> <EOT>
job 4 at Tue May  5 09:00:00 2020

دستور شماره جاب و زمان و تاریخ اجرا را نمایش می دهد.

علاوه بر وارد کردن دستور سریع at ، روشهای دیگری نیز برای عبور از فرمان موردنظر برای اجرای آن وجود دارد . یک روش استفاده از echoو pip است:

echo "command_to_be_run" | at 09:00

گزینه دیگر استفاده از Here document:

at 09:00 <<END
command_to_be_run
END

برای خواندن دستورات از یک پرونده به جای ورودی استاندارد ، دستور زیر را با گزینه -f زیر مسیر فایل فراخوانی کنید به عنوان مثال ، برای ایجاد جاب که اسکریپت را اجرا کند /home/linuxize/script.sh:

at 09:00 -f /home/linuxize/script.sh

اگر فرمان خروجی تولید کند ، atپس از اتمام کار ، ایمیلی از جمله خروجی را برای کاربر ارسال می کنید. فراخوانی atبا -Mگزینه ای برای عدم ارسال ایمیل است:

at 09:00 -M

با استفاده از -mحتی اگر هیچ خروجی هم وجود نداشته باشد یک ایمیل برای ارسال میکند:

at 09:00 -m

فرمانbatch

batchیا نام مستعار at -b، جاب را برنامه ریزی کرده و آنها را در صف دسته ای اجرا می کند. به طور پیش فرض ، جاب ها وقتی انجام می شود که میانگین بار سیستم زیر 1.5 باشد. اگر میانگین بار سیستم از مقدار مشخص شده بالاتر باشد ، کارها در صف انتظار خواهند ماند.

برای ایجاد جاب با batch، دستوراتی را که می خواهید اجرا کنید ، وارد کنید:

echo "command_to_be_run" | batch

تعیین زمان اجرا

atطیف گسترده ای از زمان را می پذیرد. می توانید زمان ، تاریخ و میزان تغییرات را از زمان فعلی مشخص کنید:

  • Time – برای مشخص کردن زمان ، از فرم HH:MMیا فرم HHM استفاده کنید. برای نشان دادن قالب 12 ساعته ، از amیا pmبعد از آن استفاده کنید. همچنین می توانید از رشته هایی مانند now، midnight، noon، یا teatime(16:00) استفاده کنید. در صورت گذشتن زمان مشخص شده ، جاب روز بعد انجام می شود.
  • تاریخ – این دستور به شما امکان می دهد تا اجرای کار را در یک تاریخ معین برنامه ریزی کنید. تاریخ را می توان با استفاده از نام ماه به دنبال آن روز و یک سال اختیاری مشخص کرد. شما می توانید از today، tomorrowو یا روزهای هفته استفاده کنید. تاریخ را می توان همچنین با استفاده از فرمت های MMDD[CC]YY، MM/DD/[CC]YY، DD.MM.[CC]YYو یا [CC]YY-MM-DDوارد کرد.
  • افزایشatهمچنین افزایش در قالب now + count time-unitرا می پذیرد ، که countدر آن عدد است و time-unitمی تواند یکی از موارد زیر باشد: minutes، hours، days، یا weeks.

زمان ، تاریخ و افزایش را می توان با هم ترکیب کرد ، در اینجا چند مثال آورده شده است:

  • برنامه ریزی یک جاب برای یکشنبه آینده ساعت 10 دقیقه دیرتر از زمان فعلی:at sunday +10 minutes
  • برای تنظیم 2 روز دیگر ساعت 1 بعد از ظهر:at 1pm + 2 days
  • برنامه ای را برای اجرا در 12:30 اکتبر 21 2020 برنامه ریزی کنید:at 12:30 102120
  • برای انجام 1 ساعت دیگر:at now +1 hours

همچنین می توانید با استفاده از گزینه t- یک زمان و تاریخ را در [[CC]YY]MMDDhhmm[.ss] مشخص کنید. به عنوان مثال:

at -t 202005111321.32

تعیین صف

به طور پیش فرض ، جاب های ایجاد شده با atدر صف aو جاب های ایجاد شده با batchدر صف bبرنامه ریزی شده اند .

صف های نمایش داده شد می تواند یک نام از aتا zیا Aتا Z باشند. صف های دارای حروف پایین با ظرافت کمتری اجرا می شوند ، به این معنی که آنها نسبت به حروف دارای حروف بالاتر اولویت دارند.

می توانید صف را با -q مشخص کنید. به عنوان مثال ، برای تعیین جاب در صفL ، اجرا کنید:

at monday +2 hours -q L

لیست جاب های در انتظار

برای لیست کردن جاب های معوق کاربر ، دستور atqیا at -lرا اجرا کنید :

atq

خروجی تمام جابها ، هرکدام در هر خط را نشان می دهد. هر خط شامل شماره جاب ، تاریخ ، زمان ، نامه صف و نام کاربری می باشد.

9	  Tue May  5 12:22:00 2020 a linuxize
12	Wed Oct 21 12:30:00 2020 a linuxize
15	Tue May  5 09:00:00 2020 a linuxize
6	  Tue May  5 09:00:00 2020 a linuxize
13	Mon May  4 23:08:00 2020 a linuxize
11	Wed Jul  1 10:00:00 2020 a linuxize
4	  Tue May  5 09:00:00 2020 a linuxize

هنگامی که atq به عنوان کاربر اداری فراخوانی شد ، مشاغل معلق همه کاربران را فهرست می کند.

حذف مشاغل در انتظار

برای حذف یک جاب در انتظار ، به عنوان مثال ، برای حذف کار با شماره 9 ، شما اجرا می کنید:

atrm 9

محدود کردن کاربران

فایل های /etc/at.denyو /etc/at.allow به شما اجازه کنترل اینکه چه کاربرانی می توانند جاب با atو یا batch ایجاد کنند میدهد. پرونده ها شامل لیستی از نام های کاربری هستند که در هر خط یک نام کاربری دارند.

به طور پیش فرض ، فقط پرونده /etc/at.deny وجود دارد و خالی است ، به این معنی که همه کاربران می توانند از atدستور استفاده کنند . اگر می خواهید مجوز کاربری خاص را رد کنید ، نام کاربری خود را به این پرونده اضافه کنید.

در صورت وجود پرونده /etc/at.allowفقط کاربرانی که در این پرونده فهرست شده اند می توانند از این atدستور استفاده کنند .

اگر هیچ یک از پرونده ها وجود نداشته باشد ، فقط کاربران دارای امتیازات اداری می توانند از این atدستور استفاده کنند .

نتیجه گیری

ابزارat دستورات را از ورودی استاندارد می خواند و آنها را بعداً اجرا می کند. . برخلاف crontab ، جاب های ایجاد شده با at فقط یک بار انجام می شود.

برای اطلاعات بیشتر در مورد تمام گزینه های موجود atدستور man atرا در ترمینال خود اجرا کنید.

4/5 - (1 امتیاز)