溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

crontab如何實(shí)現(xiàn)每隔多少天執(zhí)行一次腳本

發(fā)布時(shí)間:2021-07-07 10:02:34 來源:億速云 閱讀:322 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下crontab如何實(shí)現(xiàn)每隔多少天執(zhí)行一次腳本,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

前言

我們大家在工作中,經(jīng)常會(huì)碰到每隔多少天/小時(shí)/分鐘執(zhí)行一次腳本,或某個(gè)命令的情況。如果是每隔多少小時(shí),多少分運(yùn)行一次程序,在crontab中可能比較好實(shí)現(xiàn)一些,下面是一些示例及crontab的格式說明:

crontab如何實(shí)現(xiàn)每隔多少天執(zhí)行一次腳本

具體示例:

# 下午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)每隔多少天執(zhí)行一次腳本

【方法二】通過crontab間接實(shí)現(xiàn)

思路:

1) 每天定時(shí)執(zhí)行running.sh腳本,再在腳本running.sh里面判斷,當(dāng)間隔時(shí)間滿足條件時(shí)

2) 執(zhí)行script.sh腳本,同時(shí)修改上次執(zhí)行時(shí)間,以便于下次執(zhí)行

crontab如何實(shí)現(xiàn)每隔多少天執(zhí)行一次腳本

看完了這篇文章,相信你對(duì)“crontab如何實(shí)現(xiàn)每隔多少天執(zhí)行一次腳本”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(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)容。

AI