Cron Job چیست: درک نحو Cron و نحوه پیکربندی Cron Jobs

آ کرون کار یک کار خودکار با استفاده است کرون، یک ابزار زمانبندی روی یک سیستم یونیکس مانند لینوکس. ایجاد cron job به بهبود کارایی توسعه وب و مدیریت کمک می کند، زیرا نیازی به اجرای مکرر وظایف مشابه ندارید.

به عنوان مثال، خودکار کردن کارهایی مانند دانلود فایل‌ها برای پشتیبان‌گیری یا به‌روزرسانی بسته‌ها در یک سرور خصوصی مجازی، یک مورد رایج استفاده از cron job است.

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

cron job یک کار خودکار با استفاده از cron، یک ابزار زمانبندی است روی یک سیستم عامل یونیکس مانند کارهای رایج cron شامل ایجاد یک نسخه پشتیبان، به روز رسانی نرم افزار، پاک کردن حافظه پنهان و نظارت بر سرور است.

ایجاد cron job به کاهش خطای انسانی و صرفه جویی در زمان کمک می کند زیرا نیازی به انجام مکرر وظایف مشابه ندارید.

Cron Jobs چگونه کار می کند

کرون یک است اهریمن، دیو – یک پس زمینه process اجرای کارهای غیر تعاملی در ویندوز، مانند فرآیندهای پس زمینه مانند کار می کند خدمات.

آ فایل cron یک فایل متنی است که حاوی دستوراتی برای اجرای دوره ای در یک زمان خاص است. این جدول cron یا کرونتاب فایل پیکربندی است /etc/crontab به صورت پیش فرض.

فقط مدیران سیستم می توانند فایل crontab سیستم را ویرایش کنند. با این حال، از آنجایی که سیستم‌عامل‌های شبه یونیکس از چندین مدیر پشتیبانی می‌کنند، کاربران می‌توانند فایل‌های خود را برای زمان‌بندی کارهای خاص ایجاد کنند.

با cron jobs، کاربران می توانند تعمیر و نگهداری سیستم، نظارت بر فضای دیسک و پشتیبان گیری را در فواصل زمانی منظم به طور خودکار انجام دهند. به دلیل راحتی آنها، cron jobها برای رایانه هایی که 24/7 کار می کنند، مانند یک سرور خصوصی مجازی، ایده آل هستند.

در حالی که برنامه ریزی کار cron در بین مدیران سیستم محبوب است، برای توسعه دهندگان وب نیز مفید است.

به عنوان مثال، آنها می توانند سه cron job را راه اندازی کنند تا هر روز در نیمه شب به طور خودکار از یک سایت نسخه پشتیبان تهیه کنند، پیوندهای خراب را هر دوشنبه در نیمه شب بررسی کنند، و حافظه پنهان آن را هر جمعه در ظهر پاک کنند.

در حالی که راحت است، محدودیت های متعددی برای مشاغل cron وجود دارد:

  • کوتاه ترین فاصله بین کارها 60 ثانیه است. کاربران فقط می توانند تنظیمات فاصله کاری cron را روی یک دقیقه یا بیشتر تنظیم کنند.
  • کارهای از دست رفته نیاز به بازنشانی دستی دارند. ادمین ها نمی توانند cron job ها را در چندین رایانه توزیع کنند روی یک شبکه. بنابراین، اگر رایانه ای که cron را اجرا می کند از کار بیفتد، وظایف برنامه ریزی شده اجرا نمی شوند. باید کارهای از دست رفته را به صورت دستی راه اندازی مجدد کنید.
  • مکانیسم امتحان مجدد خودکار وجود ندارد. Cron طوری طراحی شده است که در یک زمان بندی مشخص اجرا شود. اگر یک کار با شکست مواجه شود، تا زمان برنامه ریزی شده بعدی اجرا نمی شود. این باعث می شود cron برای کارهای افزایشی نامناسب باشد.
  • بدون متغیر محیطی. Crontab نمی‌تواند متغیرهای محیطی را از چندین فایل حاوی داده‌های پیکربندی که برای اجرای درست برخی از برنامه‌ها لازم است بخواند.

