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

簡介

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

如何使用

  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可以看到使用格式如下:

crontab [-u user] [ -e | -l | -r ] file

-u後邊跟用戶名

-e 代表編輯定時任務列表

-l 列出用戶定時任務

file爲定義定時任務的文件

其他參數一目瞭然,其中file的格式很重要

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章