2024-09-30

安価なレンタルサーバー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
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
CUDA13環境下でGPU使用版のllama.cppを導入しC++ライブラリを使う
CUDA13環境下でGPU使用版のllama-cpp-pythonを導入する
CUDA13環境下でGPU使用版のPyTorchを導入する
LetsEncrypt/certbotの証明書自動更新がエラーになる場合
Wav2Lipのオープンソース版を改造して外部から呼べるAPI化する
Wav2Lipのオープンソース版で静止画の口元のみを動かして喋らせる
【iOS】アプリアイコン・ロゴ画像の作成・設定方法
オープンソースリップシンクエンジンSadTalkerをAPI化してアプリから呼ぶ【2】
オープンソースリップシンクエンジンSadTalkerをAPI化してアプリから呼ぶ【1】
CUDA13環境下でGPU使用版のPyTorchを導入する
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
LinuxからWindowsの共有フォルダをマウントする
【PHP】Mail/mimeDecodeを使ってメールの中身を解析(準備編)
PHPでメールの中身をフルに分解して出力する(日本語&添付ファイル対応)
VirtualBoxの仮想マシンをWindows起動時に自動起動し終了時に自動サスペンドする
【ウマ娘】デイリーレースに雨の状態で出走するには
Googleスプレッドシートを編集したら自動で更新日時を入れる