アプリケーション開発ポータルサイト
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
全国約57万戸管理!家具家電付きの単身者向け賃貸【レオパレス21】
・仲介手数料\0 ・ダブル割(前家賃\0+礼金\0) ・家具家電付き ・入居当日から利用可能なWi-Fi環境 ・ホー...READ MORE
最短当日納品!安い速いキレイ!三拍子揃った激安特急印刷プリントライダー
◆プリントライダーとは◆ プリントライダーは、特急印刷を最も得意としており、 当日発送や東京都内は当日...READ MORE
美容意識や健康意識の高い名著名人やプロの料理人にも多くご愛用されている 整水器シェアNO.1『日本トリム』
整水器の国内シェアNO.1を誇る日本トリムの「電解水素水整水器」は、 「胃腸症状の改善効果」が認められた管...READ MORE
※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【webmaster/管理人】
自営業プログラマー
ご連絡は以下アドレスまで★

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