petitviolet_blog

@petitviolet blog

watchコマンドでスクリプトの自動実行

一定時間ごとに特定のスクリプトを実行したい、けど権限がなくてcronに登録できない><っていう時に

watch -n 時間(s) (-d or -dc) "コマンド"

ってすれば設定した時間ごとにコマンドを実行してくれます。
結果も標準出力できるので見やすくていいですね。
また、

-dc(--differences=cumulative)

オプションで、その時点までで、実行結果に差分があった場合に、それをハイライトしてくれます。

watch -n 5 -dc date

とかやると変化が見えて、どういうコマンドかわかりやすい

しかし

watch -n 86400 -dc "python hoge.py"

として毎日実行してもらおうと思ったら、

Every 4294.0s python hoge.py
...

となってしまい、できませんでした/(^o^)\

そこで

以下のhoge.shを作ってとりあえず回し始めましたが...cron使いたい...。

#!/usr/local/bin/zsh

while [true]
do
    python hoge.py
    sleep 1d
done

この解決の仕方どうなんですかね。