چگونه  یک کرون جاب  اتوماتیک در  لینوکس اوبونتو  ایجاد کنیم؟ آموزش طراحی سایت

چگونه یک کرون جاب اتوماتیک در لینوکس اوبونتو ایجاد کنیم؟

اگر کاربر اوبوتو باشید حتما برای شما هم پیش امده که برای یک سری کار ها نیاز به کرون جاب دارید. در طراحی سایت و یا پیاده سازی سایت بر روی سرور نیز این مورد مشهود است. در صورتی که از سیستم های مدیریت سرور همچون whm استفاده کنید به راحتی می توانید کرون جاب خودتان را ایجاد کنید. اما در صورتی که سرور خود را با nginx و بدون این سیستم های مدیریت سرور ایجاد کنید، چگونه باید یک کرون جاب ایجاد کنید. ما اینجاییم که به راحتی این مورد را برای شما بر روی Ubuntu 18.04 اجرا کنیم. با ایران وبر همراه باشید.

پیش نیاز های نصب کرون جاب

شما برای این کار باید یک سیستم عامل Ubuntu داشته باشید. این که ورژن اون کدام باشید، زیاد تفاوتی ایجاد نمی کند. زیرا که همه پکیج نصب کرون جاب را که در این آموزش بیان می شود، پشتیبانی می کنند. بنابراین Ubuntu 16.04 و یا Ubuntu 18.04 و یا Ubuntu 20.04 تفاوتی ایجاد نمی کند.

نصب cron بر روی سیستم عامل

برای نصب پکیج کرون جاب به ترتیب دستور های زیر را اجرا کنید:

sudo apt update
sudo apt install cron
sudo systemctl enable cron

با توجه به این که ممکن است این پکیج نصب باشد، ممکن است به این مرحله نیاز نداشته باشید.

آموزش روش ایجاد کرون جاب و کار با ان

شما برای اینکه یک کرون جاب ایجاد کنید باید با اصول اولیه کرون جاب اشنا باشید. در کرون جاب شما باید زمان اجرا اسکریپت یا دستور مورد نظر را به کرون جاب اعلام کنید. در زیر نمونه ای از یک دستور کرون جاب برای شما اورده شده است:

30 17 * * 2 curl http://www.google.com

در دستور بالا بخش اول که به صورت عدد هست برای مشخص کردن زمان کرون جاب است و در ادامه دستور مورد نظر امده است:

30 17 * * 2

خب بهتر است که زمان را توضیح دهیم. پس برای درک بهتر اعداد بالا را حذف می کنیم:

* * * * *
1.min  2.hour   3.day_of_month 4.month 5.day_of_week

1- min: اولین رقم نشان دهنده دقیقه ای است که دستور ما باید اجرا شود. اگر دقیقه مشخص ندارد و نیاز است هر دقیقه ای اجرا شود این مورد به صورت ستاره نمایش داده می شود.

2- hour: دومین رقم نشان دهنده ساعت است که از ۰ تا ۲۳ می تواند عدد دریافت کند. در صورتی که دستور باید هر ساعت اجرا شود از علامت * استفاده می کنیم.

3-day_of_month: سومین رقم روز از ماه را نشان می دهد. شما می توانید از عدد ۰ تا ۳۱ را در این بخش قرار دهید همچنین برای این که هر روز اجرا شود از * استفاده کنید.

4- month: این بخش هم ماه را برای اجرا مشخص می کند. مقدار عددی این مورد نیز از ۱ تا ۱۲ می باشد که ۱ اولین ماه میلادی و ۱۲ اخرین ماه میلادی را نمایش می دهد. برای اجرا شدن یک اسکریپت در هر ماه می توانید از * استفاده کنید.

5-day_of_week: پنجمین رقم، روز هفته را نشان می دهد که باید از ۰ تا ۶ قرار گیرد. البته اگر باید دستور هر روز اجرا شود می توانید از * استفاده کنید. عدد ۰ نشانگر روز دوشنبه و ۶ نشانگر یکشنبه خواهد بود.

مثال های کاربردی از crontab

