今回は前回の続き。RAM上で動作させるためにスワップとテンポラリの領域設定を変更しましたが、お気づきの方もいるかと思いますが、ファイル出力されるものとして大事なものがまだ残っています。そう、ログファイル です。
今回はログファイルに関する設定を変更します。
(念のため再度書きますが、これから実施する設定でGUI環境が動作するかについては未確認なのでその点はご了承ください。)
1.ログファイルの設定変更に際し注意すること
SDカード上に出力するようになっているログファイルに関する設定を変更します。これが完了すればSDカードへの書き込みはほぼなくなるはずです。
また、この設定の後はログとして出力された情報は再起動時には消滅します。なので、必要なものに関してはバックアップを取るようにしましょう。
2.出力先設定の変更
以降の手順で logの出力先をRAMディスク上に変更し、SDカードには記録しないようにします。
(1)マウントポイント設定の変更
/etc/fstab ファイルを更新して、OS起動時に、/var/logディレクトリが RAMディスク上にマウントされるように設定します。
対象設定ファイル : /etc/fstab
<変更前>
proc /proc proc defaults 0 0 /dev/mmcblk0p1 /boot vfat defaults 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 # a swapfile is not a swap partition, so no using swapon|off from here on, use dphys-swapfile swap[on|off] for that # tmpファイルをRAMディスク上に展開する tmpfs /tmp tmpfs defaults,size=32m,noatime,mode=1777 0 0 tmpfs /var/tmp tmpfs defaults,size=16m,noatime,mode=1777 0 0 |
<変更後>
proc /proc proc defaults 0 0 /dev/mmcblk0p1 /boot vfat defaults 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 # a swapfile is not a swap partition, so no using swapon|off from here on, use dphys-swapfile swap[on|off] for that # tmpファイルをRAMディスク上に展開する tmpfs /tmp tmpfs defaults,size=32m,noatime,mode=1777 0 0 tmpfs /var/tmp tmpfs defaults,size=16m,noatime,mode=1777 0 0 # /var/logディレクトリをRAMディスク上に展開する <- 追記した tmpfs /var/log tmpfs defaults,size=32m,noatime,mode=0755 0 0 <- 追記した |
(2)変更の確認
設定を変更した後、再起動して変更が有効になっていることを確認します。
$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 rootfs 15G 2.1G 12G 15% / /dev/root 15G 2.1G 12G 15% / devtmpfs 215M 0 215M 0% /dev tmpfs 44M 224K 44M 1% /run tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 88M 0 88M 0% /run/shm /dev/mmcblk0p1 56M 9.5M 47M 17% /boot tmpfs 32M 0 32M 0% /tmp tmpfs 16M 0 16M 0% /var/tmp tmpfs 32M 96K 32M 1% /var/log |
以上の結果より、設定が有効になっていることが確認できました。
3.出力内容の変更
記録するログの設定を変更してRAMディスク容量を節約することにします。
(1)変更前の状況の確認
変更の前に、現在のログ出力状況を確認しておきましょう。
$ ls -l /var/log 合計 96 -rw-r—– 1 root adm 510 8月 6 16:44 auth.log -rw-r—– 1 root adm 867 8月 6 16:40 daemon.log -rw-r—– 1 root adm 1161 8月 6 16:40 debug -rw-r–r– 1 root adm 13354 8月 6 16:40 dmesg -rw-r—– 1 root adm 21094 8月 6 16:40 kern.log -rw-r—– 1 root adm 0 8月 6 16:40 lpr.log -rw-r—– 1 root adm 0 8月 6 16:40 mail.err -rw-r—– 1 root adm 0 8月 6 16:40 mail.info -rw-r—– 1 root adm 0 8月 6 16:40 mail.log -rw-r—– 1 root adm 0 8月 6 16:40 mail.warn -rw-r—– 1 root adm 20070 8月 6 16:40 messages drwxr-xr-x 2 root root 100 8月 6 16:40 news -rw-r—– 1 root adm 22337 8月 6 16:40 syslog -rw-r—– 1 root adm 0 8月 6 16:40 user.log |
(2)設定ファイル(rsyslog.conf)の修正(変更)
以下のように、設定ファイルを編集する。
対象設定ファイル : /etc/rsyslog.conf
: (前略) : |
###############
#### RULES ####
###############
#
# First some standard log files. Log by facility.
#
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
#daemon.* -/var/log/daemon.log <- コメントアウト
#kern.* -/var/log/kern.log <- コメントアウト
#lpr.* -/var/log/lpr.log <- コメントアウト
#mail.* -/var/log/mail.log <- コメントアウト
#user.* -/var/log/user.log <- コメントアウト
#
# Logging for the mail system. Split it up so that
# it is easy to write scripts to parse these files.
#
#mail.info -/var/log/mail.info <- コメントアウト
#mail.warn -/var/log/mail.warn <- コメントアウト
#mail.err /var/log/mail.err <- コメントアウト
#
# Logging for INN news system.
#
#news.crit /var/log/news/news.crit <- コメントアウト
#news.err /var/log/news/news.err <- コメントアウト
#news.notice -/var/log/news/news.notice <- コメントアウト
#
# Some “catch-all” log files.
#
#*.=debug;\ <- コメントアウト
# auth,authpriv.none;\ <- コメントアウト
# news.none;mail.none -/var/log/debug <- コメントアウト
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -/var/log/messages
#
# Emergencies are sent to everybody logged in.
#
*.emerg :omusrmsg:*
(3)設定ファイル(rc.local)の修正(変更)
以下のように、設定ファイルを編集する。
対象設定ファイル : /etc/rc.local
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will “exit 0” on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ “$_IP” ]; then printf “My IP address is %s\n” “$_IP” fi # 起動時ディレクトリ作成 <- 追記した mkdir -p /var/log/ConsoleKit <- 追記した mkdir -p /var/log/samba <- 追記した mkdir -p /var/log/fsck <- 追記した mkdir -p /var/log/apt <- 追記した mkdir -p /var/log/ntpstats <- 追記した chown root.ntp /var/log/ntpstats <- 追記した chown root.adm /var/log/samba <- 追記した # 起動時空ファイル作成 <- 追記した touch /var/log/lastlog <- 追記した touch /var/log/wtmp <- 追記した touch /var/log/btmp <- 追記した chown root.utmp /var/log/lastlog <- 追記した chown root.utmp /var/log/wtmp <- 追記した chown root.utmp /var/log/btmp <- 追記した exit 0 |
(4)変更の確認
再起動してから状態を確認すると…
$ ls -l /var/log 合計 76 drwxr-xr-x 2 root root 40 8月 6 17:18 ConsoleKit drwxr-xr-x 2 root root 40 8月 6 17:18 apt -rw-r—– 1 root adm 278 8月 6 17:23 auth.log -rw-r–r– 1 root utmp 0 8月 6 17:18 btmp -rw-r–r– 1 root adm 13354 8月 6 17:17 dmesg drwxr-xr-x 2 root root 40 8月 6 17:18 fsck -rw-r–r– 1 root utmp 292292 8月 6 17:23 lastlog -rw-r—– 1 root adm 20070 8月 6 17:17 messages drwxr-xr-x 2 root ntp 40 8月 6 17:18 ntpstats drwxr-xr-x 2 root adm 40 8月 6 17:18 samba -rw-r—– 1 root adm 22337 8月 6 17:18 syslog -rw-r–r– 1 root utmp 6912 8月 6 17:23 wtmp |
これより、ログファイル数とディレクトリの状況から、設定の変更ができていることを確認できました。
以上でログファイルに関する設定は終了です。