[root@localhost ~]# service crond restart
停止 crond: [確定]
正在啟動 crond: [確定]
#重新啟動crond服務
[root@localhost ~]# chkconfig crond on
#設定crond服務為開機自啟動
[root@localhost ~]# crontab [選項] [file]
注意,這里的 file 指的是命令文件的名字,表示將 file 作為 crontab 的任務列表文件并載入 crontab,若在命令行中未指定文件名,則此命令將接受標準輸入(鍵盤)上鍵入的命令,并將它們鍵入 crontab。| 選項 | 功能 |
|---|---|
| -u user | 用來設定某個用戶的 crontab 服務,例如 "-u demo" 表示設備 demo 用戶的 crontab 服務,此選項一般有 root 用戶來運行。 |
| -e | 編輯某個用戶的 crontab 文件內容。如果不指定用戶,則表示編輯當前用戶的 crontab 文件。 |
| -l | 顯示某用戶的 crontab 文件內容,如果不指定用戶,則表示顯示當前用戶的 crontab 文件內容。 |
| -r | 從 /var/spool/cron 刪除某用戶的 crontab 文件,如果不指定用戶,則默認刪除當前用戶的 crontab 文件。 |
| -i | 在刪除用戶的 crontab 文件時,給確認提示。 |
[root@localhost !]# crontab -e
#進入 crontab 編輯界面。會打開Vim編輯你的任務
* * * * * 執行的任務
| 項目 | 含義 | 范圍 |
|---|---|---|
| 第一個"*" | 一小時當中的第幾分鐘(minute) | 0~59 |
| 第二個"*" | 一天當中的第幾小時(hour) | 0~23 |
| 第三個"*" | 一個月當中的第幾天(day) | 1~31 |
| 第四個"*" | 一年當中的第幾個月(month) | 1~12 |
| 第五個"*" | 一周當中的星期幾(week) | 0~7(0和7都代表星期日) |
| 特殊符號 | 含義 |
|---|---|
| *(星號) | 代表任何時間。比如第一個"*"就代表一小時種每分鐘都執行一次的意思。 |
| ,(逗號) | 代表不連續的時間。比如"0 8,12,16***命令"就代表在每天的 8 點 0 分、12 點 0 分、16 點 0 分都執行一次命令。 |
| -(中杠) | 代表連續的時間范圍。比如"0 5 ** 1-6命令",代表在周一到周六的凌晨 5 點 0 分執行命令。 |
| /(正斜線) | 代表每隔多久執行一次。比如"*/10****命令",代表每隔 10 分鐘就執行一次命令。 |
| 時間 | 含義 |
|---|---|
| 45 22 ***命令 | 在 22 點 45 分執行命令 |
| 0 17 ** 1命令 | 在每周一的 17 點 0 分執行命令 |
| 0 5 1,15**命令 | 在每月 1 日和 15 日的凌晨 5 點 0 分執行命令 |
| 40 4 ** 1-5命令 | 在每周一到周五的凌晨 4 點 40 分執行命令 |
| */10 4 ***命令 | 在每天的凌晨 4 點,每隔 10 分鐘執行一次命令 |
| 0 0 1,15 * 1命令 | 在每月 1 日和 15 日,每周一個 0 點 0 分都會執行命令,注意:星期幾和幾日最好不要同時出現,因為它們定義的都是天,非常容易讓管理員混淆 |
[root@localhost ~]# crontab -e
#進入編輯界面
*/5 * * * * /bin/echo "11" >> /tmp/test
[root@localhost ~]# crontab -e
5.5 * * 2 /sbin/shutdown -r now
[root@localhost ~]# crontab -e
30.3 1,10,15 * * /root/sh/autobak.sh
[root@localhost ~]# crontab -l
#查看root用戶的crontab任務
*/5 * * * * /bin/echo "11" >> /tmp/test
5.5 * * 2 /sbin/shutdown -r now
30.3 1,10,15 * * /root/sh/autobak.sh
[root@localhost ~]# crontab -r
#刪除root用戶所有的定時任務。如果只想刪除某個定時任務,則可以執行“crontab -e”命令進入
#編輯模式手工刪除
[root@localhost ~]# crontab -l
no crontab for root
#刪除后,再查詢就沒有root用戶的定時任務了
[root@localhost ~]# vi /etc/crontab
SHELL=/bin/bash
#標識使用哪種Shell
PATH=/sbin:/bin:/usr/sbin:/usr/bin
#指定PATH環境變量。crontab使用自己的PATH,而不使用系統默認的PATH,所以在定時任務中出現的
#命令最好使用大寫
MAILTO=root
#如果有報錯輸出,或命令結果有輸出,則會向root發送信息
HOME=/
#標識主目錄
# For details see man 4 crontabs
#提示大家可以去“man 4 crontabs”查看幫助
# Example of job definition:
#.——————————— minute (0 - 59)
# |.———————— hour (0 - 23)
# | |.——————— day of month (1 - 31)
# | | |.———— month (1 - 12) OR jan,feb,mar,apr……
# | | | | .———day of week(0-6)(Sunday=0 or 7)OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
#分 時日月周執行者身份命令
#列出文件格式,并加入了注釋
#以下輸出在CentOS 5.5中
[root@sc ~]# vi /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02.4 * * * root run-parts /etc/cron.daily
22.4 * * 0 root run-parts /etc/cron.weekly
42.4 1 * * root run-parts /etc/cron.monthly
[root@localhost ~]# vi /etc/crontab
…省略部分輸出…
* * * * * root run-parts /root/cron/
#讓系統每分鐘都執行一次/root/cron/目錄中的腳本,腳本執行者是root用戶
#雖然在CentOS 6.x中不直接通過此配置文件調用/etc/cron.{daily,weekly,monthly}這些目錄,但是run-parts腳本還是可以使用的。所以我完全可以參照CentOS 5.x的方法來寫定時任務
#使用run-parts腳本調用并執行/root/cron/目錄中所有的可執行文件
[root@localhost ~]# mkdir cron
#建立/root/cron/目錄
[root@localhost cron]# vi /root/cron/hello.sh
#/bin/bash
echo "hello" >> /root/cron/hello.log
#在/root/cron/hello.log文件中寫入“hello”
[root@localhost cron]# chmod 755 hello.sh
#賦予執行權限
#因為hello.sh腳本放入了/root/cron/目錄中,所以每分鐘執行一次。
新聞熱點
疑難解答