レンタルサーバでcron設定をしてpythonを自動実行させる

wordpress
スポンサーリンク

最近、シン・クラウド for Freeで無料でレンタルサーバを借りてブログを立てたのですが、レンタルサーバの機能としてcronで自動実行ができるということなので試してみました

現在の時刻を取得して、時刻を.txtファイルに書き込み、そのファイルをレンタルサーバ内に保存するまでを行います

現在の時刻を取得してファイルを作成するpythonファイルを作成

pythonを実行することで、実行時の時刻を取得して書き込んだtest.txtファイルを実行したファイルと同じ改階層に保存します

参考文献にあるとおり、ファイルの先頭にはコマンドパスを追加しておきます

作成したpythonのファイル名はmake_text.pyにしておきます

#!/usr/bin/python3.6
from datetime import datetime

# 現在の日時を取得
current_time = datetime.now()

# 日時を文字列に変換
formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")

# ファイルに書き込み
with open('test.txt', 'w') as file:
    file.write(formatted_time)

pythonをシンクラウドのレンタルサーバ内に保存

トップページのサーバ管理からサーバを選択して、サーバパネル右上の「ファイルマネージャー」を選択します

ファイルマネージャーの「アップロード」から先ほど作成したmake_text.pyをアップロードします

※場合によってはファイルの権限を変えたり、ファイルの拡張子を変更する必要があるらしいですが、今回はこの604の権限で.py拡張子で実行できました

(test.txtがありますがこれはすでに実行したためです)

Cron設定を行う

サーバパネルから「サーバ」→「Cron設定」で設定画面を開きます

「Cron設定を追加」から実行したい間隔を設定して、コマンドを以下のように設定します

今回は毎時59分に実行するようになっています

問題はコマンド設定の方法ですが、参考文献を参照すると

[コマンドパス] [実行ファイルの位置]

となっています(間に半角スペースがあることに注意)

今回実行したいコマンドはpythonの3.6なので、以下のコマンドパスになります

もし、PHP8.0ならこれです

次にファイルの位置ですが、先ほどのファイルマネージャーのトップのディレクトリは、
「サーバ」→「サーバ情報」のページのホームディレクトリに書いています

なので、今回の場合はファイルマネージャーのトップに置いたので最終的なコマンドは以下のようになります

/usr/bin/python3.6 /home/{個人で異なる}/make_text.py

Cronの結果をメールで受け取る

先ほどのCronの設定画面から実行結果をメールアドレスを受け取れるので設定しておきます

結果の確認

正常に実行させると先ほどpythonファイルを置いた場所と同じ場所にtest.txtが作成されて、実行時の時間が書き込まれているはずです

今回は毎時59分に実行するように設定したので、59分になると実行されてtest.txt生成されているはずです

参考文献

Cron設定 | 有料サービス級の高機能 完全無料レンタルサーバー | シンフリーサーバー
あらかじめ指定した時間に指定コマンド(プログラム)を自動的に実行させる機能「Cron」の設定手順に関するご案内です。
プログラム言語・コマンドパス | 有料サービス級の高機能 完全無料レンタルサーバー | シンフリーサーバー
シンフリーサーバーで動作可能なプログラム言語やそのバージョン、コマンドパス記載しています。

まとめ

レンタルサーバ周りの情報を収集していて、おもしろそうな使い道だったのでメモとして残しておきます

これがあれば色々定期実行して記事の更新ができるのではないかと思っています

コメント

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