ホームページ  >  に質問  >  本文

运维 - linux crontab定时任务与flock

迷茫迷茫2743日前917

全員に返信(2)返信します

  • 黄舟

    黄舟2017-04-17 16:33:40

    スクリプトに「ロック ファイルを削除し、新しいロック ファイルを作成する」というステートメントを追加することで、上記の問題を解決しました。ロックファイルが新しくなるたびに crontab がトリガーされることがわかりました。

    画像からわかるように、現在時刻が 499 であることが検出されると、nginxchen.sh というスクリプトがトリガーされます。このスクリプトの実行時間は約 8 分です。

    返事
    0
  • ringa_lee

    ringa_lee2017-04-17 16:33:40

    正直に言うと、あなたの具体的な理由がわかりません。文を借りれば、実践が真実をテストする唯一の基準であるため、投稿者のシナリオをシミュレートしました。

    1. 2 分以上実行するスクリプトを作成し、

    を実行します。

    2. crontab に入れます
    */1 * * * * flock -xn /root/xx.lock -c 'sh /root/xx.sh >>/tmp/xx.log 2> &1 '

    3. crontab の実行内容を表示します

    元の投稿者が指摘した問題は存在しないことがわかります

    そこで、次の提案を行います。
    1. 短いスクリプトを作成し、サーバーでテストして、状況が同じかどうかを確認します。
    2. /mnt/499.log ログ。異常な出力はありません
    3. プロセスが実行中であるか、停止しているために crontab がロックを取得できていないか確認します。

    投稿者自身が理由を見つけたら、忘れずに投稿してください

    返事
    0
  • キャンセル返事