1. 程式人生 > 其它 >(二十)Linux計劃任務

(二十)Linux計劃任務

1.計劃任務:at一次性計劃任務。

(1)/etc/init.d/atd status   #檢視at命令是否開啟。
(2)yum -y install at     #安裝at命令

命令:
• # 一次性計劃任務。
• 命令:at 09:14 /回車
•   at> 命令 /回車
•          at>ctrl+d
• # 檢視當前計劃任務的個數。
• 命令:at –l
• # 檢視計劃任務詳情。-d 刪除。
• 命令:at –c 數字
格式
month day(月 日)
mm/dd/yy(月/日/年)
dd.mm.yy(日.月.年)
minutes(分鐘)
hours(小時)
days(天)
weeks(星期)
today(今天)
tomorrow(明天)

-f:指定包含具體指令的任務檔案;
-q:指定新任務的佇列名稱;
-l:顯示待執行任務的列表;
-d:刪除指定的待執行任務;
-m:任務執行完成後向用戶傳送E-mail

三天後的下午 5 點鍾執行/bin/ls:

[root@localhost ~]# at 5pm+3 days
at> /bin/ls
at> <EOT>
job 7 at 2013-01-08 17:00

明天17點鐘,輸出時間到指定檔案內:

[root@localhost ~]# at 17:20 tomorrow
at> date >/root/2013.log
at> <EOT>
job 8 at 2013-01-06 17:20

計劃任務設定後,在沒有執行之前我們可以用atq命令來檢視系統沒有執行工作任務:

[root@localhost ~]# atq
8       2013-01-06 17:20 a root
7       2013-01-08 17:00 a root

刪除已經設定的任務:

[root@localhost ~]# atq
8       2013-01-06 17:20 a root
7       2013-01-08 17:00 a root
[root@localhost ~]# atrm 7
[root@localhost ~]# atq
8       2013-01-06 17:20 a root

顯示已經設定的任務內容:

[root@localhost ~]# at -c 8
#!/bin/sh
# atrun uid=0 gid=0
# mail     root 0
umask 22此處省略n個字元
date >/root/2013.log

2.計劃任務:crontab 週期性計劃任務。

(1)/etc/init.d/crond status    #檢視crond命令是否開啟。
(2)/var/spool/cron/root     #計劃任務存放路徑

命令:
• # 週期性計劃任務,“*”代表“每”。“1-5”週一到週五。“1,2,3”週一週二週三執行。“*/5”每五分鐘執行一遍。
• 命令:crontab -e /回車 分 時 日 月 周 命令 /回車
• # 檢視使用者有哪些計劃任務。-r刪除計劃任務。
• 命令:crontab -l

-e:編輯該使用者的計時器設定;
-l:列出該使用者的計時器設定;
-r:刪除該使用者的計時器設定;
-u<使用者名稱稱>:指定要設定計時器的使用者名稱稱。
每1分鐘執行一次command
* * * * * command
每小時的第3和第15分鐘執行
3,15 * * * * command
在上午8點到11點的第3和第15分鐘執行
3,15 8-11 * * * command
每隔兩天的上午8點到11點的第3和第15分鐘執行
3,15 8-11 */2 * * command
每個星期一的上午8點到11點的第3和第15分鐘執行
3,15 8-11 * * 1 command
每晚的21:30重啟smb
30 21 * * * /etc/init.d/smb restart
每月1、10、22日的4 : 45重啟smb
45 4 1,10,22 * * /etc/init.d/smb restart
每週六、週日的1:10重啟smb
10 1 * * 6,0 /etc/init.d/smb restart
每天18 : 00至23 : 00之間每隔30分鐘重啟smb
0,30 18-23 * * * /etc/init.d/smb restart
每星期六的晚上11:00 pm重啟smb
0 23 * * 6 /etc/init.d/smb restart
每一小時重啟smb
* */1 * * * /etc/init.d/smb restart
晚上11點到早上7點之間,每隔一小時重啟smb
* 23-7/1 * * * /etc/init.d/smb restart
每月的4號與每週一到週三的11點重啟smb
0 11 4 * mon-wed /etc/init.d/smb restart
一月一號的4點重啟smb
0 4 1 jan * /etc/init.d/smb restart
每小時執行/etc/cron.hourly目錄內的指令碼
01 * * * * root run-parts /etc/cron.hourly