Cron و اجراي برنامه ها در يك زمان خاص
Cron برنامه اي است كه به كاربران اين امكان رو ميده كه برنامه هاي مورد نظرشون رو در يك زمان به خصوص اجرا كنن. يك مثال براي اين قضيه، سيستم هاي تهيه پشتيبان يا همون backup ها هستند.
طبق معمول مثل ساير سرويس هاي لينوكس، cron در آدرس /etc/init.d قرارداره و با دستور زير مي تونيد بفهميد كه در حال اجرا هست يا نه:
/etc/init.d/cron status
معمولا توي لينوكس SuSE اين سرويس براي runlevel هاي 2، 3 و 5 فعاله. براي اينكه يك برنامه رو توي يك زمان خاص اجرا كنيم، بايد اول ببينيم كه اين برنامه قراره چه مواقعي اجرا بشه. اگر يه نگاه به شاخه /etc/ بندازين، مي بينيد كه يك سري فولدر با اين اسامي اونجا هست: cron.monthly ،cron.weekly ،cron.daily ،cron.hourly. از اسم هركدوم معلومه كه به درد چه تيپ زمان هايي مي خورن. فايلي كه قراره حاوي تنظيمات cron باشه رو توي اين فولدر ها كپي مي كنيد، و بعد دستور زير رو مي ديد:
crontab file_name
با دستور crontab -l هم مي تونيد ببينيد كه در حال حاضر چه task هايي به cron سپرده شده. و خود اين دستور بهتون ميگه كه بايد براي تغيير وظايف cron فايل اصلي رو تغيير بديد و مجددا سرويس رو install كنيد.
حالا مي رسيم به تنظيمات فايل هاي مربوط به cron. اين فايل ها مثل ساير فايل هاي تنظيمات لينوكس فايل هاي متني هستند كه داراي يه syntax خاص هستند. مثلا خط زير در يك فايل تنظيم cron به معني اجراي برنامه مربوطه در ساعت 23:59 هر روز است:
59 23 * * * some_program
اون اعداد و ستاره ها به ترتيب نمايانگر دقيقه (كه از صفر تا 59 مي تونه باشه)، ساعت (از 0 تا 23)، روز در ماه (1 تا 31)، ماه (1 تا 12 يا اينكه اسم ماه) و روز در هفته (از 0 براي يكشنبه شروع ميشه تا 7، يا نام روز) هستند. هر كدوم كه بخواهيم ناديده گرفته بشه بجاش ستاره مي ذاريم، و بنابراين موقع اجراي cron اون زمان ناديده گرفته ميشه. البته هركدوم از موارد رو ميشه چند تا مقدار براش داد و با كاما از هم جدا كرد يا اينكه محدوه براش مشخص كرد. مثلا دستور زير هر دقيقه يكبار اجرا ميشه:
0-59/1 * * * * program
و اين دستور هر ساعت يكبار:
00 0-23/1 * * * program
به طور كلي فرمت هر خط در بانك اطلاعاتي crontab به شكل زير است:
[minute] [hour] [day of month] [month] [day of week] [command to run]
