از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
در Command در لینوکس
سرفصلهای مطلب
at
هست یک command-line ابزاری که به شما امکان می دهد دستورات و اسکریپت های مختلف را برنامه ریزی کنید تا به طور خودکار در زمان و تاریخ خاصی اجرا شوند. مشاغل ایجاد شده با at
فقط یک بار اجرا می شوند و آن را به ابزاری عالی برای مدیریت کارهای یک بار مصرفی تبدیل می کند که باید در زمان دقیق تکمیل شوند.
در این مقاله روش استفاده را توضیح خواهیم داد at
و ابزارهای همراه آن batch
، atq
، atrm
برای مشاهده، حذف و ایجاد مشاغلی که در فرصتی دیگر اجرا شوند.
در حال نصب at
بسته به روی توزیع، at
ممکن است وجود داشته باشد یا نباشد روی سیستم لینوکس شما
اگر دستور نصب نشده باشد، می توانید به راحتی آن را با استفاده از مدیر بسته توزیع خود نصب کنید.
-
نصب
at
روی اوبونتو و دبیانsudo apt update
sudo apt install at
-
نصب
at
روی CentOS و فدوراsudo yum install at
پس از نصب بسته مطمئن شوید atd
، دیمون زمان بندی، در حال اجرا است و شروع به کار می کند روی چکمه:
sudo systemctl enable --now atd
روش استفاده از at
فرمان
نحو ساده شده برای at
دستور به شرح زیر است:
at [OPTION...] runtime
این at
دستور تاریخ و زمان را می گیرد (runtime
) زمانی که می خواهید کار را به صورت a اجرا کنید command-line آرگومان، و دستوری را که باید از ورودی استاندارد اجرا شود را وارد می کنید.
به عنوان مثال، بیایید شغلی ایجاد کنیم که در ساعت 9:00 صبح اجرا می شود:
at 09:00
بعد از اینکه دکمه را فشار دادید Enter
کلید، به شما ارائه خواهد شد at
خط فرمان، که معمولا با شروع می شود at>
. علاوه بر این، یک پیام هشدار نمایش داده می شود که به شما در مورد پوسته ای که دستور در آن اجرا می شود، اطلاع می دهد:
warning: commands will be executed using /bin/sh
at>
یک یا چند دستور را که می خواهید اجرا کنید وارد کنید:
tar -xf /home/rasanegar/file.tar.gz
وقتی وارد کردن دستورات تمام شد، فشار دهید Ctrl-D
برای خروج از فرمان و ذخیره کار:
at> <EOT>
job 4 at Tue May 5 09:00:00 2020
این دستور شماره کار و زمان و تاریخ اجرا را نمایش می دهد.
همچنین راههای دیگری نیز وجود دارد که میتوانید دستوری را که میخواهید اجرا کنید، ارسال کنید، علاوه بر اینکه دستور را وارد کنید at
سریع. یکی از راه ها استفاده از echo
دستور دهید و فرمان را به at
:
echo "command_to_be_run" | at 09:00
گزینه دیگر استفاده از Here document است:
at 09:00 <<END
command_to_be_run
END
برای خواندن دستورات از یک فایل به جای ورودی استاندارد، دستور با را فراخوانی کنید -f
گزینه ای که مسیر فایل را دنبال می کند. به عنوان مثال، برای ایجاد یک کار که اسکریپت را اجرا می کند /home/rasanegar/script.sh
:
at 09:00 -f /home/rasanegar/script.sh
به طور پیش فرض، اگر دستور خروجی تولید کند، at
پس از اتمام کار، یک ایمیل شامل خروجی برای کاربر ارسال می کند. فراخوانی کنید at
با -M
گزینه ای برای سرکوب اعلان ایمیل:
at 09:00 -M
استفاده کنید -m
برای ارسال ایمیل حتی اگر خروجی وجود نداشته باشد:
at 09:00 -m
batch
فرمان
batch
یا نام مستعار آن at -b
زمانی که سطح بار سیستم اجازه می دهد، کارها را زمان بندی می کند و آنها را در یک صف دسته ای اجرا می کند. به طور پیش فرض، کارها زمانی اجرا می شوند که میانگین بارگذاری سیستم کمتر از 1.5 باشد. مقدار بار را می توان در هنگام فراخوانی مشخص کرد atd
اهریمن، دیو. اگر میانگین بار سیستم بالاتر از مقدار مشخص شده باشد، کارها در صف منتظر می مانند.
برای ایجاد شغل با batch
، دستوراتی را که می خواهید اجرا کنید ارسال کنید:
echo "command_to_be_run" | batch
تعیین زمان اجرا
این at
ابزار طیف گسترده ای از مشخصات زمانی را می پذیرد. می توانید زمان، تاریخ و افزایش زمان فعلی را مشخص کنید:
-
زمان – برای تعیین زمان از
HH:MM
یاHHMM
فرم. اگر ترجیح میدهید از قالب ساعت 12 ساعته استفاده کنید، میتوانید «am» یا «pm» را بعد از زمان اضافه کنید. به عنوان مثال، 10:30 صبح یا 6:45 بعد از ظهر. همچنین می توانید از رشته هایی مانند استفاده کنیدnow
،midnight
،noon
، یاteatime
(16:00). اگر یک کار یا رویداد برای زمانی برنامه ریزی شده باشد که قبلاً گذشته است، به طور خودکار برای همان زمان برنامه ریزی می شود. روی روز بعد. -
تاریخ – دستور به شما اجازه می دهد تا اجرای کار را زمان بندی کنید روی یک تاریخ معین تاریخ را می توان با استفاده از نام ماه و به دنبال آن روز و سال اختیاری مشخص کرد. همچنین، میتوانید از رشتههایی مانند «امروز»، «فردا» یا روز هفته برای نشان دادن تاریخ استفاده کنید. تاریخ را نیز می توان با استفاده از نشان داد
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
.
زمان، تاریخ و افزایش را می توان با هم ترکیب کرد. در اینجا چند نمونه هستند:
-
یک کار را برای یکشنبه آینده در زمانی ده دقیقه دیرتر از زمان فعلی برنامه ریزی کنید:
at sunday +10 minutes
-
یک کار را برای اجرا در ساعت 1 بعد از ظهر دو روز دیگر برنامه ریزی کنید:
at 1pm + 2 days
-
یک کار را برای اجرا در ساعت 12:30 21 اکتبر 2020 برنامه ریزی کنید:
at 12:30 102120
-
یک کار را برنامه ریزی کنید تا یک ساعت بعد اجرا شود:
at now +1 hours
همچنین می توانید زمان و تاریخ را در قسمت مشخص کنید [[CC]YY]MMDDhhmm[.ss]
با استفاده از -t
گزینه. به عنوان مثال:
at -t 202005111321.32
تعیین صف
به طور پیش فرض، مشاغل ایجاد شده با at
در صف نامگذاری شده برنامه ریزی شده اند a
، و مشاغل ایجاد شده با batch
در برنامه ریزی شده اند b
صف
پرس و جوها می توانند نامی از داشته باشند a
به z
و A
به Z
. صفهایی با حروف پایینتر با زیبایی کمتری اجرا میشوند، به این معنی که نسبت به آنهایی که حروف بالاتر دارند اولویت دارند.
برای تعیین صف برای یک کار، از -q
گزینه به دنبال آن نام صف مورد نظر. به عنوان مثال، اگر می خواهید یک کار را در صف “L” تنظیم کنید، باید دستور را با -q L
گزینه:
at monday +2 hours -q L
فهرست مشاغل معلق
برای فهرست کردن کارهای معلق کاربر، آن را اجرا کنید atq
یا at -l
دستور:
atq
خروجی همه کارها را در هر خط فهرست می کند. هر خط شامل شماره کار، تاریخ، زمان، حرف صف و نام کاربری است.
9 Tue May 5 12:22:00 1402 a rasanegar
12 Wed Oct 21 12:30:00 1402 a rasanegar
15 Tue May 5 09:00:00 1402 a rasanegar
6 Tue May 5 09:00:00 1402 a rasanegar
13 Mon May 4 23:08:00 1402 a rasanegar
11 Wed Jul 1 10:00:00 1402 a rasanegar
4 Tue May 5 09:00:00 1402 a rasanegar
چه زمانی atq
به عنوان یک کاربر اداری فراخوانی می شود، کارهای معلق همه کاربران را فهرست می کند.
حذف مشاغل معلق
برای حذف یک کار معلق، را فراخوانی کنید atrm
یا at -r
دستور به همراه شماره شغل. به عنوان مثال، برای حذف کار با شماره نه، باید اجرا کنید:
atrm 9
محدود کردن کاربران
این /etc/at.deny
و /etc/at.allow
فایلها به شما امکان میدهند کنترل کنید که کاربران میتوانند با کدام شغل ایجاد کنند at
یا batch
فرمان فایل ها حاوی لیستی از نام های کاربری، یک نام کاربری در هر خط هستند.
به طور پیش فرض، فقط /etc/at.deny
فایل وجود دارد و خالی است، به این معنی که همه کاربران می توانند از آن استفاده کنند at
فرمان اگر می خواهید مجوز یک کاربر خاص را رد کنید، نام کاربری را به این فایل اضافه کنید.
اگر /etc/at.allow
فایل موجود است فقط کاربرانی که در این فایل فهرست شده اند می توانند از آن استفاده کنند at
فرمان
اگر هیچ یک از فایل ها وجود نداشته باشد، فقط کاربرانی که دارای امتیازات مدیریتی هستند می توانند از آن استفاده کنند at
فرمان
نتیجه
این at
command یک ابزار مفید است که به شما امکان می دهد دستورات را در زمان بعدی اجرا کنید. برخلاف دستور crontab که دستورات را به صورت تکراری اجرا می کند، at
دستور فقط یکبار دستورات را اجرا می کند.
برای کسب اطلاعات بیشتر در مورد گزینه های مختلف موجود با at
دستور، می توانید تایپ کنید man at
در شما terminal. با این کار دفترچه راهنما ظاهر می شود page که تمام گزینه های موجود را با توضیحات مفصل لیست می کند.
اگر سؤال دیگری دارید یا در استفاده از آن نیاز به کمک دارید at
دستور، لطفا نظر خود را بنویسید.
در
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1403-02-07 14:50:02