Raspberry Pi(ラズベリーパイ)をサーバとして使用している場合、SDメモリカードにログ等、常時書き込みを続けるとすぐにSDメモリカードの寿命が来てしまう(実績あり)ので、rsyslogとapacheのログをRAMDISKに書くようにしました。OSはrasbianです。
RAMDISKは8Mバイトとし、RAMDISKに6Mバイト以上書き込まれたらアーカイブ化してストレージ(SDメモリ)に一括して書くようにしました。 /ramdisk ・・・ RAMDISKの領域(8Mバイト) /ramdisk_bak ・・・ RAMDISKのバックアップ領域(SDメモリ)
1.起動時の設定OS起動時にRAMDISKを作成するよう、rcスクリプトにRAMDISKのマウント処理を追加する。
sudo vi /etc/rc.local
# exitの前に以下を追加 mount -t tmpfs -o size=8m /dev/shm /ramdisk #ramdisk作成 sh /home/xxxx/logstart.sh #ログ開始スクリプトを呼ぶ
2.rsyslogのログ書き込み先を/ramdiskに変更sudo vi /etc/rsyslog.conf /var を /ramdisk に一括置換
3.apacheのログ書き込み先を/ramdiskに変更sudo vi /etc/apache2/envvars #export APACHE_LOG_DIR=/var/log/apache2$SUFFIX コメントアウト export APACHE_LOG_DIR=/ramdisk/log_apache2$SUFFIX # /ramdisk配下を使用する
4.ログ開始スクリプトの作成vi /home/xxxx/logstart.sh
<logstart.shの内容> # apache用のログDIR作成 mkdir -p /ramdisk/log_apache2 # /var 配下に作成されていたDIRを作成(rsyslogが使用) mkdir -p /ramdisk/log/apt mkdir -p /ramdisk/log/ConsoleKit mkdir -p /ramdisk/log/fsck mkdir -p /ramdisk/log/news mkdir -p /ramdisk/log/ntpstats mkdir -p /ramdisk/log/samba # rsyslogが使用する mkdir -p /ramdisk/spool
# rsyslogとapacheに作成したDIRにログを書くよう指示 /etc/init.d/rsyslog rotate /etc/init.d/apache2 reload
5.ログローテートスクリプトの作成vi /home/xxxx/logrotate.sh
<logrotate.shの内容> # siz=`du -sm /ramdisk | cut -f1` #echo $siz if [ $siz -ge 6 ]; then echo "6M orver" tar zcvf /ramdisk_bak/`date +%Y%m%d%H%M`.tgz /ramdisk rm -r /ramdisk/* sh /home/xxxx/logstart.sh fi
6.ログローテートスクリプトを毎分実行するようcronに登録crontab -e
* * * * * sudo sh /home/xxxx/logrotate.sh
7.OSを再起動して動作確認●RAMDISKマウントの確認 df -h
Filesystem Size Used Avail Use% Mounted on rootfs 15G 4.5G 9.4G 33% / /dev/root 15G 4.5G 9.4G 33% / devtmpfs 215M 0 215M 0% /dev tmpfs 44M 232K 44M 1% /run tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 88M 0 88M 0% /run/shm /dev/mmcblk0p1 56M 9.7M 47M 18% /boot /run/shm 8.0M 4.9M 3.2M 61% /ramdisk ★RAMDISKが作成された
●/ramdisk配下の各ログに書かれていることを確認 tail -f /ramdisk/log_apache2/access.log など。
●RAMDISKに6Mバイト以上書き込まれたらアーカイブ化してDISK(SDメモリ)に一括して書き込んでいることの確認 ls -ltr /ramdisk_bak -rw-r--r-- 1 root root 278805 Mar 6 13:37 201503061337.tgz -rw-r--r-- 1 root root 305039 Mar 6 23:37 201503062337.tgz -rw-r--r-- 1 root root 322805 Mar 7 11:11 201503071111.tgz -rw-r--r-- 1 root root 318820 Mar 7 22:11 201503072211.tgz -rw-r--r-- 1 root root 340872 Mar 8 10:55 201503081055.tgz -rw-r--r-- 1 root root 320678 Mar 8 20:59 201503082059.tgz
この記事のURL
|