前言
我們大家在工作中,經(jīng)常會(huì)碰到每隔多少天/小時(shí)/分鐘執(zhí)行一次腳本,或某個(gè)命令的情況。如果是每隔多少小時(shí),多少分運(yùn)行一次程序,在crontab中可能比較好實(shí)現(xiàn)一些,下面是一些示例及crontab的格式說明:
具體示例:
# 下午6點(diǎn)到早上6點(diǎn),每隔15分鐘執(zhí)行一次腳本
0,15,30,45 18-06 * * * /bin/bash $HOME/script.sh > /dev/null 2>1
# 每?jī)尚r(shí),重啟一次服務(wù)
* */2 * * * /etc/init.d/apache2 restart
下面是每隔多少分鐘,每隔多少小時(shí),每天/每周/每月/每年的crontab的歸納總結(jié)
- 每五分鐘執(zhí)行 */5 * * * *
- 每五小時(shí)執(zhí)行 0 */5 * * *
- 每天執(zhí)行 0 0 * * *
- 每周執(zhí)行 0 0 * * 0
- 每月執(zhí)行 0 0 1 * *
- 每年執(zhí)行 0 0 1 1 *
如果說是每個(gè)月的每隔10天來執(zhí)行某個(gè)腳本的話,同樣可以寫成:
# 每個(gè)月的1號(hào),11號(hào),21號(hào),31號(hào),執(zhí)行HTTP服務(wù)重啟
0 0 */10 * * /etc/init.d/apache2 restart
但如果是按自然天數(shù),比如說每27天,執(zhí)行一次腳本,這個(gè)要如何實(shí)現(xiàn)呢? 如果是這種情況,顯然不能通過crontab直接實(shí)現(xiàn),必須迂回實(shí)現(xiàn)。
下面是能想到的兩種方法。
【方法一】通過腳本控制時(shí)間來實(shí)現(xiàn)
思路:
1) 在腳本running.sh中設(shè)置要執(zhí)行的次數(shù),這里假如10次,每次間隔27天,script.sh為要執(zhí)行的腳本
2) 然后執(zhí)行nohup bash running.sh
將其放置在后臺(tái)讓其自動(dòng)執(zhí)行
【方法二】通過crontab間接實(shí)現(xiàn)
思路:
1) 每天定時(shí)執(zhí)行running.sh腳本,再在腳本running.sh里面判斷,當(dāng)間隔時(shí)間滿足條件時(shí)
2) 執(zhí)行script.sh腳本,同時(shí)修改上次執(zhí)行時(shí)間,以便于下次執(zhí)行
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
您可能感興趣的文章:- 使用linux命令crontab間隔時(shí)間執(zhí)行其它命令
- 如何使用Linux的Crontab定時(shí)執(zhí)行PHP腳本的方法
- linux使用crontab實(shí)現(xiàn)PHP執(zhí)行計(jì)劃定時(shí)任務(wù)
- Centos 7下利用crontab定時(shí)執(zhí)行任務(wù)詳解
- linux定時(shí)任務(wù)crontab 實(shí)現(xiàn)每秒執(zhí)行一次的方法
- linux下定時(shí)執(zhí)行任務(wù)的方法及crontab 用法說明(收集整理)
- crontab無(wú)法執(zhí)行php的解決方法
- crontab每10秒執(zhí)行一次的實(shí)現(xiàn)方法
- linux crontab 實(shí)現(xiàn)每秒執(zhí)行的實(shí)例
- crontab執(zhí)行時(shí)間與系統(tǒng)時(shí)間不一致問題解決