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 # 每?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ì)腳本之家的支持。
相關(guān)文章
Linux 中 RPM包 安裝 查詢 卸載命令小結(jié)及yum命令詳解
RPM 的全稱為Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下軟件包的軟件。Linux 安裝時(shí),除了幾個(gè)核心模塊以外,其余幾乎所有的模塊均通過RPM 完成安裝。RPM 有五種操作模式,分別為:安裝、卸載、升級(jí)、查詢和驗(yàn)證2015-11-11linux中nohup和后臺(tái)運(yùn)行進(jìn)程查看及終止
今天給大家介紹linux中nohup和后臺(tái)運(yùn)行進(jìn)程查看及終止的操作命令,大家都知道nohup用于不掛斷地運(yùn)行命令,語法也很簡(jiǎn)單,需要的朋友可以參考下本文吧2021-06-06完美解決ntp的錯(cuò)誤問題no server suitable for synchronization fo
下面小編就為大家?guī)硪黄昝澜鉀Qntp的錯(cuò)誤問題no server suitable for synchronization fo。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03java應(yīng)用啟動(dòng)與停止的shell腳本分享
這篇文章主要和大家分享三個(gè)shell腳本,分別是jvm啟動(dòng)參數(shù)相關(guān)的setjvment.sh,利用java命令啟動(dòng)進(jìn)程的start.sh和停止java進(jìn)程的stop.sh,有需要的可以參考下2023-10-10linux定時(shí)備份MySQL數(shù)據(jù)庫(kù)并刪除以前的備份文件(推薦)
這篇文章主要介紹了linux定時(shí)備份MySQL數(shù)據(jù)庫(kù)并刪除以前的備份文件,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01crontab每10秒執(zhí)行一次的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猚rontab每10秒執(zhí)行一次的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04