CentOSでcronでPythonを定期実行してみた

はじめに

定期実行する処理を実装しておいてと業務で言われたのですが、

定期実行をするための方法としてcronというものがあることを知らなかったので

調べてとりあえず動く形にしてみました。

cronとは

Linuxで使える定期実行が行える機能です。

どの処理をいつ実行するかを指定できます。

cronの編集の仕方

実行したい処理を指定する方法としてはとりあえずcronを開いて編集します。

開き方はこちら。

crontab -e

このコマンドを打つとcronの編集画面に移ります。(viですね)

ここで実行したい時間と実行したい処理を指定します。

実行したい時間の指定は* * * * *のフォーマットで以下の日時を指定できます。(数字は左の*から見た数字)

1番目:秒

2番目:分

3番目:時

4番目:日

5番目:曜日(0~7, 0と7は日曜日)

例えば毎時30分10秒に実行したいという場合は下記のような感じ。

10 30 * * * 

今回やりたいことは30秒ごとに実行する、という処理だったんですがその場合は下記のような指定で動きます。

*/30 * * * *

*/で指定すると指定した時間ごとに実行してくれます。

実行したい処理については以下みたいな感じ。

python /home/servername/main.py 

書き方としては普通にpythonの処理実行する時とあまり変わらないですが、

場合によってはパスがうまく通ってないのか動いてくれない時があります。

その場によりけりなのでうまく動かない時は調べてみていただければと思います。

上記までの記載を組み合わせてcrontabの編集画面で以下みたいに記載してください。

今回は30秒ごとにmain.pyを実行する定期実行の処理です。

*/30 * * * * python /home/servername/main.py 

上記を記載して保存して編集画面を閉じればこれで定期実行の登録完了です。

30秒ごとにmain.pyを実行してくれているはずです。

最後に

cronの存在知らなかったですけど、こういうことができるなら早めに知りたかった・・・。

まあ完全なる調査不足ですけどね、WindowsでタスクスケジューラーみたいなのがあるんだからLinuxでは似たようなのかを調べれば似たようなの出て良かったはずなのに。

自分の考えで定期実行の処理実装してみてて、ミーティング中にcron使えばすむんじゃない?って言われた時は久々にやっちまったな・・・と思いましたが、新しいこと知れて良かったです。

ただいろいろ自分で試行錯誤するよりさっさと聞いた方がいい時もありますね・・・。

仕事なんだからそこはさっさと判断してやるようにしていかなければ。

じゃあ今日はこの辺で。

それではー

コメント

タイトルとURLをコピーしました