منبع اصلی نوشتار زیر در این لینک قرار دارد

آشنایی با دستور cron

یک مدیر سیستم ممکن است لازم باشد که اقداماتی تکراری را بطور مرتب انجام دهد. ممکن است زمانی برای انجام این اقدامات تکراری نداشته باشد یا اینکه زمان خود را برای انجام سایر کارهای خود از دست بدهد.

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

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

دستور at:

این دستور میتواند برنامه یا دستور موردنظر شما را در ساعت خاصی اجرا کند. و این دستور تنها میتواند دستور داده شده را یکبار اجرا کند. زمان تعیین شده در این دستور میتواند هر زمانی در آینده باشد که میتوانید ساعت ، دقیقه و حتی تعداد روز را نیز تعیین کنید.

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

at  [-q letter] [-f file] [-mlv] TIME

at -c job [job…]

دستور batch:

عملکرد این دستور مشابه دستور at میباشد با این تفاوت که این دستور بجای زمان خاص، زمانی اجرا خواهد شد که میزان بار سیستم به زیر ۱٫۵ برسد. نحوه استفاده از این دستور به شکل زیر میباشد:

batch [-V] [-q letter] [-f file] [-mv] [TIME

دستور cron:

در سیستم های سرور که دائما روشن میباشند وظایف خودکار باید با استفاده از نرم افزار cron اجرا شوند. این برنامه هنگام راه اندازی سیستم اجرا شده و هر دقیقه بررسی میکند که چه دستوری را باید اجرا نماید. دستوراتی را که cron اجرا خواهد کرد، در فایل etc/crontab/  تعریف میشوند.

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

# more /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don’t have to run the `crontab’
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user    command
17 *    * * *    root    cd / && run-parts –report /etc/cron.hourly
25 6    * * *    root    test -x /usr/sbin/anacron || ( cd / && run-parts –repor
t /etc/cron.daily )
47 6    * * ۷    root    test -x /usr/sbin/anacron || ( cd / && run-parts –repor
t /etc/cron.weekly )
52 6    ۱ * *    root    test -x /usr/sbin/anacron || ( cd / && run-parts –repor
t /etc/cron.monthly

علامت ستاره به معنای هر روز، هفته و ماه میباشد. پس از پنج فیلد نخست در هر خط که به ترتیب شامل دقیفه، ساعت، روز در ماه- ماه و روز در هفته میباشند، نام کاربری که دستور توسط آن اجرا خواهد شد نوشته میشود که در مثال بالا کاربر ریشه میباشد. سپس دستور بهمراه تمام آرگومانها و اطلاعات مورد نیازش برای اجرا نوشته میشود. هنگامی که زمان فعلی با زمان هر یک از ورودیهای این فایل یکسان شوند، آن دستور اجرا خواهد شد. جدول زیر نشان دهنده نحوه نگارش زمان در فایلetc/crontab/ میباشد:

 

 

مقادیر مجاز

 

نام فیلد

 

۰ تا ۵۹۰

 

 

M یا دقیقه

 

 

۰ تا ۲۳

 

 

H یا ساعت

 

۱ تا ۳۱

 

 

Dom یا روز در ماه

 

۱ تا ۱۲

 

 

Mon یا ماه

 

۰ تا ۷ که عدد صفر نشان دهنده یکشنبه میباشد.

 

 

Dow یا روز در هفته

فایل هایی که در شاخه etc/cron.daily/ قرار دارند- بطور روزانه اجرا خواهند شد.در زیر نمونه ای از محتویات این دایرکتوری را مشاهده میکنید:

# ls -l /etc/cron.daily/
total 56
-rwxr-xr-x 1 root root   ۳۱۱ Jun 20  ۲۰۱۰ ۰anacron
-rwxr-xr-x 1 root root 15399 Apr 20  ۲۰۱۲ apt
-rwxr-xr-x 1 root root   ۳۱۴ Mar 30  ۲۰۱۲ aptitude
-rwxr-xr-x 1 root root   ۵۰۲ Mar 31  ۲۰۱۲ bsdmainutils
-rwxr-xr-x 1 root root   ۲۵۶ Apr 13  ۲۰۱۲ dpkg
-rwxr-xr-x 1 root root   ۳۷۲ Oct  ۵  ۲۰۱۱ logrotate
-rwxr-xr-x 1 root root  ۱۳۶۵ Mar 31  ۲۰۱۲ man-db
-rwxr-xr-x 1 root root   ۶۰۶ Aug 17  ۲۰۱۱ mlocate
-rwxr-xr-x 1 root root   ۲۴۹ Apr  ۹  ۲۰۱۲ passwd
-rwxr-xr-x 1 root root   ۳۸۳ Apr 25  ۲۰۱۲ samba
-rwxr-xr-x 1 root root  ۲۹۴۷ Apr  ۲  ۲۰۱۲ standard

 

 

 

 

 



برچسب ها : , , , , , , ,