站長資訊網
        最全最豐富的資訊網站

        帶大家學習Linux crontab

        crontab

        使用 cron的時候,我們經常會因為 某個命令運行時間太長,命令再次被啟動時,會出現多進程。
        可以使用flock, 如:

        */1 * * * * flock -xn /opt/app/nginx/test_repo/app/tasks/checkPaymentUrl.lock -c 'sudo -u apache php /opt/app/nginx/test_repo/app/console Payment checkPaymentUrl >> /dev/null 2>&1'

        當多個進程可能會對同樣的數據執行操作時,這些進程需要保證其它進程沒有也在操作,以免損壞數據。

        通常,這樣的進程會使用一個「鎖文件」,也就是建立一個文件來告訴別的進程自己在運行,如果檢測到那個文件存在則認為有操作同樣數據的進程在工作。這樣的問題是,進程不小心意外死亡了,沒有清理掉那個鎖文件,那么只能由用戶手動來清理了。
        參數

        -s,--shared:獲取一個共享鎖,在定向為某文件的FD上設置共享鎖而未釋放鎖的時間內,其他進程試圖在定向為此文件的FD上設置獨占鎖的請求失敗,而其他進程試圖在定向為此文件的FD上設置共享鎖的請求會成功。 -x,-e,--exclusive:獲取一個排它鎖,或者稱為寫入鎖,為默認項。 -u,--unlock:手動釋放鎖,一般情況不必須,當FD關閉時,系統會自動解鎖,此參數用于腳本命令一部分需要異步執行,一部分可以同步執行的情況。 -n,--nb, --nonblock:非阻塞模式,當獲取鎖失敗時,返回1而不是等待。 -w, --wait, --timeout seconds:設置阻塞超時,當超過設置的秒數時,退出阻塞模式,返回1,并繼續執行后面的語句。 -o, --close:表示當執行command前關閉設置鎖的FD,以使command的子進程不保持鎖。 -c, --command command:在shell中執行其后的語句。

        實例
        crontab運用flock防止重復執行

        0 23 * * * (flock -xn ./test.lock -c "sh /root/test.sh") #-n 為非阻塞模式

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 99久久亚洲综合精品网站| 国精品无码A区一区二区| 国产区精品福利在线观看精品| 久久国产欧美日韩精品| 无码国产亚洲日韩国精品视频一区二区三区 | 97热久久免费频精品99| 无夜精品久久久久久| 国产成人精品免费大全| 国产成人vr精品a视频| 亚洲av成人无码久久精品| 色婷婷噜噜久久国产精品12p| 国产福利电影一区二区三区久久久久成人精品综合 | 99国产欧美精品久久久蜜芽| 亚洲AV乱码久久精品蜜桃| 午夜精品久久久久久| 久久99精品国产99久久6| 国产高清一级毛片精品| 日韩精品一区二区三区四区| 91精品全国免费观看青青| 国语精品一区二区三区| 日产精品久久久一区二区| 中文字幕久久精品| 日韩精品无码Av一区二区| 久久精品国产精品亚洲艾草网美妙| 99久久国产热无码精品免费久久久久 | 亚洲精品欧美二区三区中文字幕| 精品人妻V?出轨中文字幕| 国产高清精品一区| www亚洲欲色成人久久精品| 2022精品国偷自产免费观看| 亚洲国产综合91精品麻豆| 久久久久四虎国产精品| 久久精品一区二区三区不卡| 国产在线拍揄自揄视精品不卡| 国产精品久久久久久福利69堂| 92国产精品午夜福利| 精品国产91久久久久久久 | 日韩精品无码一区二区三区不卡 | 国产在AJ精品| 久久996热精品xxxx| 蜜臀精品无码AV在线播放|