- /etc/rc.d/rc.local に下記の行追加
setterm -blank 3 -powersave on -store
echo "40 500 0 0 6000 30000 60 20 0" > /proc/sys/vm/bdflush
# 1行目は、3 分で Display を省電力にする。
# 2行目は、HDD と Memory のバッファフラッシュ間隔を1分(6000) 5分(3000)に変更(初期値は500,3000)。詳しくはドキュメントを見てちょ。他の値は最初 more /proc/sys/vm/bdflush で見た値が無難です。
- /etc/lilo.conf に下記の行追加挿入
append="acpi=off apm=on"
# ACPI での省電力は今回はパスしたので、APM モードを宣言。
- /etc/postfix/master.cf を編集(postfix を常駐利用してる場合)
pickup fifo n - n 60 1 pickup # 60秒毎(初期値)
↓ ↓ ↓ ↓
pickup fifo n - n 600 1 pickup # 600秒毎
# 値が大きいほど省電力にはいいが、メールの pickup 間隔が長くなります。
- /var/spool/cron/root を編集する
30 12 * * * /etc/backup.sh
20 19 * * 6 /etc/mirror.sh
0,30 21-23 * * 1-5 /etc/autosus.sh
0,30 20-23 * * 0,6 /etc/autodown.sh
# 1行目:データのバックアップが毎日12時30分に実行されます。2行目:ディスクパーテーションを別ディスクに同期する処理が土曜の19時20分に実行されます。
# 3行目:自動サスペンド処理が毎日21時から23時半まで30分毎に実行されます。4行目:自動電源断が土日の20時から23時半まで30分毎に実行されます。
- /etc/crontab の実行時間を変更(上記時間とかち合わないように)
# run-parts
01 * * * * root run-parts /etc/cron.hourly
45 20 * * * root run-parts /etc/cron.daily
40 19 * * 6 root run-parts /etc/cron.weekly
30 20 1 * * root run-parts /etc/cron.monthly
# 日次処理は20時45分。週次処理は土曜の19時40分。月次処理は1日の20時30分に実行されます。
- /etc/cron.hourly/hdddown 作成し実行属性を与える。755?
#!/bin/bash
hdparm -S240 /dev/hda > /dev/null
hdparm -S120 /dev/hdb > /dev/null
# HDD にアクセスが無い場合に休止命令を送る間隔を Main-HDD は20分、Sub-HDD は10分にしてます。
- /etc/autosus.sh 作成(サスペンド実行シェル)、実行属性 755?
#!/bin/bash
LOG=smb_access
REPORT=smb_report
if test -f /data/workgroup/*.ldb;
then
exit
else
cd /var/log/samba
test -f $LOG && mv $LOG $LOG.old
ls -ltr log.tanaka log.suzuki log.yamada log.kimura > $LOG
chmod 744 $LOG
cp /dev/null $REPORT
diff $LOG $LOG.old > $REPORT
chmod 744 $REPORT
if test -s $REPORT;
then
exit
else
/etc/backup.sh
/etc/rc.d/init.d/network stop
/usr/bin/apm -s
fi
fi
# データベースが MS-Access なのでオープンロックファイルの有無をチェックします。
# /var/log/samba のファイル変更全部をチェックすると、Windows PC が起動するだけでもログが書き込まれるので、特定端末のログ変更だけをチェックしてます。
# サスペンドの前に、データバックアップを実行し、ネットワークを STOP させます。
- /etc/sysconfig/apmd の下記行に"-r /etc/resume.sh"を追加記入
ADDPARAMS="-W -r /etc/resume.sh"
- /etc/resume.sh を作成(レジューム処理シェル)。実行属性付加 755?
#!/bin/bash
/etc/rc.d/init.d/network start
# ネットワークをスタートさせます。
- /etc/autodown.sh 作成(電源断実行シェル)、実行属性 755?
/etc/autosus.sh とほぼ同じで最後の数行だけ下記のように変更。
else
/etc/backup.sh
/etc/rc.d/init.d/network stop
/sbin/shutdown -h now
fi
fi
- /etc/mirror.sh を作成(パーティション同期シェル)。実行属性付加 755?
#!/bin/bash
mount -t ext3 /dev/hdb3 /mirror/
mount -t ext3 /dev/hdb2 /mirror/boot/
rsync -aux --delete / /mirror
rsync -aux --delete /boot/ /mirror/boot
umount /mirror/boot
umount /mirror
当然 /mirror と /mirror/boot は mkdir して下さいね。
- shutdown にありがちな間違い
最初シェルスクリプトで shutdown -h +1 とか記入していたら、スクリプト実行時にシングルユーザモードで止まってしまい何故だろうと検索したら、shutdown コマンドは2つあり
/sbin/shutdown root用
/usr/bin/shutdown 一般ユーザ用(シェルスクリプト・コマンド)
シェルスクリプトでパスなしの shutdown は /usr/bin/shutdown を実行し、+time が設定されてるとシングルユーザモードにしてしまうようです。
- Note PC では(検証中)
手持ちの Junk Note PC (Celeron433) では、2. /etc/lilo.conf の訂正後 apmd 常駐で起動するだけで、一般ユーザでも液晶画面の開け閉めだけでサスペンド・レジュームするようになりました。apmd に渡すパラメータをいじってサスペンドでシェルを実行させればさらにお手軽そうですね。
-
なんか、シェルスクリプトは html だと見づらいですね。html の込み入った文法を知らないからですが。
本ページのプレーンテキストもリンクしておきます。プレーンテキストは Mozilla と w3m と Opera ではちゃんと見えるけど、IE では改行が無視されます。面倒なので直しません。
なおサスペンドからの復帰はPCによってキーボードから復帰できるのと、電源ボタンを押して復帰するのとがあり、まあえええわと放置しております。((^^;;
更新記録
- ...
- ...
- 2004/5/28 crontab の時間に 24 を使用し規定外の数値と判明で訂正
- 2004/5/27 作成