見出し画像

Pythonスクリプトをcronで定期実行させる

はじめに

作成したPythonのツールを自動で実行させたい場合、mac、linux系OSの場合cronを使うことで、実行させることができます。crontabの設定についてご紹介します。

crontabとは?

Unixコマンドで、MacやLinux系で使えるUnix系OS上で定時実行のスケジュール管理を行うために使用します。

どんな時に使うの?

例えば、毎週指定した時間に、指定したサイトからファイルをダウンロードする処理を実行する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の設定についてご紹介しました。

参考サイト


この記事が気に入ったらサポートをしてみませんか?