2010年10月07日の日記です


自動処理  2010-10-07 17:01:17  コンピュータ

メイン使用している Windows XP の「メンテナンス」を自動化した。


…いや、いままでも自動化はしていたんだ。

起動中に、時間が来るとバックアップを開始したり、デフラグを開始したりしていた。


でも、ハードディスクガリガリ動かすと遅くなるからね。

起動中、ということは、大抵は僕の作業中でもあるわけだ。


実質上、Windows は「端末」であり、自宅内サーバー上のファイルをいじる形でプログラムを作成しているので、それほど害は無いと考えていたのだが、それでも遅いことは遅い。


そこで、深夜に作業をするようにした。

…しようとおもった。そしたら、これが大変。




まず、深夜に作業するには、深夜に自動で電源が入らなくてはならない。

僕が使用しているのは、もう数年前の VAIO だが、自動電源オンの機能はある。あるはずだ。だって、テレビの予約録画ができるのだもの。


…でも、この機能にアクセスすることができない。

BIOS 設定では、自動起動時間を設定できない。

おそらく、録画のために「SONY 純正のソフト」からのみ、次回の起動時間を設定できるのだろう。


#複数予約があっても「次回」の起動設定さえできれば、そこで新たな設定を行えるので、設定は1つでよい。



仕方が無いので、Wake On Lan を使うことにした。

幸い、低消費電力のサーバーを 24時間稼動しているので、cron で起動することにする。


BIOS の設定で WOL を Enable にし、Windows のシステムのプロパティ>ハードウェア>デバイスマネージャーからも、ネットーワークアダプタの設定を行う。


BIOS 設定だけでは、WOL は可能だが「どのような条件で」可能にするかを設定していないため、これらは OS 上から行うのだ。


#詳細な仕組みは知らないのだが、BIOS が設定するのは「電源 OFF 時にネットワークカードを活かしておくかどうか」だけで、詳細な設定は OS 側で指示するのだろう。

 一度指示すれば、電源を落としても通電されるので、指示が生きている、という仕組み。


#ここでの「条件」は、マジックパケットである。でないと、ping が来ても起動してしまう。





つづいて、サーバー側の設定。僕は CentOS を使用している。

/sbin/ether-wake というツールがあるので、これを使う。

(無い場合は yum install net-tools)



使用方法は、相手の MAC アドレスを入れるだけ。


#MAC アドレスは、Windows 側で調べておく。

 コマンドプロンプトで ip-config /all すればでてくる。



Windows を Sleep して、1回実験。

…よし、ちゃんと起動できた。

これで、目的の半分は達成。


cron で、深夜 2 時に起動させるようにしておく。




Windows 側の設定。

先に書いたが、すでに MyDefrag でデフラグを、Paragon Backup でバックアップを行う設定をしてある。


MyDefrag は、Windows のシステムツールにある「タスク」を使用して、定期実行するようにしてある。

これを、深夜2時5分に開始するように変更する。

(5分からにしてあるのは、起動時間を考慮してのこと)


毎週日曜日に実行するようにした。

一番、使っている可能性が低い日なので。



Paragon Backup のほうは、ソフト内から設定変更を行う。

(「タスク」にも登録されているが、これはソフトが設定したもの。ここを変更しても、上書きされてしまう)


スケジュールの「プロパティ」から、時間などをずらすだけ。

頻繁に更新する C: は、火曜日と金曜日に、D: は土曜日にバックアップすることにした。



先ほど書いた crontab をさらに書き換え、火曜日と、金~日だけ実行するようにする。



さて…。

作業終了したら、コンピューターの電源を切ってほしい。


実のところ、この情報を探すのに一番手間取った。

みんな、同じことで悩んでいるらしく、「やり方知りませんか?」という質問ばかり見つかり、答えが見つからない。


なので、ここに結論を書いておこう。


Paragon Backup のほうは簡単。

スクリプトを作成する Wizard のなかで、終了したら ShutDown する、というチェックがあるので入れればよい。

今回、僕はすでにスクリプトを組んでいたので、このスクリプトに手を加えた。


EXIT(value(v_ExitCode))


という行の上に


shutdown


と書けばよい。


これでシャットダウンしてくれる。スリープや休止はしてくれない。

ちょっと不便だけど、週に何回か再起動するのも悪くないだろう。


MyDefrag のほうは、Script フォルダ内にある、Settings.MyD を編集する。


WhenFinished(~)


という行がある。~のところは、デフォルトでは wait になっているはずだ。

wait を exit に変えると、終了後は「実行結果」のウィンドウを出して停止せずに、終了してくれる、というTips は広く知られていて、書き換えている人も多い。


ここを Shutdown にすると、シャットダウンしてくれる。

Sleep ならスリープしてくれるし、Hibernate なら休止する。




というわけで、これで完成。

深夜に時間のかかる面倒な作業を勝手に行って、終わったら即、電源を落としてくれる、はず。

(設定したばかりなので、まだ試験されていない)


翌日追記


よく考えると、上の実行順序はまずかった。


僕の場合、土日はPCを使わないことが多い。

なのに、土曜日にバックアップしてシャットダウン、日曜日にデフラグする設定にしている。


シャットダウンからは、 WOL で起動できない。WOL するなら、スリープか休止でないと。


なので、土日の実行順を逆にすることにした。

土曜日にデフラグして休止、日曜日にバックアップしてシャットダウン。


月曜日に手動で再起動かければ、火曜日のバックアップも問題なし。

(月曜休みの三連休の場合はどうするか?

 もう少し練りこんでもよいが、金曜にはバックアップされるので問題ないかな。)




同じテーマの日記(最近の一覧)

コンピュータ

別年同日の日記

04年 レゴデュプロ

05年 法律の問題:隣家との境界

09年 血筋

11年 PHP でデーモンを作る。

13年 バーコード特許成立の日(1952)

14年 バーコード特許成立の日(1952)

16年 風邪ひき


申し訳ありませんが、現在意見投稿をできない状態にしています


戻る
トップページへ

-- share --

0000

-- follow --




- Reverse Link -