電子書籍の厳選無料作品が豊富!

現在、crontabで下記のように1時間毎、2時間毎、3時間毎にコマンドを実行するようにしています。

0 */1 * * * コマンド1
0 */2 * * * コマンド2
0 */3 * * * コマンド3

私の理解だと、コマンド1とコマンド2、コマンド1とコマンド3が同時に実行されてしまうときがある、と思っているのですがあっているでしょうか。

もしそうであるならば、同時に実行するのを避けたいので、たとえばコマンド2を5分ずらし、コマンド3を10分ずらして実行させるにはどのように書いたらいいでしょうか。

下記のように書いてみたのですが、これであってますか?

5 */2 * * * コマンド2
10 */3 * * * コマンド3

よろしくお願いいたします。

A 回答 (3件)

それぞれの処理が5分以内で終わるのならそれでいいですよ。


真面目にやるなら各コマンドの最初に他のコマンドが動いてないかプロセスをチェックしてスリープ入れるとかですが。
    • good
    • 1
この回答へのお礼

ありがとうございます!

>真面目にやるなら各コマンドの最初に他のコマンドが動いてないかプロセスをチェックしてスリープ入れるとかですが。

この部分を詳しくおしえていただけないでしょうか。
参考になるサイトでも構いません。
よろしくお願いいたします。

お礼日時:2019/02/15 13:01

>この部分を詳しくおしえていただけないでしょうか。



たいしたことじゃないですよ。
最初にpsコマンドで他コマンドのプロセスの有無を確認して、なければ実行、動いてたら30秒スリープして再度確認などということです。
使う言語も不明なので詳しくは無理。
あとはご自身で試行錯誤してみてください。
    • good
    • 0
この回答へのお礼

ありがとうございました!
参考にさせていただきます。

お礼日時:2019/02/15 14:43

えぇと, 例えば


0 */2 * * * コマンド2
が何を意味するか「正確に」表現できますか?

単に「2時間ごとに『コマンド2』を実行する」という意味ではない, ということは理解できていますか?
    • good
    • 0
この回答へのお礼

ありがとうございます。
ご指摘の通り、よく分かっていません。

ただ、他の解説サイトで
----------
# 0時から23時までの2時間おきに,0分(0:00, 2:00, 4:00, ・・・)ごとに実行する
0 */2 * * * command

# 0時から23時までの3時間おきに,0分(0:00, 3:00, 6:00, ・・・)ごとに実行する
0 */3 * * * command
----------
と書かれていたので、なんとなく、そういうものなのか・・・というレベルです。

お礼日時:2019/02/10 03:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!