般情況下,我們在操作和營運VPS、伺服器的時候可能會用到crontab定時任務的配置,比如定時的重啟伺服器、定時備份資料等操作使用的還是比較多的。這裡就離不開使用crontab命令的任務配置,在這篇文章中,老左將會整理較為齊全的crontab命令使用的方法以及常用的執行個體操作。
從上圖中,我們其實就可以看到crontab具體用法。一共有6個段落,前面5個標示定時的時間設定,後面一個標示檔案的路徑定時執行。
第一、crontab安裝
一般我們使用的centos或者debian發行版本都內建crontab定時軟體支援的,如果系統不支援,我們只需要通過下面對應的安裝就可以。
1、centos安裝crontab
| 代碼如下 |
複製代碼 |
#安裝Crontab
yum install vixie-cron crontabs
#設定開機啟動Crontab
chkconfig crond on
#啟動Crontab
service crond start
|
2、debian安裝crontab
| 代碼如下 |
複製代碼 |
#安裝Crontab
apt-get install cron
#重啟Crontab
/etc/init.d/cron restart
|
確保系統安裝且運行生效之後才可以相關的設定。
第二、定時任務案例
1、35 * * * * updatedb
每隔一小時35分鐘的時候更新一次資料庫。
2、*/5 * * * * /usr/local/bin/diskusage.sh
每隔5分鐘運行diskusage.sh檔案。
3、25,50 1 15 * 2 /usr/local/bin/diskusage.sh
每周二1:50AM執行檔案
4、00 14 10 3,6,9,12 * /usr/local/bin/diskusage.sh
每年3、6、9、12月份第十天下午2點執行。
5、00 21 * * Mon,Wed,Fri /usr/local/bin/diskusage.sh admin@laozuo.org
每周一、三、五下午9點執行指令碼
6、*/5 * * * 1-5 /usr/local/bin/diskusage.sh
周一到周五,每五分鐘執行。
第三、系統調度
| 代碼如下 |
複製代碼 |
/etc/cron.d /etc/cron.daily /etc/cron.hourly /etc/cron.monthly /etc/cron.weekly
|
如果我們根目錄在執行backup.sh備份命令,使用上面指令碼可以直接替換到/etc/cron.weekly目錄。
第四、定時計劃的層級設定
我們在操作的時候,每個使用者都可以編輯、查看、刪除crontab定時設定檔。如果根使用者需要改crontab檔案,必須加上'-u'選項來指定使用者名稱。
1、編輯crontab檔案的使用者laozuo時候,我們可以使用命令:
crontab -u laozuo -e
2、移除laozuo使用者的定時設定
crontab -u laozuo -r
3、查看laozuo定時任務設定檔案
crontab -u laozuo -l
第四、從檔案中載入crontab
我們除了可以手工編輯定時檔案之外,還可以檔案載入到定時檔案中。
| 代碼如下 |
複製代碼 |
cat /root/mycronjobs.txt
53 00 * * 7 /bin/sh /root/server-backup.sh
01 00 * * * /bin/sh /root/check-user-quota.sh
|
我們需要先上傳編輯好的mycronjobs.txt定時任務檔案到目錄中,然後才可以執行。
| 代碼如下 |
複製代碼 |
crontab /root/mycronjobs.txt
|
通過這個命令檢查驗證。
| 代碼如下 |
複製代碼 |
crontab -l
53 00 * * 7 /bin/sh /root/server-backup.sh
01 00 * * * /bin/sh /root/check-user-quota.sh
|
這裡我們可以檢查定時檔案是否存在。
第五、加入SELinux安全選項
| 代碼如下 |
複製代碼 |
crontab -s /root/mycronjobs/my.txt
SELINUX_ROLE_TYPE=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
53 00 * * 7 /bin/sh /root/server-backup.sh
01 00 * * * /bin/sh /root/check-user-quota.sh
|
第六、刪除定時任務工作
| 代碼如下 |
複製代碼 |
[root@linux ~]# crontab -l
53 00 * * 7 /bin/sh /root/server-backup.sh
01 00 * * * /bin/sh /root/check-user-quota.sh
[root@linux ~]# crontab -r
[root@linux ~]# crontab -l
no crontab for root
|
我們先用-l查看當前的定時任務,然後用-r刪除,然後再檢查已經沒有任務選項。
總結,以上6個步驟和方法,就是我們常用的crontab定時檔案配置常用的,一般我們會用的多的是備份和定時啟動等,根據我們實際的需要再進行時間上的調整。