زمان زیر نمایشگر اجرا شدن یک اسکریپت در هر دقیقه هست:

* * * * *

کد پایین، اسکریپت مورد نظر ما را هر ساعت و در دقیقه ۱۲ اجرا می کند.

12 * * * *

کد بعدی اسکرپت را در دقیقه های ۰،۱۵،۳۰ و ۴۵ دقیقه هر ساعت اجرا می کند.

0,15,30,45 * * * *

کد بعدی، اسکریپت مورد نظر ما را در کرون جاب هر ۱۵ دقیقه اجرا می کند.

*/15 * * * *

کد زمان کرون جاب بعدی، کرون جاب را ساعت ۴ و ۰ دقیقه هر روز اجرا می کند.

0 4 * * *

کد زمان کرون جاب بعدی، کرون جاب را ساعت ۴ و ۰ دقیقه در روز های چهارشنبه، پنجشنبه و جمعه اجرا می کند.

0 4 * * 2-4

د زمان کرون جاب بعدی، در دقیقه ۲۰ و ۴۰ هر ۸ ساعت یک بار هر روز هفته در ماه ها ۷ تا ۱۲ اجرا میشود.

20,40 */8 * 7-12 *

روز های هفته و عدد روز در کرون جاب

نام روزعدد روز در کرون جاب
دوشنبهعدد 0
سه شنبه1
چهارشنبه2
پنجشنبه3
جمعه4
شنبه5
یکشنبه6

روش اضافه کردن کرون جاب با crontab

برای اضافه کردن یک کرون جاب جدید باید با دستور زیر کرون جاب را برای ویرایش باز کنید:

crontab -e

برای مرتبه اول این خروجی داده می شود که از شما می خواهد ویرایشگر مورد نظر خود را انتخاب کنید که بهتر است ۱ را بزنید و ویرایشگر نانو را انتخاب کنید.

Output
no crontab for sammy - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed

Choose 1-4 [1]: 

در ادامه فایل ویرایش باز می شود و می توانید خطوط جدید کرون جاب را اضافه کنید:

# Edit this file to introduce tasks to be run by cron.
# 
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# 
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').# 
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# 
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# 
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# 
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command

حالا با انتهای فایل بروید و خط کرون جاب مورد نظر خود را اضافه کنید، برای مثال مورد زیر:

30 17 * * 2 curl http://www.google.com

در صورتی که از نانو استفاده می کنید، با زدن ctrl+x از ویرایشگر خارج شوید. پس از زدن این دو کلید از شما می خواهد y برای بله را بزنید تا فایل ذخیره شود. در صورتی که همه چیز درست باشد بدون هیچ گونه ارور ویرایش انجام می شود. کرون جاب شما هم با موفقیت ثبت شد و اجرا می شود.

روش نوشتن لاگ های اسکریپت با کرون جاب در ubuntu

یکی از موارد مهم برای ما این است که بدانیم اجرا فایل چگونه بوده و لاگ فایل را ذخیره کنیم. برخی مواقع هم نیازی به لاگ نداریم. به هر حال برای ذخیره لاگ در ادامه اسکریپت همانند زیر از علامت >> استفاده می کنید و سپس محل ذخیره را مشخص می کنید. در صورتی که از علامت > استفاده کنی ، لاگ بر روی فایل مورد نظر نوشته می شود اما با >> لاگ به فایل مورد نظر اضافه می شود و می توانید لاگ های قبل را نیز مشاهده کنید.

* * * * * echo ‘Run this command every minute’ >> /directory/path/file.log

در صورتی که نیاز به لاگ ندارید می توانید از دستور زیر استفاده کنید.

* * * * * /usr/bin/php /var/www/domain.com/backup.php > /dev/null 2>&1

کد زیر از نوشتن لاگ جلوگیری می کند.

> /dev/null 2>&1

امیدواریم که این آموزش مفید باشد. برای طراحی سایت فروشگاهی و کانفیگ امنیتی سایت می توانید مقالات دیگر ایران وبر را مشاهده کنید.

دیدگاه ها

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