您好,登錄后才能下訂單哦!
小編給大家分享一下crontab如何實(shí)現(xiàn)每隔多少天執(zhí)行一次腳本,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
前言
我們大家在工作中,經(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 # 每兩小時(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í)行
看完了這篇文章,相信你對(duì)“crontab如何實(shí)現(xiàn)每隔多少天執(zhí)行一次腳本”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。