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
※本記事内容の無断転載を禁じます。

おしゃれ雑貨、ギフトの【BRUNO online】

送料無料早い人は翌朝実感肌!鬼売れ★神のコラーゲン【PURUOI】

腰痛専門接骨院に通う患者様の声から誕生した腰痛対策マットレス【ドクタータフィ】

借金問題に専門特化した債務整理!【弁護士法人イストワール法律事務所】

下り最大2Gbpsの超高速光回線【Fon光】

【A-PACHINKO】家庭で楽しめる中古パチンコ

有機認証取得豆に天然ファイバー、乳酸菌、天然オリゴ糖など配合!健康維持・美容を考えた「デイリーコーヒー」

【全マンガ1冊95円】DMMコミックレンタル

ヘアケアとカラーの褪色防止をコレ1本で!【KYOGOKUkカラーシャンプーブルーパープル】

bitcoinjs-lib、bip32、bip39を使ってビットコインアドレスを生成する
Cannot read property makeRandom of undefinedと言われた場合
web3.jsとwindow.ethereumでコントラクト関数を引数つきでコールしプロパティを取得する
JavaScriptで外部URLのファイルをダウンロードしてデータを取得する
【MetaMask】window.ethereumのeth_callで任意のコントラクト関数を呼ぶ
window.ethereum.requestに渡すdataフィールドをABIエンコードで作成する
【Solidity】Remix IDEを使用してサーバー不要のコントラクト開発&デバッグ【Ethereum】
【Windows】Googleフォトからダウンロードした動画が音声のみで映像が再生されない場合
PostgreSQLをソースコードからインストールしてsystemdのサービスとして動かす
5chブラウザJane Styleの板一覧にゲーム板等が表示されない場合
Windows版Google Driveが使用中と言われアンインストールできない場合
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Googleスプレッドシートを編集したら自動で更新日時を入れる
【Javascript】JSON配列内にある特定要素の取得法【Node.js】
Ubuntuで固定IPアドレスを使う設定をする
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
【Hackintosh】組立PCにWindowsとmacOSを同居させる場合の注意点
Google ColaboratoryのTensorFlowバージョンを変更する(1.X←→2.X)