0 概念:
在未來的某個時間週期或者單次執行一次某任務
1 在未來的某個時間點執行一次某任務 (只執行一次)
命令:
at batch : 不需要指定時間點 自動選擇系統空閒時刻執行任務, 其餘命令和at使用相似
at使用格式:
at 時間 輸入未來要執行的時間
at> command 輸入命令
at> ctrl+d 提交並退出
單位:minutes, hours, days, weeks
命令的執行結果:將以郵件的形式傳送給安排任務的使用者
檢視將要有的任務:
at -l
刪除某個任務:
at -d jobid
at的使用案例:
[root@chinadaas11 zm]# at now+3minutes
at> ls /var
at> job 2 at 2015-11-02 16:59
[root@chinadaas11 zm]# date
mon nov 2 16:56:39 cst 2015
[root@chinadaas11 zm]# at -l
2 2015-11-02 16:59 a root
[root@chinadaas11 zm]# at -d 2
通過mail檢視處理的結果:
[root@chinadaas11 zm]# mail
from [email protected] mon nov 2 16:54:03 2015
return-path: x-original-to: root
delivered-to: [email protected]
subject: output from your job 1
date: mon, 2 nov 2015 16:54:02 +0800 (cst)
from: [email protected] (root)
status: r
cache
cvsdb
empty
ftpgames
liblocal
lock
logmail
nisopt
preserve
run...
& q 輸入q退出檢視郵件
2 周期性地執行某任務;
cron:自身是乙個不間斷執行的服務,執行在乙個長期不關機的系統中。
anacron: cron的補充,能夠實現讓cron因為各種原因在過去的時間該執行而未執行的任務在恢復正常執行一次;一般很少啟用
cron:
系統cron任務:
/etc/crontab 定義在此路徑下 格式如下:
分鐘 小時 天 月 周 使用者 任務
使用者cron任務:
/var/spool/cron/username 定義在此路徑下 格式如下
分鐘 小時 天 月 周 任務
時間的有效取值:
分鐘:0-59
小時:0-23
天:1-31
月:1-12
周:0-7,0和7都表示週日
時間通配表示:
*: 對應時間的所有有效取值
3 * * * * 每小時的第三分鐘執行一次
3 * * * 7 每週日的每小時第三分鐘執行一次
13 12 * * * 每天12點13分執行一次
13 12 * * 5 每週五的12點13分執行一次
13 12 6 * * 每月6號的12點13分執行一次
13 12 6 7 * 每年的7月6號12:13分執行一次
,表示離散時間點取值:
10,40 * * * * 每小時執行2次,10分鐘的時候執行一次,40分鐘的時候執行一次
10,40 * * * 2,5 每週二,周五的每小時執行2次,10分鐘的時候執行一次,40分鐘的時候執行一次
10,40 02 * * 2,5 每週二,周五的2:10 2:50分執行一次
-表示連續時間點:
10 02 * * 1-5
/#表示對應取值範圍內每多久一次
*/3 * * * * 每間隔3分鐘執行一次
01 */2 * * * 每兩小時執行一次,執行時間是在對應小時的第一分鐘執行,如果寫成 * */2 * * * 則成了每間隔2小時下的所有分鐘都要執行 這就麻煩大了
10 04 */2 * * 每兩天執行一次,只要是要求每間隔多久執行一次,那麼其位置左側的單位必須要有具體數值,具體寫法見 每兩小時執行一次的寫法
執行結果預設將以郵件形式傳送給管理員,如果不想這樣,可以將正確執行結果傳送到 /dev/null 錯誤結果依舊預設傳送到郵件中,寫法如下
*/3 * * * * /bin/cat /etc/fstab > /dev/null
cron的環境變數:cron執行所有命令都去path環境變數指定的路徑下去找
path的路徑有 /bin:/sbin:/usr/bin:/usr/sbin 因此如果在cron中執行的任務的命令不在左側路徑下配置好,那麼建議使用絕對路徑或者在指令碼檔案中
將 export path=$path:/you/path 這樣cron執行的時候 就會使用指令碼中定義的path路徑
eg:path=/sbin:/bin:/usr/sbin:/usr/bin
mailto=root
home=/
01 * * * * /bin/echo "how are you"
3 使用者任務的管理:
使用者任務的管理:
crontab
-l: 列出當前使用者的所有cron任務
-e: 編輯
-r: 移除所有任務
-u username: 管理其使用者的cron任務 eg: crontab -u hadoop -e 來編輯hadoop使用者的cron任務
anacron: 是cron的補充,能做
cat /etc/anacrontab
檢視crond狀態
[root@chinadaas11 ~]# service crond status
crond (pid 1904) is running...
[root@chinadaas11 ~]# service anacron status
Lintcode 945 任務計畫
中文english 給定乙個字串,表示cpu需要執行的任務。這個字串由大寫字母a到z構成,不同的字母代表不同的任務。完成任務不需要按照給定的順序。每項任務都可以在乙個單位時間內被完成。在每個單位時間,cpu可以選擇完成乙個任務或是不工作。但是,題目會給定乙個非負的冷卻時間 n 表示在執行兩個 相同的...
boost庫在工作(24)任務之四
在軟體開發裡,經常會遇到這樣的情況,比如客戶讓我們開發的軟體要求每隔半小時,就要備份一次資料,以便避免資料丟失。又比如在開發乙個遊戲網路伺服器時,需要不斷檢查客戶端連線上來的資料連線是否還有效,這時也需要使用乙個任務來檢查客戶端的連線是否還有心跳包過來,如果沒有心跳包,就可以把這個連線斷開,釋放相關...
13 centos7 任務計畫
一 檢視任務計畫 crontab l 檢視全部任務計畫列表二 建立任務計畫1.進入計畫檔案 2.任務格式 語法 分鐘 小時 幾號 月份 星期幾 任務 一共5個時間引數 分鐘 0 59 小時 0 23 日期 1 31 月 1 12 星期幾 0 7 0和7都表示星期日 特殊符號 任何時間 不連續的時間 ...