1、crontab安裝
[root@CentOS ~]# yum install vixie-cron
[root@CentOS ~]# yum install crontabs
說明:
vixie-cron軟件包是cron的主程序;
crontabs軟件包是用來安裝、卸裝、或列舉用來驅動 cron 守護進程的表格的程序。
cron 是linux的內置服務,但它不自動起來,可以用以下的方法啟動、關閉這個服務:
/sbin/service crond start //啟動服務 /sbin/service crond stop //關閉服務 /sbin/service crond restart //重啟服務 /sbin/service crond reload //重新載入配置
查看crontab服務狀態:service crond status
手動啟動crontab服務:service crond start
2、crontab基本格式
# +---------------- minute 分鍾(0 - 59) # | +------------- hour 小時(0 - 23) # | | +---------- day 日期(1 - 31) # | | | +------- month 月份(1 - 12) # | | | | +---- week 星期(0 - 7) (星期天=0 or 7) # | | | | | # * * * * * 要運行的命令
3、crontab命令編輯
crontab -u //設定某個用戶的cron服務,一般root用戶在執行這個命令的時候需要此參數 crontab -l //列出某個用戶cron服務的詳細內容 crontab -r //刪除沒個用戶的cron服務 crontab -e //編輯某個用戶的cron服務
(1)新建一個定時器,(普通用戶的定時器,在普通用戶下自己建)
crontab -e //先su切換到某個用戶下,然后輸入這個命令,然后進入編輯狀態
然后輸入定時器語句如下:(>>是把echo輸出字符串打印到text.txt文件中)
0 6 * * * echo "Good morning." >> /tmp/test.txt
(2)root查看自己的cron設置:
crontab -u root -l
(3)root想刪除fred用戶的cron設置:
crontab -u fred -r
4、常用示例
每天早上6點追加一條字符串到一個文本。 0 6 * * * echo "Good morning." >> /tmp/test.txt 每兩個小時追加一條字符串一個文本。 0 */2 * * * echo "Have a break now." >> /tmp/test.txt 晚上11點到早上8點之間每兩個小時,早上八點 0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt 每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點 0 11 4 * 1-3 command line 1月1日早上4點 0 4 1 1 * command line 每月每天每小時的第 0 分鍾執行一次 /bin/ls 0 * * * * /bin/ls 在 12 月內, 每天的早上 6 點到 12 點中,每隔 20 分鍾執行一次 /usr/bin/backup */20 6-12 * 12 * /usr/bin/backup 周一到周五每天下午 5:00 寄一封信給 alex_mail_name : 0 17 * * 1-5 mail -s "hi" alex_mail_name < /tmp/maildata 每月每天的午夜 0 點 20 分, 2 點 20 分, 4 點 20 分....執行 echo "haha" 20 0-23/2 * * * echo "haha" 晚上11點到早上8點之間每兩個小時,早上8點,顯示時間 0 23-7/2,8 * * * date
每次編輯完某個用戶的cron設置后, cron自動在/var/spool/cron下生成一個與此用戶同名的文件,此用戶的cron信息都記錄在這個文件中,這個文件是不可以直接編輯的, 只可以用crontab -e 來編輯。cron啟動后每過一份鍾讀一次這個文件,檢查是否要執行里面的命令。因此此文件修改后不需要重新啟動cron服務。