さくらのVPS cron で 自動 再起動 の巻

現在、このブログは「さくらのVPS 2GB SSDプラン」で運用しています!それ以前は、自宅サーバーのMac mini G4君で運用していましたが、そのスペックから1週間に1回ほど再起動させていたのですが、OSがMac OS X Serverだったので

GUIからスケジュール管理で予約リブートの設定が出来て大変便利でした…

今回、さくらのVPS(CentOS6)にて cronコマンドを使って自動再起動にチャレンジしてみましたので、その備忘録です。

さくらのVPS CentOS編

sakura_vps

cronとは…
決められた時刻にコマンドを定期的に実行させるためのデーモンプロセスです。cronではコマンドだけにとどまらず、シェルスクリプトや、PerlやPHPなどのインタープリタ言語で書かれたプログラムも動作させることができます。

という事なのですが…その前に

再起動ってどうやれば良いの?

状態だったので、まずはコマンドラインで再起動をやってみましょう!(笑)

CentOS コマンドラインから再起動

まずはターミナルからsshでVPS上のCentOSさんにアクセス!root権限からでないと再起動関係のコマンドが使用できませんので、あしからず…

shutdownコマンド

その名の通りOSをシャットダウン(電源を切る状態に)します!オプションで色々指定できますが、その中に「再起動」がありますよ、っと…

オプション解説

こんな感じで

再起動は「-r」オプションと「now」オプションを組み合わせて

# shutdown -r now 直ちに再起動!これでOK

コマンド入力後、シャットダウンしますので当たり前ですが一度コマンドライン(ターミナル)はCentOSさんからログアウトします….

そろそろ起動したかな?って見計らって再度sshでログインして下さいw

間違って# shutdown -h now 「r」と「h」を勘違いしてしまうと再起動ではなくシャットダウンしてしまいます!コマンドラインはログアウトし以後立ち上がりません(笑)さくらのVPSの場合、WEBのコントロールパネルからVPSを起動しなおさないといけません…もちろん経験済みです(笑)

# shutdown -h 0:0 これは0時にシャットダウンする!です…

予約みたいな感じですかね?再起動の度に毎回、時間指定で shutdown -r 0:0 コマンドを打っても良いですが(良いわけがない)毎回決まった時間に自動で実行できたら便利ですよね?

はい、そこで「cron」さんの登場です(笑)

ちなみに

rebootコマンド

こんなコマンドもあって意味は「システムをすぐに再起動する」です。

shutdown -r -q now と同じ意味になります…

と、基本コマンドの説明を確認したところで

さっそく「cron」さんの設定です!

CentOS で cron を 設定する流れ

3:on なので自動起動が設定されてる事を確認しました!

これで「cron」さんが起動していて、なおかつ再起動後も「cron」さんが自動で起動する事が確認できましたね?それでは、次に実際に「cron」さんを使用するわけですが…

基本は /var/spool/内の cronディレクトリの中に「cron」さんにやってもらいたい事を記述したファイルを作成する事によって「cron」さんを使用します…

ここでは crontabコマンドを使用して直接ファイルを作成してみます…

crontabコマンド

オプション解説

オプション「-r」は、cronさんの設定を速攻で全部消しちゃうらしいので

危険です!注意です!(爆)

何度も書きますが…「-r」 オプションは、現在の crontab の設定をコマンドを打った瞬間に削除します = 何も確認されずに削除されるので

使用には十分に注意してください!

「e」と「r」はキーボード上で隣あわせなので、間違って押してしまって編集しようとして全部削除してしまったという悲惨な事件が各地で発生している模様です…

(上記の理由で crontab -eは使用しない!という極論まであるらしいのです)

そんな事態に陥らないようにするための方法もあるらしいですが、そのうち勉強してみます…今は厳重注意でcrontabを使用中です(笑)

ちなみに

-i オプション

-iオプションというのがあって、これを付けておくと削除する前に「ホントに消すの?」って聞いてくれます…

#crontab -ir
crontab: really delete root’s crontab?

こんな感じで、この後に本当に削除するなら「y」「yes」しないなら「n」「no」と打込むまで一時処理を中断してくれますが…

「-i」を付けるの忘れたら意味がありませんね…orz

それでは、重々注意(笑)しながら crontabコマンドを使用してみます…エディター(vi?)が立ち上がりますので既述後に保存して終了です!

例では「-u」省略、 root で crontab を実行したので /var/spool/cron ディレクトリに root というファイルが上記の内容で作成されています…

ちなみに「毎日AM4:00に再起動してね」って内容です!

分 時 日 月 曜日 コマンド の順番で記述する様ですよ…

ちなみに曜日は0-7 (0または7は日曜日)で表記します!
0=日、1=月、2=火、3=水、4=木、5=金、6=土、7=日 です。

ここで復習です…

記述後は「cron」さんを再起動(service crond restart)して

準備OKです!

こんな感じで今回、CentOSさんを毎日am5:45に自動で再起動する設定をしてみました!今の所、問題なく毎日再起動してくれています!

cron 履歴の確認 ログファイル

再起動の履歴というか「cron」さんの実行履歴は /var/log/ にある cronに記載されていますのでlogを確認してみましょう!

「cron」さんが定時で何をやっているのか?わかります!

キチンと AM5:45 に root で shutdown -r now が実行されていますね!? cronさんでは他に時間指定の書式が色々ある様ですので

興味のある方はWEBで検索してみて下さいw

スポンサーリンク


Follow me!

管理人が選んだオススメ記事

コメントを残す

メールアドレスが公開されることはありません。