注意:如果在要執行命令的那個時間,系統處於關機狀態,那麼該命令將在系統處於開機狀態的下一個同樣的時間執行此命令。比如∶用戶要執行命令的時間是17:20,而發出at命令的時間是早上,那麼系統究竟是在哪一天執行該命令呢?如果用戶在17:20仍然在工作,那麼該命令將在這個時候完成,如果用戶17:20以前就關機了,那麼該命令將在次日17:20執行(條件是系統必須開機);如用cron命令呢??
2.at
1.命令:
at//設置任務
atq //查看目前的任務
atrm //刪除設定的任務
語法: #at[-選項]時間格式//設置任務
#atq //查看目前的任務
#atrm [number] //刪除設定的任務
選項: m : at 的工作完成後,會發email 給該用戶。 時間格式主要有以下幾種: HH:MM在今天的 HH:MM 執行,若該時刻已超過,則明天HH:MM執行此工作。 例:#at12:00 HH:MM YYYY-MM-DD在某年某月的某一天某時刻執行該工作!
例:#at12:00 2006-12-30 HH:MM + number [minutes|hours|days|weeks] 就是說,在某個時間加上定義的時間之後執行。
在輸入at之後,就進入命令輸入模式,這裡你可以重復輸入命令,退出的時候ctrl+D,就可以離開了。 at12:00shutdown –h 0//今天的12點執行關機命令。
#at12:00 2006-12-30 tar czvf /dump/workdump.tar.gz/work/* // 2006-12-30 12:00對/work目錄下文件進行打包壓縮
#at 12:00 + 1 days 2006-12-30 rm –rf/work/ // 2006-12-31 12:00刪除/work目錄
3.cron1.cron:周期性的執行任務 語法: crontab [–選項]
選項
-u:只有root能執行的選項,指定一個用戶名
-l:列出crontab的內容
-e:編輯crontab的內容
-r刪除
crontab的內容 servicecrondstart //啟動服務
#servicecrondrestart //重新啟動服務
#servicecrondstop //停止服務
輸入crontab –e 時,會自動打開VI畫面,編輯文本的格式為:五個不同時間命令。
五個不同時間如下表:
59 23 1 5 * 每年五月一日23點59分
30 16 * * 6 每周六16點半執行 *號,代表所有時間都適用
例: 每月1日12:00對系統日志進行備份 0 12 1 * * tar czvf /back/system.tgz /var/log/* crontab是用戶使用的 系統任務就不必運行crontab命令了 可以直接編輯/etc/crontab,01 * * * * root run-parts /etc/cron.hourly 5個時間後面接的是root,代表的是執行的身份為root用戶。 run-parts代表後面接的/etc/cron.hourly是一個目錄內的所有可執行文件,(你可以到/etc目錄下看看,系統本來就預設幾個目錄)也可以將每天要執行的命令直接寫到/etc/cron.daily就行,就不需要使用crontab –e 。 建立一個/root/runcron的目 錄,將要每隔5分鐘執行的可執行文件放到該目錄下,再在/etc/crontab文件中加 */5 * * * * root run-parts /root/runcron 就可以讓系統每5分鐘執行一次該目錄下的所有可執行文件。
注意:在linux底下的crontab每分鐘會自動讀取一次/etc/crontab的工作,由於crontab是讀到內存中的,所以在你修改完/etc/crontab之後,可能並不會馬上執行,這時候要重新啟動cron服務: #service crond restart