注意:centos在執行定時任務時若爲sh腳本,則在定時任務中command前不需要sh,但debain需要。
### 一個坑:一個定時任務沒有執行,搞了一天,最後發現是腳本的問題。
注意:在執行腳本是需要確定腳本具有可執行權限
要點:
- “*/”表示“每”,eg:*/10 * * * * [command]表示:每十分鐘執行一次command
- “,”表示時間段,如:8,10,表示8和10
- “-”表示連續時間,如:7-9,表示7到9
1.寫一個shell腳本;
#!/bin/bash
direc="/opt/tmp/aaa/a"
for dir2del in $direc/* ; do
if [ -f "$dir2del" ]; then
rm -rf $dir2del
fi
done
2.給這個文件加權限:
chmod +x filename.sh (filename.sh添加可執行權限)
3.crontab 執行任務調度
crontab -e
4.每五分鐘執行 ## “*/”表示“每”,eg:*/10 * * * * [command]表示:每十分鐘執行一次command
*/5 * * * * /bin/sh /home//del.sh
5.重啓。
service crond restart
***********************************************************************************************
※ cron是一個linux下的定時執行工具,可以在無需人工干預的情況下運行作業。
由於Cron 是Linux的內置服務,但它不自動起來,可以用以下的方法啓動、關閉這個服務:
service crond start //啓動服務
service crond stop //關閉服務
service crond restart //重啓服務
service crond reload //重新載入配置
※centos和debian系統的定時命令可能用的不太習慣(如果你用慣了一種系統的話),
所以我都是在配置文件裏配置定時任務的;
下面這是定時任務的命令,用不用看自己心情了:
crontab -u //設定某個用戶的cron服務,一般root用戶在執行這個命令的時候需要此參數
crontab -l //列出某個用戶cron服務的詳細內容
crontab -r //刪除沒個用戶的cron服務
crontab -e //編輯某個用戶的cron服務
比如說root查看自己的cron設置:crontab -u root -l
再例如,root想刪除fred的cron設置:crontab -u fred -r
在編輯cron服務時,編輯的內容有一些格式和約定,輸入:crontab -u root -e
※1、linux任務調度的工作主要分爲以下兩類:
系統執行的工作:系統週期性所要執行的工作,如備份系統數據、清理緩存
個人執行的工作:某個用戶定期要做的工作,例如每隔10分鐘檢查郵件服務器是否有新信,這些工作可由每個用戶自行設置。
2.cron文件語法:
分 小時 日 月 星期 用戶 命令
0-59 0-23 1-31 1-12 0-6 root command
3.記住幾個特殊符號的含義:
"*":代表取值範圍內的數字,
"/":代表"每",
"-":代表從某個數字到某個數字,
",":分開幾個離散的數字
※可用crontab -e命令來編輯,編輯的是/var/spool/cron下對應用戶的cron文件,也可以直接修改/etc/crontab文件;
5 root ls 指定每小時的第5分鐘執行一次ls命令
30 5 root ls 指定每天的 5:30 執行ls命令
30 7 8 root ls 指定每月8號的7:30分執行ls命令
30 5 8 6 root ls 指定每年的6月8日5:30執行ls命令
30 6 0 root ls 指定每星期日的6:30執行ls命令[注:0表示星期天,1表示星期1,以此類推,也可以用英文來表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 root ls 每月10號及20號的3:30執行ls命令[注:“,”用來連接多個不連續的時段]
25 8-11 root ls 每天8-11點的第25分鐘執行ls命令[注:“-”用來連接連續的時段]
/15 root ls 每15分鐘執行一次ls命令
30 6 /10 * root l s 每個月中,每隔10天6:30執行一次ls命令[即每月的1、11、21、31日是的6:30執行一次ls命令。 ]
例1:每天5:30執行ls命令,並把結果輸出到/jp/test文件中
30 5 * root ls >/jp/test 2>&1
注:2>&1 表示執行結果及錯誤信息。