PCの自動shutdown/wakeup 死活監視 send-mail

時間を決めてPCのシャットダウン/時間を決めてPCの電源アップ

 1) wakeup-onlanを使うので、おんなじLANの中でのみ有効。
 2) 起こされる方のPC(というか、NICの部分)
はwakeup-onlanをサポートしていること
   PCによってはBIOSの設定を手動でおこなう必要があるかも
 3) おんなじLAN内に一台起こし役のPCが必要
   省電力の組み込み機器とか、お古のnotebookとかが吉かな?



まずは、シャットダウンの方から、

シャットダウンは
それぞれのシャットダウンしたいPCにて

[root@cent5-64b-42 named]# crontab -l
0 5 * * * /root/shutdown.sh 
[root@cent5-64b-42 named]# cat /root/shutdown.sh 
#!/bin/sh
/sbin/shutdown -h now
[root@cent5-64b-42 named]# 

ってかんじで、cronで落としたい時間を指定(ここでは毎朝5AM)

つぎは起こし役のPCの方は

[root@cent5-64b-41 ~]# crontab -l
50 3 * * * /root/wakeup-42.sh
[root@cent5-64b-41 ~]# cat /root/wakeup-42.sh 
/sbin/ether-wake 18:a9:05:xx:xx:xx
ping 192.168.1.42
[root@cent5-64b-41 ~]# 

18:a9:05:xx:xx:xx は起こしたい相手のmacアドレス
コマンドは
redhat系は #ether-wake
debian系は #etherwake

ここでは、3:50AMにおきろ、おきろといっている。

約1時間起こして、その間にcron.dailyが走ってバックアップを
とったあと二度寝してもらう、って算段。

うまくいっている様子w

[root@cent5-64b-42 ~]# cat /var/log/messages | egrep "restart|shutdown" | tail -7
Jun  9 03:52:06 cent5-64b-42 syslogd 1.4.1: restart.
Jun  9 05:00:01 cent5-64b-42 shutdown[11108]: shutting down for system halt
Jun 10 03:52:06 cent5-64b-42 syslogd 1.4.1: restart.
Jun 10 05:00:02 cent5-64b-42 shutdown[11111]: shutting down for system halt
Jun 11 03:52:06 cent5-64b-42 syslogd 1.4.1: restart.
Jun 11 05:00:01 cent5-64b-42 shutdown[11108]: shutting down for system halt
Jun 11 09:36:06 cent5-64b-42 syslogd 1.4.1: restart.
[root@cent5-64b-42 ~]# 

こんなスクリプトで死活監視

[root@cent5-64b-40 cron.daily]# cat send-mail.sh 
#!/bin/sh

DAY=`date +%Y/%m/%d`
HOST=`uname -n`
MAIL=hirasawa@hirasawa.local
SUB=$HOST-----$DAY
mail -s $SUB $MAIL  << _EOF_
----------------- date-----------
`date +%Y/%m/%d`
----------------- uname -n-----------
`uname -n`
----------------- find /export -mtime -1 result-----------
`find /export -mtime -1`
------------------find /home -mtime -1 ressult  ----------
`find /home -mtime -1`
----------------- df result-----------
`df`
----------------------
_EOF_
[root@cent5-64b-40 cron.daily]#