プログラム実行のスケジュール設定

プログラム実行のスケジュール設定方法を備忘録として残しておきます。

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エディタに慣れていない方、すみません。参考サイトリンクを貼っておきます。)

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