歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> linux 定時任務,linux任務

linux 定時任務,linux任務

日期:2017/3/6 8:55:30   编辑:學習Linux

linux 定時任務,linux任務

linux 定時任務,linux任務


習慣了使用 windows 的計劃任務,使用 linux 中的 crontab 管理定時任務時很不適應。

所以把基本的用法總結如下。

創建一個簡單的定時任務

每分鐘輸出一次當前的時間,輸出到用戶家目錄下的 time.log 文件中。

$ crontab -e
* * * * * echo `date` >> /home/xxx/time.log

crontab 程序的路徑為 /usr/bin/crontab。

每個用戶的定時任務可以在 /var/spool/cron/crontabs/ 目錄下查詢到。

需要使用root權限才能進入這個目錄。每個以用戶名命名的文件中記錄著該用戶的定時任務。

注意,不要使用 vi 直接編輯這些文件。

cron 運行的每一項工作都會被紀錄到 /var/log/cron 這個登錄檔中,但是 Ubuntu 默認關閉了cron 的 log。

打開的方式為:打開 rsyslog 服務的配置文件

$ sudo vim /etc/rsyslog.d/50-default.conf

將下面一行中前面的注釋符去掉

cron.*              /var/log/cron.log

重啟 rsyslog

$ sudo  service rsyslog  restart

現在就可以看到 /var/log/cron 文件了,查看該文件是解決定時任務出錯的重要途徑。

控制用戶運行定時任務

如果不想讓某個用戶運行定時任務,直接把他的賬號寫入到 /etc/cron.deny 文件中即可。注意,一行一個賬號。

當然你也可以使用 /etc/cron.allow 文件來顯式的指定可以運行定時任務的用戶的賬號,並且 /etc/cron.allow 比 /etc/cron.deny 的優先級要高。

但感覺有點亂,倒不如只使用其中的一個。

crontab 命令

-u :只有 root 才有權限執行這個任務,也就是幫其他使用者創建/移除 crontab 定時任務

-e :編輯 crontab 的內容

-l :顯示 crontab 的內容

-r :移除所有 crontab 的內容,若僅要移除某一項,請用 -e 編輯

時間格式

分鐘 小時 日期 月份 周 命令

數字范圍 0-59 0-23 1-31 1-12 0-7 echo "hello" >> abc.log

特殊字符的含義

*(星號) 代表任何時刻都接受。

,(逗號) 代表分隔時段的意思。

-(減號) 代表一段時間范圍內。

/n(斜線) 那個 n 代表數字,每隔 n 單位間隔。

Case1: 每年的五月一日 10:5 執行一次

5 10 1 5 * command

Case2: 每天的三點,六點各執行一次

0 3,6 * * * command #注意這裡使用了逗號

Case3: 每天的8:20, 9:20,10:20,11:20各執行一次

20 8-11 * * * command #注意這裡使用了減號

Case4: 每五分鐘執行一次

*/5 * * * * command #注意這裡使用了/n

Case5: 每周一十點執行一次

* 10 * * 1 command

配置系統級別的定時任務

crontab -e 是用來設置用戶級別的定時任務的。如果要設置系統級別的定時任務該怎麼辦呢?

答案是直接使用 root 權限編輯系統級別定時任務的配置文件: /etc/crontab。

比如直接用 vim 打開編輯:

http://xxx/Linuxjc/1157598.html TechArticle

Copyright © Linux教程網 All Rights Reserved