- 一次性任務
- 週期性任務
- crontab命令
- 本地郵件服務
-
一次性任務使用at命令,在將來的某一時刻執行一次任務
at [options] TIME
TIME:
HH:MM [YYYY-mm-dd]
noon,midnight, teatime
tomorrow
now+# # 可接的單位:minutes, hours, days, weeks
常用選項:
-l :list 列出作業隊列等同於 atq命令
-f /path/to/somefile:從指定文件中讀取作業任務,不需要從命令行交互輸入
-d #:刪除指定的任務,等同於atrm
-c:查看指定作業的具體內容 - 週期性任務使用crontab,執行結果通過郵件通知作業的用戶
由cronie程序提供服務,系統默認安裝;
與at提交作業方式不同,由專用的配置文件,固定格式,並能夠檢查語法是否正確,使用crontab -e編輯:- cron任務分爲兩類:
系統任務:主要用於實現系統自身維護
用戶任務: - 配置文件格式:
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * [user-name] command to be executed
注:
1.每行定義一個cron任務,共6-7個字段;
2.此處的環境變量不同於用戶登錄後獲得的環境,因此,建議命令使用絕對路徑,或者自定義PATH環境變量;
3.郵件發送給MAILTO用戶;
4.user-name:可以指定以誰身份運行 - 時間表示:
- cron任務分爲兩類:
1.特定值;給定時間點有效取值範圍內的值;
注:day of week和day of month一般不同時使用;
2. * :表示給定時間點上有效取值範圍內的所有值;表“每..”
3.離散取值: 在時間點上使用逗號分隔的多個值;
#,#,#
4.連續取值:在時間點上使用-連接開頭和結束
#-#
5.在指定時間點上,定義步長:
*/10 ****:每十分鐘
-
crontab 命令:
用法:
crontab [-u user] [-l | -r | -e] [-i] [-s]
-e:編輯任務;
-l:列出所有任務;
-r:移除所有任務;
-i:在使用-r選項移除所有任務時提示用戶確認是否刪除操作;
-u user:root用戶可爲指定用戶管理cron任務; - 本地郵件服務
發送接收郵件命令:mail/mailx
mial [-s subject] username[@hostname]
郵件正文的編輯方式:1.交互式輸入;. 單獨成行可以表示正文結束;Ctrl+d提交亦可; 2.通過輸入重定向; 3. 通過管道;
mail -s "subject" address< file(郵件正文.txt)
# mail -s "郵件主題" [email protected] < /data/findyou.txt
echo "text" | mail -s "subject" address
# echo "text" | mail -s "subject" [email protected]
cat ffile.txt | mail -s "subject" address
# cat /data/findyou.txt | mail -s "subject" [email protected]