Cronジョブは5秒ごとに実行されます。

Cronジョブは5秒ごとに実行されます。

次の機能を使用してクローンジョブを作成する必要があります。

タスクは特定のディレクトリに移動し、5秒ごとにファイルをタッチする必要があります。 1分間だけ実行する必要があります。ロジックはファイルのタイムスタンプを変更することです。

私は次のような論理を思いついた。

次のクローンジョブを作成しました。

00-01 09 * * * /home/flexsys/test.sh

(作業は9:00から始まり9:01まで続く)

スクリプトの内容は次のとおりです。

        #!/bin/tcsh
        cd /home/A/B/C/
              while true
              do
              sleep 5
              touch ABC.txt
              done

どの基準タブに何を入れるべきかわかりません。ループ句なしでこれを試しましたが、ファイルに一度だけ触れました。 9時1分までこれを繰り返す必要があります。この目標を達成するにはどうすればよいですか?

ベストアンサー1

00-01 09 * * * /home/flexsys/test.sh (the job will start at 9:00 and run upto 9:01)

そういう意味ではありません。これは、ジョブが午前9時に実行されることを意味します。そして9:01に再実行されます。 Cronは仕事を取り除く概念を持っていません。ただ始めるだけです。


の場合は、コマンドwhileを実行しdate、分を探し、それが正しいことをテストする必要があります00。私のシステムでは

date | cut -c12-19

フルタイム12:36:28に戻ります。システムの出力cutから分だけ抽出する方法を理解する必要があります。date

test最後に、値がゼロであることを確認するコマンドが必要です。

別のオプションは、スクリプトを60秒間実行し、5秒ごとに操作を実行する必要がある場合は、特定の回数だけ実行してから終了できます。


直面した最後の問題は、lsほとんどの(すべてではありませんが)Unixシステムのコマンドが秒単位で正確なタイムスタンプを表示しないことです。perlファイルのタイムスタンプが5秒ごとに更新されることを確認するには、外部ツールまたはスクリプトが必要になる可能性があります。私はこれについてあなたを助けることができません。

おすすめ記事