こんにちは、こんです🦊
「毎朝7時に自動でレポートを作りたい!」
「Slackに通知を飛ばしたいけど、手動でやるのは面倒くさい!」
そんな小さな「めんどくさい」を消してくれるのが、VPS × cron のスケジューラです。
自分のPCだと電源切ったら止まっちゃいますが、
VPSなら24時間365日、ずっと動いてくれる相棒。
だからこそ、ちょっとしたPythonスクリプトでも
スケジューラに登録するだけで“自動化ツール”に早変わりするんです。
この記事では、
✅ cron でスケジュールを作る
✅ Pythonでログを残す
✅ トラブルなく動くコツを知る
をやっていきます!
これができると、
「レポート作成」「バックアップ」「API自動取得」…
全部 人間の手放し で動きます。
「自分の代わりに動いてくれる相棒」を作っていきます🦊
1. 導入:この記事でできるようになること
今回は、VPSに cron を設定して 「決まった時間にPythonスクリプトを自動実行する」 方法に挑戦します。
具体例として:
毎朝7時にレポートを自動生成して保存する
必要に応じてその結果をメールやSlackへ通知する
実行ログを残して、失敗を把握できる
VPSは常時稼働するため、スケジューラと非常に相性が良く、定期処理・バッチ処理を自動化する基本スキルです。
2. 背景・基礎知識
📌 cronとは?
cron は Linuxで最も広く使われているジョブスケジューラです。
cronを設定すると、決まったスケジュールでコマンドやスクリプトを自動で実行できます。
「毎日」
「毎週月曜」
「毎月1日」
など柔軟に設定できます。
📌 なぜVPSでcronを使うのか
ローカルPCだと電源を切ればスケジュールは止まりますが、
VPSなら 24時間365日、自動処理が途切れず動き続けます。
例:夜間の自動バックアップ
例:毎朝の売上集計レポート
例:APIからの自動データ取得
📌 cronの基本構文
分 時 日 月 曜日 コマンド
例:
0 7 * * * コマンド
これは「毎日7時0分に実行する」という意味です。
3. 実践パート
ここでは「Pythonスクリプトをcronで動かし、実行結果をログに残す」ステップを具体的にやっていきます。
✅ ステップ1|Pythonスクリプトを作成する
例えば、毎朝7時に「今日の日付をレポートに追記」する daily_report.py を作ります。
# daily_report.py
from datetime import datetime
with open("/home/ubuntu/daily_report.log", "a") as f:
now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
f.write(f"[{now}] Daily report executed.\n")
絶対パス /home/ubuntu/ は自分の環境に合わせて修正してください。
✅ ステップ2|スクリプトをテスト実行する
念のため手動で動作確認します。
python3 /home/ubuntu/daily_report.py
正常に daily_report.log に追記されていればOKです。
✅ ステップ3|crontab に登録する
crontab を編集します。
crontab -e
以下の1行を追加します。
0 7 * * * /usr/bin/python3 /home/ubuntu/daily_report.py >> /home/ubuntu/cron_output.log 2>&1
ポイント:
which python3 で正確なPythonパスを確認して書きます。
>> ... で cron専用の出力ログを残しておくとトラブル時に便利です。
✅ 設定が反映されたら、次の7:00に自動で動きます。
4. よくあるつまずき・FAQ

5. まとめと次回予告
今回学んだこと:
VPSでcronを使えば、いつでも止まらないスケジュール実行ができる
Pythonスクリプトを自動化する基本の流れ
ログを残して実行結果を確認する方法
#cron #vps #python