crond是linux下用來週期性的執行某種任務或等待處理某些事件的一個守護進程,與windows下的計劃任務相似,當安裝完成操做系統後,默認會安裝此服務工具,而且會自動啓動crond進程,crond進程每分鐘會按期檢查是否有要執行的任務,若是有要執行的任務,則自動執行該任務。 linux
[root@dmp004 orderreport]# crontab -h usage: crontab [-u user] file crontab [-u user] [ -e | -l | -r ] (default operation is replace, per 1003.2) -e (edit user's crontab) -l (list user's crontab) -r (delete user's crontab) -i (prompt before deleting user's crontab) -s (selinux context)
經過usage能夠看到使用格式以下:shell
crontab [-u user] [ -e | -l | -r ] filewindows
-u後邊跟用戶名ide
-e 表明編輯定時任務列表工具
-l 列出用戶定時任務this
file爲定義定時任務的文件操作系統
其餘參數一目瞭然,其中file的格式很重要code
minute hour day month week command
文件中共包含六個字段,前五個字段爲時間,最後一個字段爲要執行的命令。進程
minute 表示分鐘,能夠是0-59
hour 表示小時,能夠是0-23
day 表示天,能夠是1-31
month表示月,能夠是1-12
week 表示周幾,能夠是0-7
command表明要執行的命令,能夠是linux命令,也能夠是shell腳本 事件
時間字段中:
星號* 表明任什麼時候間
逗號, 好比hour是 「3,4,9」 表明3點、4點、9點都要執行
橫槓- 表明範圍 好比hour是「3-9」,表明3點至9點都要執行
斜線\/ 表明時間間隔 好比hour是 「0-23/2」,表明在0至23點之間,每兩個小時執行一次
1.查看當前用戶下的定時任務
[root@dmp004 orderreport]# crontab -l 50 17 * * * /home/mofei/task/orderreport/start.sh
2.查看用戶root下的定時任務
[root@dmp004 orderreport]# crontab -u root -l 50 17 * * * /home/mofei/task/orderreport/start.sh
3.給root用戶添加定時任務
定義test.task,內容以下:
* * * * * echo 'this is a test'
添加到定時任務列表
[root@dmp004 orderreport]# crontab -u root test.task [root@dmp004 orderreport]# crontab -u root -l * * * * * echo 'this is a test'
4.刪除root的定時任務
[root@dmp004 orderreport]# crontab -u root -r
當給非登陸用戶(好比:hdfs)添加任務時,最好先切換到hdfs,執行如下任務,避免因權限問題,致使任務未執行的問題
[root@dmp004 orderreport]# su hdfs [hdfs@dmp004 orderreport]$ ./start.sh [hdfs@dmp004 orderreport]$ ./start.sh: line 3: /home/mofei/task/orderreport/17-11-07.log: Permission denied