اجرای خودکار دستور ها در لینوکس-بخش اول

سه دستور batch , at و cron برای خودکار سازی انجام دستور ها و اسکریپت ها در یک زمان و تاریخ خاص در لینوکس بکار می روند.در این پست با دستور های at و batch توضیح داده می شوند.دستور at بطور ساده یعنی اینکه در زمان و تاریخ چه دستوری اجرا شود.مثلن در ساعت 11:30 صبح فردا یا در ساعت 12:30 ظهر 10 روز بعد از امروز دستور را اجرا کند.

فرمت دستوری آن بصورت زیر است :

at time date

یعنی اول دستور at را به همراه زمان و تاریخ در خط فرمان بنویسید و سپس Enter رو بزنید تا یک علامت < در خط فرمان مشاهده کنید. جلوی علامت < دستور را بنویسید و برای ورود دستور های بعدی دوباره Enter بزنید تا زمانی که هر چه تعداد دستوری که می خواهید در آن زمان و تارخ اجرا شوند دستور ها را نوشته و Enter بزنید.بعد اطمینان از دستور های دلخواه تون باید کلید های Ctrl+D را بزنید تا دوباره اعلان خط فرمان نشان داده بشود. با فشردت این کلید ها کار شما تمام شده و باید اجرای دستور ها رو به سیستم عامل بسپارید.در ادامه فقط فرمت زمانبدی های گوناگون رو نشان می دهیم.

  1. at 11 am may 20

یعنی در ساعت 11 روز 20 may

یک شکل فرمت آن که با کلمه کلیدی now می اید بصورت زیر است که به معنی از حالا است :

at now + COUNT UNIT

COUNT :  مقدار عددی

UNIT : عبارت هایی مثل min یعنی minute  و یا hour به معنی ساعت و year , day

مثال های فرمت بالا :

  1. at now + 1 min
  2. at now + 1 hour

مفهوم مثال یک یعنی دستور(ها) را یک دقیق بعد از انجام بده و مثال دوم یعنی دستور(ها) را یک ساعت بعد از انجام بده.مثال هایزیر به راحتی قابل درک هستند :

  1. at 10 am tomorrow
  2. at 11:00 next month
  3. at 22:00 today
  4. at now + 1 week
  5. at noon

البته راه ساده تری برای اجرای دستور ها وجود دارد. بجای اینکه تک تک دستور ها را جلوی علامت < وارد کنید و بعد Enter بزنید کافیست این دستور ها را در یک فایل ذخیره کنید و ادرس فایل را به دستور at بدهید.در هر خط این فایل باید یک دستور وجود داشته باشد و دستور ها زیر هم نوشته شوند.برای این کار باید از سوئیچ f- استفاده کنید. فرمت آن بصورت زیر خواهد بود :

at -f /path/to/filename time date

example

at -f /root/atcmdfile now +1 hour

برای مشاهده تمام دستور های زمانبندی شده برای اجرا دستور atq یا at -l رو در خط فرمان اجرا کنید.که یک شماره برای هر دستور بر می گرداند که می توانید با یکی از دستور های atrm و یا at -d  به همراه شماره دستوری را پاک کنید.

atrm number of job

or

at -d number of job

batch دستوریست که چندین دستور at را اجرا می کند. معنی batch دسته ای اجرا کردن دستور هاست. ابتدا دستور batch را نوشته و سپس Enter را بزنید و بعد آن دستور at را اجرا کنید و به دنبال آن دستور ها را وارد کنید.

با هر بار اجرای دستور های at یک mail به کاربر root زده می شود.