アプリケーション開発ポータルサイト
ServerNote.NET
ServerNote.NET厳選キャンペーン・クーポンはこちら!
カテゴリー【CORESERVERDebian
レンタルサーバーCORESERVERでCRONを定期実行する
POSTED BY
2021-10-01

安価なレンタルサーバーCORESERVERはSSHでLinuxの仮想マシンにログインできるのでかなり自由に色々できる。

CRONも使えるので、定期的に自分のスクリプトを実行させることもできる。

しかしながら、コンソールで自分でcrontabコマンドで登録してもすぐに勝手に消失してしまう(※当方環境)ので注意が必要。

登録するには、CORESERVERのコントロールパネルから行う。

https://cp.coreserver.jp/site/cron/

「サイト設定→CRONジョブ」と、ちゃんとここから登録せよ、とあるので、

実行させたいスクリプトファイルのパス、スケジュールを設定し新規作成する。

例)毎日22時0分にホームディレクトリのcron_script.shを実行

/virtual/coreuser9999/cron_script.sh
分:0
時:22
日:*
月:*
曜日:*

CRONの書式についてはLinux Manpageに説明あり。

https://linuxjm.osdn.jp/html/cron/man5/crontab.5.html

「登録」して少し待てば、コンソール上のcrontabコマンドでも確認できる。あくまで確認のみで、crontabコマンドで直接編集してはいけない。必ずコントロールパネル上で行うこと

その他注意点

・スクリプトファイルには実行権限をつけておくこと。

chmod a+x cron_script.sh

・スクリプトファイル先頭は#!/usr/bin/bashなどと宣言し、作業したいディレクトリに明示的にcdすること。

#!/usr/bin/bash

cd /virtual/coreuser9999

・スクリプトファイル内で、環境変数LANGを明示的に宣言しておくこと。

export LANG=ja_JP.UTF-8

これをしておかないと、LANGが何故かASCIIとされてしまうので、Pythonスクリプト実行時に以下のようなエラーが出ることがある。

UnicodeEncodeError: 'ascii' codec can't encode character

・標準出力・標準エラー出力にprintしてしまうとCRONがメールを発出してしまうのでリダイレクトすること。

python3.6 analytics-report.py > report.json 2> error.log

上記例では、Google Analytics APIにPythonで接続し結果JSONをreport.jsonに、エラーをerror.logファイルにそれぞれ出力して抑制している。

・まとめると以下のようなスクリプトになるかと。

/virtual/coreuser9999/cron_script.sh

#!/usr/bin/bash

cd /virtual/coreuser9999

export LANG=ja_JP.UTF-8

python3.6 analytics-report.py > rank.html 2> error.log
B型・C型肝炎検査なら【銀座血液検査ラボ】
病院で検査をすることに躊躇している人 病院に行く時間を取れない人 病院で長時間拘束されるのが嫌な人 病院...READ MORE
スマートフォンモニター継続で人気のギフト券がもらえる
ニールセンは世界100カ国以上で調査を行う消費者分析のリーディングカンパニーです。 スマートフォンモニタ...READ MORE
テレビや雑誌で知名度上昇中!北海道のカニ専門店【マルゲン後藤水産】
北海道から新物で「うまい」を迅速発送!【マルゲン後藤水産】販売促進プログラムになります。 かに通販専...READ MORE
※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【webmaster/管理人】
自営業プログラマー
ご連絡は以下アドレスまで★

☆ServerNote.NETショッピング↓
ShoppingNote
☆お仲間ブログ↓
一人社長の不動産業務日誌
【キーワード検索】