حتی با وجود این محدودیت ها، cron یک راه حل عالی برای اجرای کارهای ساده و تکراری در یک زمان برنامه ریزی شده است. اگر می خواهید یک کار یک بار مصرف را خودکار کنید، توصیه می کنیم از آن استفاده کنید روش دیگر برنامه ریزی بجای.

پیشنهاد می‌کنیم بخوانید:  بایگانی VPS

نکته حرفه ای

قبل از ایجاد یک کار cron، مطمئن شوید که اسکریپت شما کار می کند. برای انجام این کار، بسته به اینکه فایل را با URL در مرورگر خود باز کنید یا از طریق SSH اجرا کنید روی نوع فیلمنامه اگر کار نکرد، برای راهنمایی با تیم پشتیبانی ارائه دهنده هاست خود تماس بگیرید.

نحو Crontab

دستور دستور crontabدستور دستور crontab

هنگام آماده شدن برای کارهای cron، باید نحو و قالب بندی cron را بدانید تا مطمئن شوید اسکریپت به درستی اجرا می شود. نحو crontab از پنج فیلد با مقادیر ممکن زیر تشکیل شده است:

  • دقیقه دقیقه از ساعتی که فرمان اجرا می شود، از 0-59.
  • ساعت ساعتی که دستور اجرا می‌شود، از 0-23 در یک نماد 24 ساعته
  • روز ماه. تاریخ ماهی که کاربر می‌خواهد دستور اجرا شود، متفاوت است 1-31.
  • ماه. ماهی که کاربر می خواهد دستور اجرا شود. محدوده آن از 1-12، نماینده ژانویه تا دسامبر است.
  • روز هفته. روز هفته برای اجرای یک فرمان، اعم از 0-6. مقدار نشان دهنده یکشنبه تا شنبه است. در برخی سیستم ها، مقدار 7 نشان دهنده یکشنبه است.

اگر مقدار خاصی ندارید، از خالی گذاشتن این فیلدها خودداری کنید و وارد کنید یک ستاره بجای. به عنوان مثال، اگر می خواهید cron daemon را اجرا کند root/backup.sh اسکریپت هر جمعه ساعت 5:37 بعدازظهر، دستور cron باید به این صورت باشد:

37 17 * * 5 root/backup.sh

در مثال بالا، 37 و 17 نشان دهنده ساعت 5:37 بعد از ظهر هر دو ستاره برای تاریخ و ماه زمینه های تمام مقادیر ممکن را نشان می دهد. این بدان معناست که کار باید بدون توجه به تاریخ یا ماه اجرا شود. سرانجام، 5 جمعه را نشان می دهد. سپس این کار از این برنامه مشخص شده پیروی می کند.

اگر در مورد نوشتن دستی syntax cron مطمئن نیستید، از ابزارهای رایگانی مانند استفاده کنید ژنراتور Crontab یا Crontab.guru برای ایجاد اعداد دقیق برای زمان و تاریخ فرمان شما.

