cron設定数制限

トラブル続きの某社VPSサーバを移転して以降、さくらのレンタルサーバにお世話になっておりましたが、コントロールパネルも結構凝ったものが用意されていたので特に困ったことはありませんでしたが、一点だけ気になっていたところが、cronの設定がコントロールパネルからだと5個までしかできないという点でした。

さくらのコントロールパネル

バッチ処理が多いdtn.jp

dtnディレクトリのカテゴリHTML更新やランキングデータ更新、キーワードツール用のAPIデータ格納など、cronでバッチ処理的に動かしているものが10本以上あったので、処理を詰めこまないと日次処理ができなくなってしまいました。

処理の集約化による課題

ある程度の処理は集約するよう頑張ってはみましたが、処理が長く複雑になればなるほどコケる回数も増えてしまい、、そろそろ限界という感じになっておりました。

そこで、どうにかできないかと調べたところ、コンソール経由なら簡単に追加できるようですので、やってみら本当に簡単にできてしまったというお話です。頑張って複数処理を1バッチにまとめてきたのに結構拍子抜けでした。

SSHコンソールでの追加

やり方は簡単で、ttsshなどのコンソールで接続し、cronをコマンドで直接編集するだけでOKです。

さくらレンタルサーバーのSSH接続設定が分からなければ、さくらのマニュアルにしっかりまとめてありましたので、そちらをご参照下さい。

ttsshでSSH接続

crontab -eで編集

サーバに接続ができたら、レンタルサーバプランではroot権限がない一般ユーザにしかなれないので、crontab -eコマンドを使ってcronの編集に進みます。

% crontab -e

crontab -e コマンドを叩くと、viエディタっぽいものが起動しますので、あとは記述済のcronの設定を真似て必要な設定を追加していけばOKです。

viの操作

viの操作コマンドは結構色々ありますが、下のコマンド程度を使えば最低限の記述はできると思います。

コマンド操作内容
:qセーブせずに終了
:q!変更した行もセーブせずに終了
:wセーブするが終了しない
i現在のカーソル位置から挿入
A現在行の末尾に追加
x1文字削除

viの操作モードが分からなくなったりした時は、とにかくESCキーを連打して、:q押せばなんとかなると思います。恥ずかしながら、私もいつもこのパターンです。

必要なcronを記述し、:wで上書きをして整合性やパーミッションチェックにも問題ないとなれば、下記メッセージが出て無事cronの追加完了となります。

% crontab: installing new crontab

コントロールパネルでチェック

念のため、終了後にコントロールパネルでCRONの設定部分を見ると、6個目のcronがしっかり追加されておりました。

コントロールパネルのCRONの設定注意書きには、 「サーバ運用に支障をきたす場合は、予告無く設定解除、機能制限することがあります」とあるので、本数をメチャクチャ多くしたりすると削除されるかもしれないですが、数本増やす程度であれば大目に見てもらえているようです。

これでバッチ処理の分散化ができそうで良かったです。

おわりに

ところで、cronに全く関係ないですが、今日から消費税10%。長々続いた増税対応も皆さん終了していると思いますが、明日から本当にどうなるのやらですね。