一、前言
二、本地mail的使用方法
三、at /batch
四、cron
五、小結
一、前言
linux 中執行任務計劃有三種命令:at ,batch ,cron.其中,at,batch 是一次性執行,而crontab,則是周期性執行;
作業執行完成后,會通過郵件通知給作業提交者;因此,以下就從郵件說起。
二、郵件服務
Centos ,默認會安裝并啟動郵件服務,僅服務于本地系統。默認是使用25端口,可以用netstat -tan 查看tcp 25 端口,以下介紹下簡單的應用:
寫本地郵件
1、第一種方法
mail 用戶名/用戶名@主機名
按照提示寫主題,郵件內容
CTRL+d 提交
如:
從用戶007,發給root的郵件
2、第二種方法
把郵件內容先寫在一個文件中,使用重定向
mail -s 主題 用戶< 文件
或者
echo 內容 | mail -s 主題 用戶
查看本地郵件,使用mail命令,q退出
如果有郵件,顯示如下:
按前面的序號就可以讀郵件
在命令提示符下,輸入 help可以查看命令幫助。
常用的進行郵件回復,刪除,另存等。用list可以查看到所有命令
三、at /batch
at +(now + count time-units) :time-units 可以是minutes, hours, days)
或者 hh:mm MMDDYY 等準確時間
編輯任務,最后CTRL+d 提交
先看一個例子
最后一行表示任務7于什么時間執行。
查看任務
atq 或 at -l
看到的是任務10,任務7由于已經執行完了,所以看不到。a表示任務隊列;要取消還未執行的任務。用artm 任務編號。
任務執行后進入mail,查看郵件,里面有任務執行的結果
batch 類似于at,只不過會自動在系統空閑時運行。無需指定時間。
四、cron
cron daemon,一直工作于后臺
1、使用crontab之前,要查看服務器是否正常
如果狀態信息顯示為 “is stop",則需要執行”service crone start"
查看開機crond是否啟動
說明開機自啟動。否則需要使用“ chkconfig on 命令
cron 是運行crontab里的任務
2、crond任務分兩類:
系統cron : /etc/crontab
用戶cron: /var/spool/cron 目錄中,功能類似于 /etc/crontab
系統cron
cat /etc/crontab 可以發現前面定義了環境變量,也就是說,如果以后執行的不在這個環境變量中的命令,會無法執行(可通過寫絕對路徑,或自定義個環境變量解決)
時間 命令 組成了cron的作業
時間
(每小時的第幾)分鐘 小時 日 月 周幾
7 6 5 4 * 每年4月5號6點7分執行一次
*/3 * * * * 每3分鐘一次
20-40/3 * * * * 每個小時的20-40分鐘內每3分鐘執行一次
3 1 * * 3,5,7 每周3,5,7
1 7,9,13 * * * (每天7點9點13點 執行一次)
命令
腳本 其他任意可執行程序
如:
工作日的工作時間內,每小時執行一次'echo "hello"'
1 9-18 * * 1-5 /bin/echo "hello"
用戶 cron
cron
-l: 列出已經定義的所有任務
-e: 打開編輯界面定義任務 (可以幫你檢查語法,建議使用)
-r: 移除所有任務 (刪除一部分用-e的方式刪除行,-r是把文件都刪除了)
管理員可以定義任務給用戶
crontab -u USERNAME -e
同樣,可以查看刪除更改
五、小結
以上大概描述了常用任務創建,修改,刪除等,也說明了常用的系統內mail使用方法。
在linux里,一切皆文件,增刪查改文件,以及文件的保存位置還是需要記清楚。
如果需要定義秒級別的任務,則超出了cron的功能,需要用sleep命令進行補充使用。
還有不完善的地方,以后學習中繼續體會。
原創文章,作者:麥鯨,如若轉載,請注明出處:http://www.www58058.com/4307
麥鯨這次作品質量較前幾次高出許多,如果加上段落標識和字體大小精細調整會更出色
@stanley:謝謝老師 :lol:
文章有干貨,但排版方面最好優化下。