crontab命令常見(jiàn)于Unix和Linux的操作系統(tǒng)之中祟霍,用于設(shè)置周期性被執(zhí)行的指令。該命令從標(biāo)準(zhǔn)輸入設(shè)備讀取指令盈包,并將其存放于“crontab”文件中沸呐,以供之后讀取和執(zhí)行。通常呢燥,crontab儲(chǔ)存的指令被守護(hù)進(jìn)程激活崭添。crond 常常在后臺(tái)運(yùn)行,每一分鐘檢查是否有預(yù)定的作業(yè)需要執(zhí)行叛氨。這類(lèi)作業(yè)一般稱(chēng)為cron jobs.
1. 安裝
# Ubuntu下安裝
sudo apt-get install cron
# 以上為Ubuntu安裝呼渣,centos與其不同
yum install vixie-cron
yum install crontabs
# vixie-cron軟件包是cron的主程序棘伴;
# crontabs軟件包是用來(lái)安裝、卸裝屁置、或列舉用來(lái)驅(qū)動(dòng) cron 守護(hù)進(jìn)程的表格的程序焊夸。
2. 開(kāi)啟服務(wù)
service cron start # 啟動(dòng)服務(wù)
service cron stop # 關(guān)閉服務(wù)
service cron restart # 重啟服務(wù)
service cron reload # 重新載入配置
service cron status # 查看crontab服務(wù)狀態(tài)
3. 設(shè)置定時(shí)腳本
新增調(diào)度任務(wù)可用兩種方法:
(1) 在命令行輸入: crontab -e
然后添加相應(yīng)的任務(wù),wq存盤(pán)退出缰犁。(我們執(zhí)行一般腳本用這個(gè)命令就可以)
(2) 直接編輯/etc/crontab 文件淳地,即vi /etc/crontab,添加相應(yīng)的任務(wù)帅容。
crontab -e配置是針對(duì)某個(gè)用戶的颇象,而編輯/etc/crontab是針對(duì)系統(tǒng)的任務(wù)
查看調(diào)度任務(wù)
crontab -e # 打開(kāi)編輯文件,添加相應(yīng)的任務(wù)并徘,wq存盤(pán)退出
默認(rèn)的文件形式如下:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see 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
我自己的py腳本:
image.png
例1:
5 * * * * ls 指定每小時(shí)的第5分鐘執(zhí)行一次ls命令
30 5 * * * ls 指定每天的 5:30 執(zhí)行l(wèi)s命令
30 7 8 * * ls 指定每月8號(hào)的7:30分執(zhí)行l(wèi)s命令
30 5 8 6 * ls 指定每年的6月8日5:30執(zhí)行l(wèi)s命令
30 5 8 6 * ls 指定每年的6月8日5:30執(zhí)行l(wèi)s命令
30 6 * * 0 ls 指定每星期日的6:30執(zhí)行l(wèi)s命令
30 3 10,20 * * ls 每月10號(hào)及20號(hào)的3:30執(zhí)行l(wèi)s命令
25 8-11 * * * ls 每天8-11點(diǎn)的第25分鐘執(zhí)行l(wèi)s命令
*/15 * * * * ls 每15分鐘執(zhí)行一次ls命令
30 6 */10 * * ls 每個(gè)月中遣钳,每隔10天6:30執(zhí)行一次ls命令
22 4 * * * root run-parts /etc/cron.daily
每天4:22以root身份執(zhí)行/etc/cron.daily目錄中的所有可執(zhí)行文件,run-parts參數(shù)表示麦乞,執(zhí)行后面目錄中的所有可執(zhí)行文件蕴茴。
例2:
#每晚的21:30 重啟apache
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
#每月1、10姐直、22日的4 : 45重啟apache
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
#每周六倦淀、周日的1 : 10重啟apache
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
#每天18 : 00至23 : 00之間每隔30分鐘重啟apache
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
#每星期六的11 : 00 pm重啟apache
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
#晚上11點(diǎn)到早上7點(diǎn)之間,每隔一小時(shí)重啟apache
0 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
#每一小時(shí)重啟apache
0 */1 * * * /usr/local/etc/rc.d/lighttpd restart
#每月的4號(hào)與每周一到周三的11點(diǎn)重啟apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
#一月一號(hào)的4點(diǎn)重啟apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
#每半小時(shí)同步一下時(shí)間
0/30 * * * * /usr/sbin/ntpdate 210.72.145.44
4. 其余命令
列出當(dāng)前的所有調(diào)度任務(wù)
crontab -l
列出”某用戶”的所有調(diào)度任務(wù)
crontab -l -u root