linux定時任務-crontab命令的使用方法

簡介

crond是linux下用來週期性的執行某種任務或等待處理某些事件的一個守護進程,與windows下的計劃任務相似,當安裝完成操做系統後,默認會安裝此服務工具,而且會自動啓動crond進程,crond進程每分鐘會按期檢查是否有要執行的任務,若是有要執行的任務,則自動執行該任務。 linux

如何使用

  1. 首先查看幫助
[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
相關文章
相關標籤/搜索