بیشتر اوقات دستورات و راه حل هایی برای انجام سریع برخی از فرایندها وجود دارد. به عنوان مثال، وب مسترهای پرمشغله ترجیح می دهند کارهای تکراری را با استفاده از یک فرآیند خودکار انجام دهند. چرا که به این وسیله در زمان خود صرفه جویی کرده و می توانند کارهای بیشتری را در تایم کوتاه سازماندهی کنند. اگر از یک سیستم عامل شبیه به یونیکس استفاده می کنید، یک دستورjob cron می تواند با اجرای خودکار وظایف در زمان شما صرفه جویی کند. در این مقاله اصول کرون جاب cron job در لینوکس و نحوه استفاده از آن برای زمان بندی وظایف را توضیح خواهیم داد.
وب سایت روناک هاست بزرگترین مرجع خرید و فروش انواع سرویس های ابری و میزبانی وب است که از جلمه آن ها می توان به موارد زیر اشاره کرد:
سرور مجازی NVME | یک مدل سرور مجازی که به هارد های NVME پر سعرت مجهز شده است که بتواند سایت ها و اطلاعات را با سرعت بالا بارگذاری کند
سرور مجازی بورس | نوعی سرور مجازی که مخصوص کسانی است که برای بورس ، فارکس و انجام معاملات مالی و جهانی می خواهد سرویسی ایمن و سریع داشته باشند
سرور مجازی ترید | نوعی دیگر از سرور های مجازی است که مخصوص افراد تریدر و کسانی که در بازار های مالی و ارز دیجیتال فعالیت می کنند ساخته شده است
سرور اختصاصی | یکی دیگر از سرویس های روناک هاست که مخصوص افراد حرفه ای و کارهای سنگین برای کسانی که فعالیت های اختصاصی روی سرور می خواهند انجام دهند
هاست وردپرس ارزان | یک هاست محبوب برای سایت های وردپرسی با قیمت مناسب و بالاترین کیفیت و پشتیبانی عالی
هاست ووکامرس | یک هاست وردپسی اما مناسب برای سایت های فروشگاهی و آنلاین شاپ ها با سرعت بالا و قیمت بسیار مناسب
اصول کرون جاب cron job در لینوکس
شما می توانید با استفاده از چند روش مختلف، کارهای cron را ایجاد و اصلاح کنید. در این آموزش، نحوه انجام این کار را با استفاده از لینوکس Shell Prompt (Terminal) به شما نشان خواهیم داد. در اینجا چند عملیات اساسی وجود دارد که cron job می تواند انجام دهد.اگر می خواهید فایل crontab کاربر فعلی را ویرایش کنید، دستور زیر را در ترمینال تایپ کنید:
crontab -e
این دستور، نتیجه ایی همانند تصویر زیر را به شما می دهد.
زیرا از ویرایشگر vi استفاده میکند، میتوانید دستورات پایه vi را یاد بگیرید تا اطمینان حاصل کنید که کارهای صحیحی انجام میدهید. اگر می خواهید crontab کاربر دیگری را تغییر دهید، می توانید crontab -u [user] -e را تایپ کنید. به خاطر داشته باشید که شما فقط می توانید این کار را به عنوان superuser انجام دهید، به این معنی که باید قبل از دستور sudo su را تایپ کنید.
اگر می خواهید فایل crontab فعلی کاربر فعلی را حذف کنید، دستور زیر را تایپ کنید:
crontab -r
گزینه زیر مانند -r است، اما قبل از حذف crontab از کاربر می خواهد گزینه بله / خیر را انتخاب کند:
crontab -i
اگر می خواهید محتویات فایل crontab را که در حال حاضر با آن وارد شده اید مشاهده کنید، دستور زیر را در ترمینال تایپ کنید:
crontab -i
دستور دیگری وجود دارد که به شما امکان میدهد ببینید آیا فایلهای crontab ایجاد شدهاند یا خیر. شما میتوانید فقط crontab -l را تایپ کنید. اگر چنین فایلی ندارید، نتیجهای مشابه این را خواهید دید.
همچنین اگر می خواهید لیست فایل های crontab سایر کاربران را مشاهده کنید، می توانید crontab -u [user] -l را به صورت root تایپ کنید.
علاوه بر آشنایی با عملیاتهای پایه، یادگیری سینتکس پایه نیز اهمیت دارد. در اصل، یک فایل crontab از دو قسمت تشکیل شده است: زمانبند و دستور. این است که چگونه دستور نوشته میشود:
* * * * * /bin/sh backup.sh
- این دستور به این این معنی است که cron job درهر دقیقه یک نسخه پشتیبان یا بک آپ را برای شما تهیه می کند.
- 30 18 * * * rm / home / hostinger / tmp / * نیز به این معنی است که هر روز ساعت 6:30 بعد از ظهر فایل های موقت را از / home / hostinger / tmp حذف می کند.
بیایید کمی بیشتر با جزئیات بیشتر ببینیم.
نحوه صحیح نوشتن سینتکس کرون جاب cron job در لینوکس
همانطور که قبلاً اشاره شد، یک فایل crontab پنج فیلد دارد – هر فیلد توسط یک علامت ستاره (*) نمایش داده میشود – برای تعیین تاریخ و زمان اجرای تکراری یک وظیفه مشخص.
- دقیقه – دقیقه از زمان اجرای دستور، از 0 تا 59.
- ساعت – ساعتی که دستور اجرا می شود، از 0 تا 23.
- روز ماه – روز ماهی که میخواهید فرمان اجرا شود، از 1 تا 31.
- ماه – ماهی که دستور مشخص شده در آن اجرا می شود، از 1 تا 12.
- روز هفته – روزی از هفته که میخواهید دستور اجرا شود، از 0 تا 7.
همچنین در هر فایل crontab باید از کاراکترهای مناسب استفاده کنید.
- ستاره (*) – برای تنظیم تمام پارامترهای زمان بندی.
- کاما (،) – برای حفظ دو یا چند زمان اجرای یک فرمان.
- خط تیره (-) – برای تعیین محدوده زمانی هنگام تنظیم چندین زمان اجرای یک فرمان.
- اسلش ( / ) – برای ایجاد فواصل زمانی از پیش تعیین شده در یک محدوده خاص.
- آخرین (L) “آخرین در انگلیسی” – برای هدف خاص تعیین آخرین روز هفته در یک ماه معین. مثلا 3L یعنی چهارشنبه آخر.
- روز هفته (W) “روز هفته به زبان انگلیسی” – برای تعیین نزدیکترین روز هفته به یک زمان معین. به عنوان مثال، 1W به این معنی است که اگر 1 شنبه باشد، دستور در روز دوشنبه (3th) اجرا می شود.
- هش (#) – برای تعیین روز هفته و به دنبال آن یک عدد از 1 تا 5. به عنوان مثال، 1#2 به معنای دوشنبه دوم است.
12 نمونه از نحوه صحیح نوشتن کرون جاب cron job در لینوکس
اکنون که نحوه صحیح نوشتن سینتکس cron را یاد گرفتید، قصد داریم چند مثال دیگر را برای شما در درک بهتر قوانین ذکر شده در بالا ارائه کنیم. قبل از ادامه، به یاد داشته باشید که نتیجه دستور به طور خودکار به حساب ایمیل محلی شما ارسال می شود. بنابراین، اگر میخواهید دریافت این ایمیلها را متوقف کنید، میتوانید>/dev/null 2>&1را اضافه کنید.
0 5 * * * /root/backup.sh >/dev/null 2>&1
اگر میخواهید محتوای ایمیل را به یک حساب خاص ارسال کنید، میتوانید MAILTO را دنبال شده توسط آدرس ایمیل اضافه کنید. در ادامه یک نمونه آورده شده است:
MAILTO=”name@example-domain.com”0 3 * * * /root/backup.sh >/dev/null 2>&1
در ادامه، چند نمونه دیگر از سینتکس آورده شده است:
دستوری که اجرا می شود | کد دستور |
برای انجام یک نسخه پشتیبان از پایگاه داده در نیمه شب، و یک بار در روز اجرا کنید. | 0 0 * * * /bin/sh backup.sh
|
برای انجام یک نسخه پشتیبان از پایگاه داده دو بار در روز در ساعت 6:00 صبح و 6:00 بعد از ظهر. | 0 6.18 * * * /bin/sh backup.sh
|
برای نظارت هر شش ساعت. | 0 */6 * * * /scripts/monitor.sh
|
برای انجام یک کار cron برای فایل اسکریپت واقع در فهرست اصلی هر 10 دقیقه. | */10 * * * * /home/user/script.sh
|
برای انجام پشتیبان گیری ساعتی از پایگاه داده هر 20 جولای. | 0 * 20 7 * /bin/sh backup.sh
|
برای اجرای یک نسخه پشتیبان از پایگاه داده در نیمه شب هر سه شنبه. | 0 0 * * 2 * /bin/sh
|
برای انجام سفارش در ژانویه، فوریه و می. | * * * 1,2,5 * /script/script.sh
|
برای اجرای یک فرمان هر 5 دقیقه در ساعت 5 صبح، از ساعت 5:10 صبح. | 10-59/5 5 * * * /home/user/script.sh
|
برای اجرای سفارش فصلی در روز اول ساعت 8 صبح. | 0 8 1 */3 * /home/user/script.sh
|
برای تنظیم یک برنامه برای چندین کار در یک cron job | * * * * * /scripts/script.sh; /scripts/scrit2.sh
|
برای انجام یک کار خاص هر بار که سیستم را راه اندازی می کنید. | @reboot /scripts/script.sh
|
برای اجرای سفارش در روز اول هر ماه | 0 0 1 * * /home/user/script.sh
|
مجوزهای کرون جاب cron job در لینوکس
دو فایل در cron job نقش بسیار مهمی را ایفا می کنند.
- /etc/cron.allow– اگر allow وجود داشته باشد، باید حاوی نام کاربر باشد تا کاربر بتواند از cron jobs استفاده کند.
- /etc/cron.deny– اگر فایل allow وجود نداشته باشد اما فایل cron.deny وجود داشته باشد، برای استفاده از cron jobs کاربر نباید در فایل cron.deny فهرست شود.
یک کرون جاب cron job در لینوکس چیست؟
Cron یک برنامه کاربردی برای تکرار وظایف در زمان بعدی است. دادن دستوری که یک کار را در یک زمان خاص زمان بندی می کند، به طور مکرر یک کار cron است. اگر میخواهید یک کار را زمانبندی کنید، برای تاریخ بعد، میتوانید از دستور دیگری استفاده کنید. اما برای کارهای تکراری، cron راه حل ایده آل است.
Cron یک دیمون است، به این معنی که در پسزمینه برای اجرای وظایف غیر تعاملی کار میکند. در ویندوز، ممکن است با فرآیندهای پس زمینه مانند سرویس ها آشنا باشید. یک دیمون همیشه در حالت خواب است و منتظر است تا ببیند آیا یک فرمان از او میخواهد تا کار خاصی را انجام دهد – چه در رایانه یا از هر رایانه دیگری در شبکه. فایل cron یک فایل متنی ساده است که حاوی دستوراتی است که باید در یک زمان خاص اجرا شوند. فایل crontab پیشفرض سیستم / etc / crontab است و در دایرکتوری crontab، / etc / cron.* / قرار دارد. فقط مدیران سیستم می توانند فایل crontab سیستم را ویرایش کنند.
با این حال، از آنجایی که سیستمعاملهای شبه یونیکس از چندین کاربر پشتیبانی میکنند، هر کدام میتوانند فایل crontab خود را ایجاد کنند و دستوراتی را برای انجام وظایف در هر زمان صادر کنند. یک cron daemon فایل را بررسی می کند و دستور را در پس زمینه سیستم اجرا می کند. با cron jobs، میتوانید تعمیر و نگهداری سیستم، نظارت بر فضای دیسک و برنامهریزی پشتیبانگیری را خودکار کنید. به دلیل ماهیت خود، cron jobها برای رایانههایی که 24 ساعته و 7 روز هفته کار میکنند – یک سرور مناسب هستند. لطفاً توجه داشته باشید که اگرچه cron job ها بیشتر توسط مدیران سیستم استفاده می شود، اما می تواند برای توسعه دهندگان وب نیز بسیار مفید باشد. به عنوان مثال، از cron برای غیرفعال کردن حساب های منقضی شده، بررسی لینک های خراب یا حتی ارسال خبرنامه به کاربران هدف استفاده کنید.
نتیجه گیری
تنظیم یک وظیفه زمانبندی خودکار نه تنها به شما راحتی میبخشد، بلکه شما دیگر کارهایی را که باید انجام دهید را از دست نمی دهید. همه چیز در زمان مخصوص به خود انجام می شود.
Cron job یک روش عالی برای مدیریت این نوع وظایف است، برای هر دونماینده سیستم یا در حرفههای دیگر مانند توسعه دهنده وب. شما فقط باید از دستور مناسب استفاده کنید و زمان مناسب را انتخاب کنید.
در زیر چند دستور پایه آمده است:
- $ crontab e— برای ایجاد و اصلاح یک فایل
- $ crontab -u user -e— برای ویرایش فایل crontab کاربر دیگری با دسترسی روت
- $ crontab -l— برای مشاهده لیست فایل های crontab برای کاربران فعلی.
- $ crontab -r— برای حذف فایل های crontab
- $ crontab -a file_name— برای نصب file_name به عنوان فایل crontab (در برخی از سیستم ها -a مورد نیاز نیست).
حالا سعی کنید اجازه دهید اتوماسیون هر زمان که می خواهید برای شما کار کند.