Linuxホームサーバー編
No.13 自動で止めるにはどうするの?3
(cronを使ってみよう)

2005,4/3 完成


シェルスクリプトも完成し、スクリプトさえ走らせれば自動でシャットダウンできるとことまで
来たのですがもう一つ大きな問題がありました。
 「スクリプトを定期的に自動で走らせるにはどうすればいいんだ??」
そう、そうなんです。
前回作ったonoff_checkというスクリプトを自動で走らせる方法がわからなかったのです。

スクリプトを無限ループにしてデーモン(Windowsだとサービス)に登録する、という方法も
あるかも知れませんが常にぐるぐるpingしているというのも無駄な気がします。
こういうときは「困ったときのgoogleだ!」とばかりに、”LINUX 自動実行”、”LINUX 定期的に実行"
などのキーワードで検索してみると"cron"というキーワードが浮上してきました。

このcronというやつ、最近のLinuxでは大抵標準装備されているデーモンだそうで
なんとありがたいことに分単位、時間単位、日単位、曜日単位で任意のスクリプトを
定期的に自動実行してくれる
と言うではないですか。
まさに今回の目的にぴったりのデーモンです。

早速、
 LINUX TIPS       :プログラムを定期的に実行するには
 日経LINUX       :定期的にプログラムを動かす
 Red Hat Linux 7.2   :cronタスクの設定
 NEC Knowledg Base :cronの設定ガイド
などを読みつつトライしてみました。

1)crond(デーモン)動いてる?
まず、crondが動いているか確認します。
普通は、”アプリケーション→システムツール→システムモニタ”で確認するのですが、
今回はWindows上で動いているTERA TARM PROから、動いているプロセスを
全部表示する"ps alx"を入力してみると、、



おぉ、ちゃんとcrond(クーロンデーモン)が動いています。
第一段階クリア!


2)cronの設定は?
cronで自動実行させるための設定ファイルは、
 /etc/crontab
にあるということなので、いつものようにエディターで開いてみました。
(アプリケーション→アクセサリ→GNOMEテキストエディタ)

■ crontabのデフォルト値

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly


これにonoff_checkを10分おきに実行するように設定を加えます。

■ 修正したcrontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
11 * * * * root run-parts /etc/cron.hourly
21 * * * * root run-parts /etc/cron.hourly
31 * * * * root run-parts /etc/cron.hourly
41 * * * * root run-parts /etc/cron.hourly
51 * * * * root run-parts /etc/cron.hourly

02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly


黒太字部分が追加・修正した部分です。
これで毎時 01分、11分、21分、31分、41分、51分(=10分おき)に
 ”/etc/cron.hourly”に入っているスクリプトを実行して
くれるはずです。

※ Vine上のエディターでは下の画面のように見えます。


これで、crontabの設定は終わったので、次はonoff_checkスクリプトを”/etc/cron.hourly”に
放り込んであげます。(下の画像)



一応念のためにアクセス権の”実行”にチェックが入っている事を確認します。


この状態でVineパソコンを再起動してしばらくおいておくと、、、、

 クライントPCが1台でも動いているとき  →VinePCも動きっぱなし
 クライアントPCがすべて止まっているとき →10分以内にVineも自動シャットダウン!


やった!期待通りの動きをしてくれました! (^_^)
Vineを初めて半年以上経ちましたがやっとここまでたどり着きました。
この状態でどれくらい電気代がかかるかしばらく使ってみる事にしましょう。


←戻る 進む→
ホームに戻る