1、周期性定時任務crontab
cron['krɒn] 一時間單位 table
crontab -e 進入編輯定時任務界面,每一行代表一個定時任務,#開頭的行為注釋行,一行分成6列
分鍾 小時 日期 月份 星期 調度的作業(命令),默認情況下/etc/crontab文件有規則(fedora親測)
前五列允許出現的字符有 數字 - * / , 星期還可以采用mon、tue、wed、thu、fri、sat、sun,0-7(0和7為周日)
10 4 * * * /bin/databasebackup.bash 每天4:10分執行
0 4 */2 * * /usr/sbin/slapcat 每隔一天的4點執行
0 22 * 5,8,11 1-5 wall "It's 10pm" 5 8 11月份的工作日的每天22點,向所有的登陸用戶發消息
5 4 * * tue /bin/echo "Sunday" 每個周二的4:5分執行
0 23,1-7/2,8 * * * /usr/sbin/mtpdate 每天23點到到早上7點只見每隔兩個小時以及早上8點執行同步時間
* * * * * sleep 10; /bin/date >>/tmp/date.txt 先執行休息十秒在執行date,其實就是兩條命令,/usr/bin/sleep;
試用for或while的死循環加sleep可以實現每秒執行,再與crontab一起試用,會幾個命令重復死循環,一般不是想要的效果!
1 * * * * /usr/bin/date >> /home/lixn/time.txt 每天每個小時的1分鍾執行
*/1 * * * * /usr/bin/data >> /tmp/time1.txt 每一分鍾執行一次
(系統級的)做系統級配置我們會直接配置 /etc/crontab
(用戶級的)一般還是建議大家使用 crontab -e ,這樣系統也會幫着檢查我們配置的腳本語法。會被寫到 /var/spool/cron 目錄下,生成一個和用戶名一致的文件,文件內容就是我們編輯的定時腳本。(對的)
電腦關機后,定時任務便不能執行,再次開機又會自動執行 。(親測)
crontab -l列出當前用戶的定時任務
2、一次性定時任務at、banch
at 是一次性定時任務
banch 是一次性條件任務,即滿足某種條件時(例如平均負荷很低)執行命令
一次性任務中的命令執行完畢(不管成功與否),對應的任務就自動消失。
序號 | 定時任務 |
說明 |
1 | at [ -f file ] time |
在time時執行file文件中的命令,如果沒有指定file文件那么從標准輸入設備讀取命令,出現at> |
2 | at 22:00 <<<"shutdown -h now" |
|
3 | at now+10minutes <<<"wall notice.txt" |
|
4 | at 23:59 12/31/2011 at>cd /tmp at> mkdir -p a/b/c at> echo "all done" at> <EOT> |
在2011年的最后一刻執行命令cd /tmp; mkdir -p a/b/c; echo "all done"。 <EOT>表示同時 按下ctrl+D |
5 | at 5pm + 3 days <<EOF /usr/sbin/ntpdate ntp.ubuntu.com EOF |
三天后的下午5點與ntp.ubuntu.com作時鍾同步 |
6 | at -f /opt/file.cmd 4am tomorrow |
明天下午4點執行文件/opt/file.cmd中的命令,file.cmd要先建好 |
7 | at -l |
列出全部的一次性定時任務。文件在???? |
8 | at -r 6 |
刪除6號定時任務 |
9 | batch <<< "bzip2 -9 bigfile.dat" | 在系統平均負載較低(<1.5)時執行壓縮命令 |
10 | batch at > tar -cjf /tmp/backup.dat /opt/data at > <EOF> |
在系統平均負載較低時(<1.5)時執行數據打包壓縮備份命令 |
at> 交互時按ctrl+D保存退出 不保存退出按ctrl+c
[lixn@localhost ~]$ atq 查詢,還有at -l 8 Thu Apr 6 15:12:00 2017 a lixn [lixn@localhost ~]$ atrm 8 刪除,還有at -r 8
at 和batch需要繼續親測????系統平均負載再去看看??