crontab命令常見于Unix和類Unix的操作系統之中,用于設置周期性被執行的指令。該命令從標準輸入設備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執行。該詞來源于希臘語 chronos(χρνο),原意是時間。常,crontab儲存的指令被守護進程激活, crond常常在后臺運行,每一分鐘檢查是否有預定的作業需要執行。這類作業一般稱為cron jobs。
Crontab是什么
我總是喜歡將一些特別專業的詞匯翻譯成比較淺顯易懂的詞語,可能并不是很準確,但是我覺得更便于理解。
按照前人的解釋,cron是系統主要的調度進程,可以在非人工干預的情況下運行作業。crontab命令允許用戶提交、編輯或刪除相應的作業。簡單來說,當我們需要讓系統執行一個定時任務時,我們就會用到它,比如定時重啟tomcat,或者定時調用一個jar包來執行某項功能等。
1.Cron的啟動與關閉
由于Cron是Linux的內置服務,可以用以下的方法啟動.關閉這個服務:
/sbin/service crond start //啟動服務/sbin/service crond stop //關閉服務/sbin/service crond restart //重啟服務/sbin/service crond reload //重新載入配置
2.Cron配置文件
2.1全局配置文件
crontab在/etc目錄下面存在cron.hourly,cron.daily,cron.weekly,cron.monthly,cron.d五個目錄和crontab,cron.deny二個文件.
cron.daily是每天執行一次的job,cron.weekly是每個星期執行一次的job.cron.monthly是每月執行一次的job,cron.hourly是每個小時執行一次的job.cron.d是系統自動定期需要做的任務,但是又不是按小時,按天,按星期,按月來執行的,那么就放在這個目錄下面.
/etc/crontab文件一般如下:
01 * * * * root run-parts /etc/cron.hourly02 4 * * * root run-parts /etc/cron.daily22 4 * * 0 root run-parts /etc/cron.weekly42 4 1 * * root run-parts /etc/cron.monthly
我們可在此文件中添加自己需要的cron job.
/etc/cron.deny文件就是用于控制不讓哪些用戶使用Crontab的功能.
2.2用戶配置文件
每個用戶都有自己的cron配置文件,通過crontab -e 就可以編輯,一般情況下我們編輯好用戶的cron配置文件保存退出后,系統會自動就存放于/var/spool/cron/目錄中,文件以用戶名命名.
linux的cron服務是每隔一分鐘去讀取一次/var/spool/cron,/etc/crontab,/etc/cron.d下面所有的內容.
3.Cron命令格式
crontab [ -u user ] 文件 crontab [ -u user ] { -l | -r | -e }-u:指定某一用戶-e:執行文字編輯器來設定用戶(當前用戶或指定用戶)時程表,內定的文字編輯器是vi.-r:刪除用戶時程表.-l:列出用戶時程表.4.Cron文件格式
*  *  *  *  *  command
分 時 日 月 周 命令
第1列表示分鐘1~59, 每分鐘用*或者 */1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
第6列要運行的命令
5.Cron文件使用說明
5.1 一般情況
當f1 為 * 時表示每分鐘都要執行 program,f2 為 * 時表示每小時都要執行程序,其余類推.
* * * * * /bin/usershell  每天每分鐘執行一次/bin/usershell
當f1 為 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內要執行,f2 為 a-b 時表示從第 a 到第 b 小時都要執行,其余類推.
新聞熱點
疑難解答