cron定時任務
crond服務操作命令
/sbin/service crond start //啟動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啟服務
/sbin/service crond reload //重新載入配置
/sbin/service crond status //查看服務狀態
一、crontab命令選項
#crontab -u <-l, -r, -e>
-l:列出某個用戶的任務計划
-r:刪除某個用戶的任務
-e:編輯某個用戶的任務
Minute Hour Day Month Week command 分鍾 小時 天 月 星期 命令 0-59 0-23 1-31 1-12 0-6 command
“/”代表”每”,
“-”代表從某個數字到某個數字,
“,”分開幾個離散的數字
二、/etc/crontab
一、/etc/crontab文件和crontab -e命令區別
1、格式不同
前者
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
后者
#50 1 * * * command
2、使用范圍
修改/etc/crontab這種方法只有root用戶能用,這種方法更加方便與直接直接給其他用戶設置計划任務,而且還可以指定執行shell等等,
crontab -e這種所有用戶都可以使用,普通用戶也只能為自己設置計划任務。然后自動寫入/var/spool/cron/usename
四、cron任務文件
cron 會從如下這些地方讀取安裝的任務:
/etc/anacrontab
這個文件存着系統級的任務。它主要用來運行每日的(daily),每周的(weekly),每月的(monthly)的任務。一般不在此文件安裝自己的任務
/etc/cron.d/
此目錄下存放的是系統級任務的任務文件。
/var/spool/cron/
此目錄下存放各個用戶的任務文件。各個用戶的任務存放在以自已用戶名為文件名的任務文件中。此文件中的指令行沒有用戶域。
五、日志文件
可以通過查看文件/var/log/cron查看任務的運行情況。
新任務安裝后或任務修改后不需要重啟cron進程即可生效。
六、例子:每天執行一次的日志清理任務
#!/bin/sh find /opt/taobao/install/antdnsfilter/logs/antdnsfilter -type f -ctime +10 | xargs rm -f
保存文件cleanlog,放到/etc/cron.daily/目錄下,文件權限755. 每天03:40:01執行
七、例子:進程保活,每分鍾執行一次
* * * * * root /opt/taobao/install/antdnsfilter/antdnsfilter/bin/checkService.sh > /dev/null 2>&1
保存文件monitor,放到/etc/cron.d/目錄下,文件權限644,否則BAD FILE MODE。
保留個空行,我自己調試的時候,沒空行的情況會不執行。
* * * * * root /opt/taobao/install/antdnsfilter/antdnsfilter/bin/checkService.sh > /dev/null 2>&1 * * * * * root sleep 10 && /opt/taobao/install/antdnsfilter/antdnsfilter/bin/checkService.sh > /dev/null 2>&1 * * * * * root sleep 20 && /opt/taobao/install/antdnsfilter/antdnsfilter/bin/checkService.sh > /dev/null 2>&1 * * * * * root sleep 30 && /opt/taobao/install/antdnsfilter/antdnsfilter/bin/checkService.sh > /dev/null 2>&1 * * * * * root sleep 40 && /opt/taobao/install/antdnsfilter/antdnsfilter/bin/checkService.sh > /dev/null 2>&1 * * * * * root sleep 50 && /opt/taobao/install/antdnsfilter/antdnsfilter/bin/checkService.sh > /dev/null 2>&1
八、查看所有用戶的crontab任務
cat /etc/passwd | cut -f 1 -d : |xargs -I {} crontab -l -u {}
關於linux服務器進程監控及自動重啟的簡單方案 : http://blog.csdn.net/ljxfblog/article/details/40362229
http://blog.chinaunix.net/uid-26588712-id-3196464.html