Pythonスクリプトをcronで定期実行させる
はじめに
作成したPythonのツールを自動で実行させたい場合、mac、linux系OSの場合cronを使うことで、実行させることができます。crontabの設定についてご紹介します。
crontabとは?
どんな時に使うの?
例えば、毎週指定した時間に、指定したサイトからファイルをダウンロードする処理を実行するPythonツールを実行したいときに、crontabコマンドで設定します。
crontabコマンドの使用方法
1.cronを設定
コマンドライン(ターミナル)で、下記のコマンドを実行。
crontab -e
vimでcronファイルが立ち上がります。
vimは、テキストエディタですが、使用するまでに覚えることが多いです。
最低限これだけ知っていれば、は下記です。
・ノーマルモードとインサートモードの2つのモードがある。
・操作方法
インサートモードに変更→i
※インサードモードに変更しないと、文字入力ができません。
ノーマルモードに変更→esc
上書きして終了→:wq
2.設定されているcronを表示
コマンドライン(ターミナル)で、下記のコマンドを実行。
crontab -l
3.日時の設定方法
* * * * * command
左から、
①分
②時
③日
④月
⑤曜日
で設定していきます。
例えば、
・毎日8:30に実行
30 8 * * * command
・毎日8:00、12:00に実行
0 8,12 * * * command
・毎週月、木曜の12:00に実行
0 8,12 * * * command
・毎月1日の6:00に実行
00 6 1 * * command
4.メールを受け取る
エラーが発生したら、メールを送信する場合の設定は、下記の記述を追加します。
MAILTO='xxx@xxx.com'
crontab設定時の注意点
環境変数の設定
PATH変数など環境変数の設定が必要です。
SHELL=/bin/bash
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/xxx/.local/bin:/home/xxx/bin
絶対パスで指定
相対パスは使用できないので、絶対パスで指定します。
最後に
例として、毎朝8:30に、/home/xxx/aaaの配下にある、"hello.py"を実行させる場合、下記のように記述します。
SHELL=/bin/bash
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/xxx/.local/bin:/home/xxx/bin
30 8 * * * cd /home/xxx/aaa; /usr/bin/python3 /home/xxx/aaa/hello.py
今回は、crontabの設定についてご紹介しました。
参考サイト
この記事が気に入ったらサポートをしてみませんか?