cron job (کرون جاب) در لینوکس به چه معناست؟
cron job (کرون جاب) در لینوکس به چه معناست؟
کارهای برنامه ریزی شده
ممکن است بخواهید که در یک زمان خاصی یک فرمانی اجرا شود.
مثلا ساعت 23 شب سیستم به طور خودکار خاموش شود.
برای این کار می توانید از یک ابزاری به نام at استفاده کنید.
برای مثال دستور زیر را به این صورت وارد کنید و اینتر را فشار دهید :
at 23:00
حالا می توانید دستور موردنظرتان را وارد کنید و سپس ctrl+d را فشار دهید :
shutdown -h now
حالا دستور atq را بزنید این دستور صف دستورات at که قرار است اجرا شود را نمایش می دهد،
و نهایتا برای حذف کردن مثلا عنصر اول این صف می توانید از دستور زیر استفاده کنید :
اگر مجددا دستور atq را بزنید و خروجی را مشاهده کنید.
می بینید که فعالیت اول از این صف حذف شده است.
دو فایل etc/at.allow/ و etc/at.deny/ به ترتیب لیست کاربرانی را که حق اجرای دستور at دارند و آنهایی که ندارند را مشخص می کند.
اگر نام کاربری در هر دو فایل آمده باشد آن کاربر حق اجرای دستور at را خواهد داشت چون فایل allow اول بررسی می شود،
اما دستور at برای انجام کارهایی است که یک دفعه قرار است اجرا شوند.
حالا ممکن است کارهایی باشد که هر روز سر ساعت خاصی، یا در چند ساعت یک بار باید انجام شوند
و در این صورت باید از ابزار cron استفاده شود،
cron برنامه ای است که همواره بر روی سیستم در حال اجرا است که اصطلاحا به آن cron daemon هم می گویند.
فایل های تنظیمات آن در مسیر های var/spool/cron/ و etc/cron.d/ و همچنین etc/crontab/ قابل مشاهده است.
دو نوع cron job داریم آنهایی که مربوط به سیستم هستند و آنهایی که مربوط به کاریر هستند.
jobهای سیستمی تحت عنوان کاریر root اجرا می شوند و می توانند بر کل سیستم تأثیر بگذارند.
مثلا rotate کردن فایل های Log ، برای ساختن cron job سیستمی با کاریر root وارد شوید
و فایل etc/crontab/ را باز کنید و مطابق توضیحات فعالیت مورد نظر خود را اضافه کنید.
توجه داشته باشید که در زیر دایرکتوری etc/ چندین دایرکتوری وجود دارد، مثلا etc/cron.daily/ اینها فعالیت هایی هستند
که روزانه اجرا می شوند. برای بازه های زمانی مختلف چنین دایرکتوری هایی وجود دارد
که اگر script مورد نظر خودتان را زیر این دایرکتوری ها بگذارید در آن بازه زمانی اجرا خواهد شد.
نکته : برای ساختن cron job در سطح user از دستور crontab استفاده می کنیم.
با دستور ~ cd به دایرکتوری خانه خود بروید. سپس دستور vi cronjob را بزنید و متن زیر را در آن بنویسید :
حالا فایل را ذخیره کنید. سپس دستور زیر را بزنید :
crontab ~/cronjob
در ساعت ۱۲ ظهر یک ایمیل به شما ارسال خواهد شد که در آن اطلاعات خروجی دستور ifconfig را ارسال کرده است.
توجه داشته باشید که اگر سیستم mail را ندارید آن را به کمک دستور زیر نصب کنید :
apt-get install mailutils
cron jobهای کاربران در یکی از مسیرهای var/spool/cron/ یا var/spool/cron/tabs/ یا var/spool/cron/crontabs/ ذخیره می شود
که با مراجعه به این مسیرها می توانید در موردشان اطلاعات کسب کنید.
نکته 1 : ابزار cron هم همانند ابزار at فایل های etc/cron.allow/ و etc/cron.deny را برای کنترل دسترسی دارد.
نکته 2 : خب حالا فرض کنید که یک cron job را برای ساعت 22 تنظیم کرده اید،
اگر در آن ساعت سیستم خاموش باشد، چه اتفاقی می افتد؟
اتفاقی که می افتد این است که در این صورت آن job اجرا نخواهد شد.
anacron ابزاری است که کارهای cronی را که اجرا نشده اند اجرا خواهد کرد.
یکی از موارد مهمی که در هنگام اجرای فعالیت های cron و at مهم است تنظيم بودن ساعت است،
توصیه می شود که network time protocol را بر روی سیستم تان تنظیم کنید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.