プログラム実行のスケジュール設定方法を備忘録として残しておきます。
Windowsの場合
コマンドプロンプト、またはPowerShellを起動します。
タスクの作成
schtasksコマンドでタスクを作成します。
(コマンドの使い方については、参考サイトリンクを貼っておきます。)
以下sample.batを毎日1時に実行する例です。
>schtasks /create /tn sample-task /tr "C:\Work\Python\sample.bat" /sc daily /st 01:00
sample.bat の記載内容
cd C:\Work\Python
sample.py arg1 arg2
- 1行目はコマンド実行ディレクトリを移動しています
- 2行目は実行したいコマンド(sample.py)、および、そのコマンドの引数1、引数2を記述しています
作成したタスクの確認
>schtasks /query /tn sample-task
フォルダー\
タスク名 次回の実行時刻 状態
======================================== ====================== ===============
sample-task 2021/11/22 1:00:00 準備完了
作成したタスクの削除
>schtasks /delete /tn sample-task
macOS/Linux
macOSを例に記載します。
「アプリケーション」⇒「ユーティリティ」⇒「ターミナル」を開きます。
cron編集(crontabコマンドを実行)します。
$ crontab -e
※crontab -eは危険との記事も見かけますが、個人PCで、もともと何も設定していないので、使っちゃいます。誤入力 -r オプションにすると消えてしまうので、その点は注意が必要です。
以下sample.pyを毎日1時に実行する例です。コマンド引数はarg1,arg2としています。
1行目はpythonが実行できるようにパスを通しています。
#始まりの行はコメントです。
以下の形式で、実行日時、実行対象のプログラムパスを記述します。
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
0 1 * * * python /Users/Shared/App/Python/sample.py arg1 arg2
編集が終わったら、:wq! でファイル保存します。
(viエディタに慣れていない方、すみません。参考サイトリンクを貼っておきます。)