ubuntuマシンで2時間ごとに小さな監視jarファイルを実行したい。
java -jar mymonitoringtool.jar
設定方法がわかりません。
コメント
- cronはあなたの友達です。
- デイライトセービングへの切り替えやデイライトセービングからの切り替えについて何が必要ですか?ジョブが2時間ごとに実行され、その前後に1時間スキップまたは追加できないことが、非常に重要ですか?
- はい、2時間ごとに実行する必要があります。スキップしないでください。2時間未満ではなく2時間の監視を表すと効果的ではないと思います。いくつかの統計を実行する予定です。したがって、期間は重要です。
回答
要件に応じて次の式を使用してcrontabを設定できます。
0 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar &> path/to/monitor-$(date "+%Y%b%d-%H%M%S").log
最初に、crontab -l
を実行して、既存のcronジョブを確認する必要があります。
そうでない場合まだcronジョブがありますが、テキストファイル(my-cron-job.txtなど)に行を追加し、crontab my-cron-job.txt
を実行してアクティブにします。次に、crontab -l
をもう一度実行して、ジョブが追加されたことを確認できます。
既存のcronジョブがある場合は、
そしてcrontabファイルを編集します。これにはコマンドラインエディタ(デフォルトではvi)を使用する必要があります。
cronデーモンは限られた数しか設定しません。環境変数の数が多いため、java実行可能ファイルへのフルパスを指定することをお勧めします。また、実行可能JARファイルへのフルパスを指定する必要があります。
java -jar
コマンドからの出力を収集することを想定しているため、コマンドにログファイルを追加しました。コマンドからの出力ストリームとエラーストリームは、このログファイルにリダイレクトされます。このログファイルには、タイムスタンプ(monitor-2018Nov03-200000.logなど)が付けられます。
すべてが設定されたら、最初の1つまたは2つの実行についてcronジョブを監視する必要があります。すべてが必要に応じて機能する場合は、実行したままにしておくことができます。
外部参照として、ここにcronジョブの紹介があります。これは、スケジューリングが実際にどのように機能するかを理解するのに役立ちます。
https://www.howtoforge.com/a-short-introduction-to-cron-jobs
回答
cronはLinuxの内部ジョブスケジューラです。特定の間隔またはdate_timeで実行するようにコマンドをスケジュールするのに役立ちます。
端末で
crontab -e
と入力しますこの行を追加します
0 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar
保存して終了
次のCrontab構文
00 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar
0分ごと-2時間毎日毎日毎月毎週平日run-this-command
その他のオプションと情報: https://help.ubuntu.com/community/CronHowto
コメント
- JAVA_HOMEを設定した場合、path / to / javaは必要ですか?マシンでjavaバージョンが機能することを確認できます。
- 必要はありません。環境変数(JAVA_HOME)の場合はパスを追加しますが設定されています。しかし、どういうわけか、環境変数が台無しになった場合、cronjobに追加されたJavaパスは'ブレーキをかけません