前回、SSH接続でPythonを実行して正常に動作したので、今度はタスクスケジューラを利用して、定期的な日時で、データ取得したいと思います。
では、コントロールパネル→タスクスケジューラを開きます。
作成→予約タスク→ユーザー指定のスクリプトを選択します。
全般タブからタスクに名前を付けます。
適当な名前でいいと思います。後で見て分かるようにしておくと良いでしょう。
続いてユーザーを選択します。
root、admin、guest、各ユーザー名の中から選択します。
注意点は、SSH接続で行った環境と同じにすることです。
今回、自分は自分のユーザー名でSSH接続して、Pythonを実行しました。
なので、同じ環境にするために自分のユーザー名を選択します。
スケジュールタブで自分の行いたいスケジュールを設定します。
参考にこんな感じで設定できます。
続いてタスク設定です。
メール設定をしておきましょう。
正常に終了すれば良いのですが、異常終了したときはエラーメッセージが無いと困ります。
なので、下のチェックの「スクリプトが異常終了した場合のみ詳細な実行情報を送信」にチェックします。
「コマンドを実行」にSSHで行ったことを入力します。
export PATH="$PATH:/volume1/@appstore/py3k/usr/local/bin"
cd ./Document/TOTO/TOTO_2021/01_Python
python3 01.py
前回書きました、コマンドをそのまま書きます。
案外、こうやって書いてみると簡単に思えますが、調べてもここまで書かれているサイトが無かったのですとね。
使い方が良く分からなかったので、トライ&エラーを何回も繰り返しました。ww
最後に時間設定による実行方法ではなく、マニュアルでの実行方法(今すぐ実行して見たい)です。
設定したスケジュールを待っていても仕方ないので、即時、実行する方法です。
自分で作成したタスクを選択して、実行ボタンを押すと即時実行しますので、結果、メールが来なければ成功したことになります。
案外実行してみると、メールにエラーメッセージの詳細が書かれているので、デバッグも分かりやすいのではないかと思います。
以上、タスクスケジューラーの設定でした。
追記 2022/08/18
この記事に関連して、DSM7バージョンでの方法を書きました。(下の記事)
記事はDockerの使い方という表題ですが、DSM7でのタスクスケジューラーの使い方も記載してあります。
というか、DSM7だとDocker使えば簡単です。
ただし、Synologyの型番に「+」の付いた機種の限り、Dockerインストール可能という落ちが付きます。
Docker無しの場合、DSM7でのPythonの使い方が良く分からないのですよね。