PythonをXサーバーで定期実行させる方法
Pythonで自動操作を定期実行させる方法の説明です。
毎日株価の定期チェックなどに応用できます。
ローカルで実行させる場合
ローカルPCで定期実行させる場合は、
1 2 3 4 5 6 7 8 9 10 11 |
import time import schedule def job(): #任意の実行させたいコードを記入 schedule.every().day.at("00:46").do(job) #上記のjob以下を0時46分に日々実行 while True: schedule.run_pending() #ペンディングと下記60秒停止を繰り返し、0時46分だった場合、上記のjobが実行される time.sleep(60) |
と記載します。ただPCの電源を落とすと、当然コードは走りません。
Xサーバーで定期実行させる場合
ローカルPCの電源などに依存させず、サーバー上で定期実行させる方法が以下。
まず、Xサーバーの設定とプログラムのアップロード方法はこちらに。
Cron設定
こちらが出来ている前提で、Xサーバーのサーバパネルから
下記の「Cron設定」へ進みます。
次に「Cron設定追加」タブを選択。
実行したい時間を設定
こちらに実行したい時間を記入します。下記は
・35分になったら
・8時と22時になったら
・それ以外は不問(*を使うとビンゴゲームのワイルドカードの様な記入の仕方になります)
上記の記載の場合、
・8:35 と
・22:35 に毎日実行されます。
実行コマンドの入力
次に下記の実行コマンドを入力します。
ここでは
・使用するPythonのインストール場所の指定
・動かしたい.pyファイルの指定
の二つを記載します。
使用するPythonのインストール場所の指定
こちらでも記載したプログラムを前提にします。
ここでは使用するPythonのインストール場所を指定します。
指定しない場合、XサーバーのデフォルトでインストールされているPythonが使われます
が、ライブラリが入れられないのでエラーが返ってきます。
ですので、自身でインストールしたPythonを指定します。
なので、
1 |
cd アップロードしたフォルダ |
と、こちらでも記載した内容と同じようにTera term等のコマンドプロントで
動かしたいpyファイルの場所まで進みます。
次にコマンドプロントから
1 |
which python |
と入力します。すると以前設定したPythonのインストール場所が返ってきますので、
そのアドレスをコピーします。
私の場合は、pipenvを使ったので、
1 |
/home/あなたのID/.local/share/virtualenvs/python-***_****/bin/activate |
と帰ってきました。末尾のactivateをpython3と書き換え、
1 |
/home/あなたのID/.local/share/virtualenvs/python-***_****/bin/python3 |
と、どこかメモ帳などに記載/保存しておきます。
動かしたい.pyファイルの指定
次に、実行させるプログラム「**.py」のサーバー上のアドレスを準備します。
1 |
/home/あなたのID/あなたが決めたフォルダ名/動かしたいpython.py |
となります。
先にあげた二つを並べます。
/home/あなたのID/.local/share/virtualenvs/python-***_****/bin/python3 /home/あなたのID/あなたが決めたフォルダ名/動かしたいpython.py
この二つのアドレスの間に「半角スペース」を入れて、Xサーバーのサーバーパネルページの「コマンド」にペーストしてください。
おわり
最後にコメントでなんのプログラムなのか?などわかるように記入し、保存すれば
定期実行されるようになります。
これでモニターしている株価の自動定期チェックやTwitterのBOTなどを定期実行させる事が可能になります。
サーバー準備やPythonの学習オススメリンク
Xサーバーの汎用性も高いので
「ブログを始めたい方」と
「サーバーでプログラミングを始めたい」ならピッタリです。
プログラミング未経験で、学生時代も全くダメだった35歳でも、
Pythonを使うのは簡単でした。何より汎用性の高いプログラミング言語です。
ルンバを大量に買う事はお金がかかりますが、
Pythonはロボットを自分で 無料で 作れるようになります。
自分の分身を大量に作れるようなものなので、
人生の時間をより多くし、より多くを得られるようになります。
もし始めるならTech CAMPであれば最初の一歩も入りやすいと思います。
よりPythonとAIや機械学習に特化するならAidemyもお勧めです。