علاوه بر نحو، باید عملگرهای cron job را برای تغییر مقدار در هر فیلد درک کنید. برای اطمینان از اجرای دستورات خود باید از این عملگرها در تمام فایل های crontab به درستی استفاده کنید:

  • ستاره . این عملگر تمام مقادیر ممکن را در یک فیلد نشان می دهد. برای مثال یک ستاره در قسمت بنویسید دقیقه
  • فیلد تا cron job هر دقیقه اجرا شود.کاما (،) . عملگر برای فهرست کردن چندین مقدار. مثلا نوشتن 1,5 در روز هفته
  • فیلد کار را برای اجرا هر دوشنبه و جمعه برنامه ریزی می کند.خط ربط (-) . کاربران می توانند محدوده ای از مقادیر را تعیین کنند. نوشتن 6-9 در ماه
  • زمینه برای راه اندازی یک کرون کار از ژوئن تا سپتامبر.جداکننده (/) . این جداکننده یک مقدار را تقسیم می کند. اگر می خواهید هر دوازده ساعت یک اسکریپت اجرا کنید، بنویسید */12 در ساعت
  • رشته. آخر(L) . کاربران می توانند از این اپراتور در روز از ماه و روز هفته زمینه های. مثلا نوشتن 3 لیتر در روز هفته
  • میدان یعنی آخرین چهارشنبه ماه. روز هفته(W) . اپراتوری که نزدیکترین روز هفته را از یک زمان معین تعیین می کند. به عنوان مثال، اگر 1 از یک ماه یک شنبه است، نوشتن 1W در روز از ماه روی فیلد دستور را اجرا خواهد کرد دوشنبه3
  • . هش (#). یک اپراتور برای روز هفته فیلدی که روز خاصی از ماه را با استفاده از عدد بین تعیین می کند 1 به5 . برای مثال، 1#2
  • به معنای دوشنبه دوم ماه است. علامت سوال(؟) . این اپراتور ورودی می دهد ارزش خاصی ندارد برای روز از ماه و روز هفته

زمینه های. معمولاً با زمان راه اندازی cron daemon جایگزین می شود.

نکته حرفه ای در Vixie cron، می‌توانید جداکننده‌ها را با محدوده‌ها ترکیب کنید تا مقادیر مرحله را مشخص کنید، مانند1-2/12 . برای کسب اطلاعات بیشتر در مورد استفاده از اپراتور، مقاله را بخوانیدراهنمای cron

.

مثال های نحوی Cron

پس از درک کرون جابز، اکنون آماده اجرای آنها در وظایف خود هستید. در این بخش، چند نمونه از درخواست های شغلی cron را ارائه می دهیم. توجه داشته باشید که cron به طور خودکار خروجی را به حساب ایمیل محلی شما ارسال می کند. اگر می‌خواهید دریافت ایمیل را متوقف کنید، می‌توانید اضافه کنید >/dev/null 2>&1

0 5 * * * /root/backup.sh &gt;/dev/<strong>null</strong> 2&gt;&amp;1

به دستوری شبیه به مثال زیر: برای ارسال خروجی cron به یک حساب ایمیل خاص، اضافه کنید MAILTO

MAILTO="inbox@domain.tld"
0 3 * * * /root/backup.sh >/dev/null 2>&1

و آدرس ایمیل مورد نظر به عنوان مثال:

برای کمک به درک بهتر نحو cron، در اینجا لیستی از دستورات نمونه برای انجام مدیریت سیستم با cron jobs آمده است:

Cron Job Special strings رشته های ویژه برای برنامه ریزی کارهای cron در بازه های زمانی مشخص بدون تعیین مقادیر دقیق استفاده می شود. برای استفاده از آنها، یک عبارت ساده بنویسید که با یک شروع شود@

  • . در اینجا چند رشته ویژه مفید برای استفاده در دستورات وجود دارد:@ ساعتی
  • . کار هر ساعت یکبار اجرا خواهد شد. @روزانه یا@نیمه شب
  • . این رشته ها وظیفه را هر روز در نیمه شب اجرا می کنند.@ هفتگی روی . رشته ای برای برنامه ریزی کارها هفته ای یک بار در نیمه شب
  • یکشنبه.@ماهانه . روی این رشته خاص یک دستور را یک بار اجرا می کند
  • روز اول هر ماه@سالانه روی . از این رشته برای اجرای یک کار در سال یک بار در نیمه شب استفاده کنید
  • 1 ژانویه.راه اندازی مجدد @
پیشنهاد می‌کنیم بخوانید:  روش نصب MySQL روی CentOS 9 جریان

. این رشته کار cron را یک بار در حین راه اندازی سیستم اجرا می کند. مهم!

هنگام برنامه ریزی کارهای cron برای مناطق زمانی مختلف مراقب باشید و مطمئن شوید که پیکربندی شما درست است.

مجوزهای Cron مطمئن شوید که مجوزهای مناسبی را برای فایل‌های cron سیستم خود تنظیم کرده‌اید تا به کارها اجازه اجرا داده شود. برای تنظیم مجوزها می توانید دو فایل ایجاد یا ویرایش کنید – cron.اجازه دادن ورد کردن

. اگر /etc/cron.allow وجود دارد، باید دارای یک نام کاربری باشد که مجاز به اجرای اتوماسیون کار cron باشد. با این حال، اگر سیستم شما دارد /etc/cron.deny

حاوی نام کاربری، آن حساب نمی تواند از cron استفاده کند.

روش اجرای Cron Jobs روی در این بخش به شما نشان خواهیم داد که چگونه با وارد کردن دستورات در یک برنامه پوسته، کار های cron را زمان بندی کنید هاستینگerیک سیستم مبتنی بر لینوکس، مانند

Cron Job چیست: درک نحو Cron و روش پیکربندی Cron JobsCron Job چیست: درک نحو Cron و روش پیکربندی Cron Jobs
Cron Job چیست: درک نحو Cron و روش پیکربندی Cron Jobs 10

میزبانی VPS. هاستینگer برای برنامه ریزی آن، با استفاده از ترمینال یا یک کلاینت SSH مانند PuTTY به VPS خود متصل شوید. متناوبا، از سوی دیگر، روی کاربران VPS می توانند به رابط خط فرمان (CLI) دسترسی داشته باشند.

مرورگر وب آنها از طریق hPanel.

نکته حرفه ای هاستینگerعلاوه بر VPS،

سایر برنامه های میزبانی وب نیز از cron job ها پشتیبانی می کنند. به عنوان مثال، طرح میزبانی وب Business به شما امکان می دهد کارهای نامحدود را برنامه ریزی کنید. روی پس از دسترسی به hPanel، به منوی VPS بروید روی نوار بالا و طرح خود را انتخاب کنید. سپس، کلیک کنید terminalمرورگر

. page on  اطلاعات VPS terminal hPanel.  مرورگرپنجره برجسته شده است page on  اطلاعات VPS terminal hPanel.  مرورگر

پنجره برجسته شده است Cron معمولاً به طور پیش فرض در تمام توزیع های لینوکس از پیش نصب شده است. در غیر این صورت، دستور نصب را مطابق با مدیر بسته خود اجرا کنید. در اینجا دستور برای اوبونتو باapt

sudo apt install cron

: قبل از ادامه عملیات اصلی cron job، باید فایل های پیکربندی – the کرونتاب سیستم وcrontab کاربر

. این کرونتاب سیستم برای برنامه‌ریزی کارهای ضروری در سراسر سیستم استفاده می‌شود که فقط توسط افرادی که دارای امتیازات ریشه هستند قابل ویرایش هستند. در همین حال، اهرم crontab کاربر به

ایجاد و ویرایش مشاغلی که فقط در سطح کاربر اعمال می شوند. روی برای ویرایش crontab سیستم، مطمئن شوید که کاربر فعلی دارای امتیازات ریشه است. خواندن

برای یادگیری چندین عملیات اساسی که cron می تواند انجام دهد.یک عملیات اساسی cron job

یک عملیات اساسی cron job

استفاده از Cron Job برای ایجاد یک فایل Crontab

crontab -e

برای ویرایش فایل crontab موجود، قطعه زیر را در خط فرمان وارد کنید. اگر سیستم شما آن را نداشته باشد، دستور به طور خودکار یک دستور جدید ایجاد می کند. هنگام ورود crontab -e برای اولین بار، از شما می خواهد که انتخاب کنید با کدام ویرایشگر متن می خواهید فایل را ویرایش کنید، مانند نانو یاvi

. در ویرایشگر متن، می توانید دستورات دیگری اضافه کنید یا دستورات موجود را ویرایش کنید.

استفاده از Cron Job برای نمایش لیستی از وظایف برنامه ریزی شده فعال

crontab -l

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

crontab -u username -l

اگر سیستم شما چندین کاربر دارد، می‌توانید فهرست فایل‌های crontab آنها را با وارد کردن دستور زیر به‌عنوان ابرکاربر مشاهده کنید:

استفاده از Cron Jobs برای اعطای دسترسی ریشه به خودتان با توجه به محدودیت های امتیاز کاربر، برخی از دستورات فقط با استفاده از مجوزهای ریشه اجرا می شوند. برای اینکه به خودتان امتیازات root بدهید، ضمیمه کردن sudo su

تا ابتدای فرمان به عنوان مثال، شما نیاز دارید sudo su

sudo su crontab -u username -e

برای اجرای دستور crontab که کارهای برنامه ریزی شده سایر کاربران را ویرایش می کند: علاوه بر این، می توانید cron jobs را به آن اضافه کنید etc/cron.d دایرکتوری برای ذخیره نصب خودکار و به روز رسانی اسکریپت ها. برای افزودن آنها به این دایرکتوری، باید دسترسی ریشه داشته باشید و مطابقت داشته باشید اجرا قطعات

قراردادهای نامگذاری

  • از طرف دیگر، یک کاربر ریشه می تواند اسکریپت های cron job خود را به دایرکتوری های زیر منتقل کند تا اجرای آنها را برنامه ریزی کند:/etc/cron.hourly/
  • . اسکریپت را هر ساعت یک بار اجرا کنید./etc/cron.daily/
  • . آن را یک بار در روز اجرا کنید./etc/cron.weekly/
  • . هفته ای یکبار اجرا کنید./etc/cron.monthly/

. آن را یک بار در ماه اجرا کنید.

استفاده از Cron Job برای حذف وظایف برنامه ریزی شده

crontab -r

برای حذف تمام کارهای برنامه ریزی شده در ورودی های crontab و شروع از ابتدا، دستور زیر را تایپ کنید: متناوبا، استفاده کنید crontab -i

crontab -i

فرمان این شبیه به قبلی است، با این تفاوت که قبل از حذف crontab یک گزینه تایید دریافت خواهید کرد:

نتیجه

Cron daemon یک سرویس در یک سیستم مبتنی بر یونیکس است که به شما امکان می دهد اسکریپت های اتوماسیون را برای زمان بندی وظایف ایجاد کنید. در همین حال، cron jobها کارهایی هستند که با استفاده از این ابزار خودکار می شوند، مانند به روز رسانی، نصب یا نظارت بر یک سیستم.

برای خودکارسازی وظایف، دستور crontab را در فایل cron سیستم خود بنویسید. این دستور شامل اسکریپت اجرا و پنج ستاره است که به زمان اجرای cron job اشاره دارد. مقدار این ستاره ها را تغییر دهید و از عملگرها برای تغییر زمان استفاده کنید.

برای اجرای cron job، با استفاده از ترمینال، یک کلاینت SSH یا یک برنامه دیگر CLI با مجوز روت به سیستم عامل لینوکس خود متصل شوید. سپس، یک فایل crontab ایجاد کنید و اسکریپت را با استفاده از یک ویرایشگر متن مانند نانو اضافه کنید.

سوالات متداول شغل Cron

در این بخش، ما به چندین سوال متداول درباره cron job پاسخ خواهیم داد تا به شما در درک بهتر ابزار کمک کنیم.

Cron Job چه کاری انجام می دهد؟ روی Cron jobها دستورات لینوکس برای خودکارسازی کارهای تکراری هستند

سرور شما این به شما امکان می دهد تا با یک دستور کارهایی مانند به روز رسانی، نصب یا نظارت را برای سیستم خود برنامه ریزی کنید.

کاربرد * * * * * در کرون چیست؟

* * * * * یک علامت عام عبارت زمانبندی cron است، به این معنی که کار cron شما باید هر دقیقه بدون توجه به ساعت، روز، تاریخ یا ماه اجرا شود.

چگونه یک Cron Job را اجرا کنم؟ هاستینگerبا استفاده از PuTTY، Terminal یا از طریق SSH به عنوان کاربر اصلی وارد سرور خود شوید terminalمرورگر داخلی . سپس با استفاده از crontab -e

فرمان