⑴、點:在未來的某個時間點執行一次某個任務,通過兩個命令來實現at和batch
在命令提示符下輸入at 時間,下面鍵入需要在那一刻執行的任務,並且可以支持多條任務,輸入完第一條以後按回車輸入第二條任務即可,ctrl+d即可提交計劃任務
時間指定方式:
絕對時間:HH:MM , DD.MM.YY , MM/DD/YY
相對時間:now+#單位即可
單位:minutes,hours,days,weeks
模糊時間:noon,midnight,teatime
At任務的執行結果將以郵件的形式發給安排任務的用戶。
Fg:三分鐘後執行ls /etc/ 和cat /etc/fstab
at作業列表查看命令:at -l
刪除作業:ad -d 作業號即可
At的配置文件/etc/at.deny和/etc/at.allow
如果deny單獨存在,則是deny以為的所有用戶都可以使用at命令
如果allow單獨存在,則是只允許allow內的用戶可以使用at命令
如果同時存在,則只允許allow內的用戶使用at命令
batch:不需要指定時間,自動在系統空閒的時候執行指定的任務。其他用法與at相似。
⑵、周期性的執行某任務
1、 Cron:自身是一個不間斷允許的服務。但是有時候會因為外因造成的關機或者服務中斷,而在過去的時間點該執行未執行的任務講不在會被執行。
anacron:cron的補充程序,能夠實現讓cron因為各種原因在過去的時間該實行而未執行的任務在恢復正常執行一次。
2、Cron的任務又分為:系統任務和用戶任務
系統cron任務
定義文件/etc/crontab
格式:分鐘 小時 天 月 周 用戶 任務
用戶cron任務
定義文件/var/spool/cron/USERNAME
格式:分鐘 小時 天 月 周 任務
3、cron定義時間格式:
時間有效:
分鐘:0-59
小時:0-23
天:1-31
月:1-12
周:0-7,0和7都表示周日
時間通配表示:
*:對應所有有效值
3 * * * * :每小時
3 * * * 7:每周
13 12 * * *:每天
13 12 6 * *:每月
13 13 6 7 *:每年
,:離散時間點
10,40 * * * *:每小時的10分和40分
- :連續時間點
10 02 * * 1-5:每周的周一到周五的2點10分
/# :對應取值范圍每多久一次(#頻率)
*/3 * * * *:每三分鐘
fg:每兩小時執行一次
01 */2 * * *
cron的執行結果將以郵件的實現發送給管理員。
*/3 * * * * /bin/cat /etc/fstab 2> /dev/null
4、cron執行任務的環境變量
cron支持的所有命令都去PATH環境變量的指定路徑下去找
PATH /bin:/sbin:/user/bin:/usr/sbin
所以定義cron任務的時候使用命令的絕對路徑
如果利用腳本文件執行cron任務,則在腳本內定義環境變量即可,PATH=.....格式如下
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
5、用戶的cron管理命令:crontab
crontab -l:列出用戶的所有cron任務
crontab -e:新建一個cron任務,可以檢查語法錯誤
crontab -r:移除所有任務。
crontab -u UDERNSMR:管理其他用戶的cron任務,結合上面的-e -r等命令。
6、anacrontab
配置文件/etc/anacrontab
SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
1 65 cron.daily run-parts /etc/cron.daily
(1一個每天任務 65:開機以後的65分鐘執行)
7 70 cron.weekly run-parts /etc/cron.weekly
30 75 cron.monthly run-parts /etc/cron.monthly
本文出自 “Chris—on the way” 博客,請務必保留此出處http://chrinux.blog.51cto.com/6466723/1168191