وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

در Command در لینوکس

0 5
زمان لازم برای مطالعه: 5 دقیقه



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 <<ENDcommand_to_be_runEND

برای خواندن دستورات از یک فایل به جای ورودی استاندارد، دستور با را فراخوانی کنید -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 صف

پیشنهاد می‌کنیم بخوانید:  مرتب‌سازی درج در جاوا اسکریپت در این مقاله توضیح خواهیم داد که در پس مرتب‌سازی درج چیست و آن را در جاوا اسکریپت پیاده‌سازی می‌کنیم. Insertion Sort یکی از ساده‌ترین الگوریتم‌های مرتب‌سازی است. این بسیار شهودی، پایدار، در محل، و از نوع مقایسه است. الگوریتم مرتب‌سازی پایدار الگوریتمی است که در آن دو شی با کلیدهای مساوی ظاهر می‌شوند...

پرس و جوها می توانند نامی از داشته باشند 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 دستور، لطفا نظر خود را بنویسید.

terminal

در

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1403-02-07 14:50:02

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید