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

مثلا دانلود شبانه، در طول تابستون که خب مشکل خاصی نداشتم، تا ساعت ۲-۳ بیدار بودم و کار هام رو انجام می‌دادم اما حالا، کمی زمانم بسته شده. دنبال یک ابزاری بودم که تمامی کارهایی که من در طول اون مدت انجام می‌دادم رو برام انجام بده. به صورت خودکار.

ابتدا دستور at که پیش فرض نصب هست به فکرم خورد. یک سری مشکلات و محدودیت هایی داشت. مثلا مجبور بودم هر روز دستی براش تعریف کنم. یا در کل مشکلات خاص خودش رو داشت.

با کمی جست‌و‌جو و پرسش و پاسخ به ابزار خط‌فرمان cron رسیدم. که دستوری به نام crontab داشت و زمان‌بندی رو به خوبی انجام می‌داد.

این ابزار خط‌فرمان در اکثر مخازن دیسترو ها موجود است. در آرچ‌لینوکس می تونید اون رو با دستور "sudo pacman -S cron" نصب کنید.

دستورات crontab :

crontab -e     برای تغییر دادن فایل crontab شما به کار می‌رود. اگر بار اول است که با این ابزار کار می کنید، فایل مربوطه را می‌سازد.
crontab -l      محتویات کنونی فایل crontab را نشان می‌دهد.
crontab -r     فایل crontab را حذف می کند.

همچنین این ابزار از مقداری که برای متغیر EDITOR تعیین شده‌است برای ادیتور استفاده می‌کند.

برای مثال اگر می خواهید که از ویرایشگر nano یا vi استفاده کند. در خط‌فرمان بزنید:

export EDITOR=vi
export EDITOR=nano

فایل crontab :

با دستور crontab -e فایل crontab را ایجاد کرده و با اضافه کردن دستورات این فایل رو تغییر بدید. برای ایجاد کردن یک زمان‌بندی جدید به صورت زیر عمل کنید.

crontab

علامت * به معنای تمامی مقادیر آن قسمت است، مثلا اگر برای قسمت هفته‌ بیایید در تمام روز های هفته آن دستور اجرا می‌شود.

مشکل sendmail :

در حالت معمولی فعالیت های cron به وسیله‌ی sendmail به کاربری که فعالیت را ایجاد کرده ارسال می‌شوند. برای جلوگیری از این ارسال دستور زیر را در خط فرمان وارد کنید.

>/dev/null 2>&1

ارجاع جهت اطلاعات بیشتر :

Crontab – Quick Reference


man crontab