ラズパイのSDカードを長持ちさせるためのシステムログの出力設定(とクリア)とスワップの無効化
題名の通りSDカードへのアクセス頻度を減らして長持ちさせるためにやっている設定について書いてみました。
役に立ちそうなことは随時追加していこうと思います。
ログのクリア
/var/log/ 配下にあるログファイルを一括してクリアしてみます。
$sudo find /var/log/ -type f -name \* -exec cp -f /dev/null {} \;
findコマンドで/var/log/ 配下のファイル全てにに対して、cpコマンドを実行。
cpコマンドは対象ファイルの内容をnullにします。
$ cd /var/log
/var/log
$ls -l
合計 3128
-rw-r--r-- 1 root root 7248 1月 20 20:56 Xorg.0.log
-rw-r--r-- 1 root root 7340 1月 20 20:38 Xorg.0.log.old
-rw-r--r-- 1 root root 5917 5月 7 22:20 alternatives.log
drwxr-xr-x 2 root root 4096 5月 7 22:05 apt
-rw-r----- 1 root adm 76168 5月 18 20:22 auth.log
-rw-r--r-- 1 root root 4441 5月 7 22:24 boot.log
-rw-r--r-- 1 root root 0 10月 9 2018 bootstrap.log
-rw------- 1 root utmp 0 10月 9 2018 btmp
-rw-r----- 1 root adm 502115 5月 18 19:59 daemon.log
-rw-r----- 1 root adm 30937 5月 7 22:24 debug
-rw-r--r-- 1 root root 296004 5月 7 22:20 dpkg.log
-rw-r--r-- 1 root root 0 10月 9 2018 faillog
-rw-r--r-- 1 root root 2287 5月 7 22:20 fontconfig.log
-rw-r----- 1 root adm 538700 5月 7 22:24 kern.log
-rw-rw-r-- 1 root utmp 292292 5月 18 19:59 lastlog
drwx--x--x 2 root root 4096 1月 20 20:38 lightdm
-rw-r----- 1 root adm 520023 5月 18 20:22 messages
drwxr-x--- 3 root adm 4096 5月 7 20:21 samba
-rw-r----- 1 root adm 1067394 5月 18 20:22 syslog
-rw-r----- 1 root adm 12208 5月 7 22:24 user.log
-rw-rw-r-- 1 root utmp 59136 5月 18 19:59 wtmp
/var/log $sudo find /var/log/ -type f -name \* -exec cp -f /dev/null {} \;
/var/log
$ls -l
合計 16
-rw-r--r-- 1 root root 0 5月 18 20:25 Xorg.0.log
-rw-r--r-- 1 root root 0 5月 18 20:25 Xorg.0.log.old
-rw-r--r-- 1 root root 0 5月 18 20:25 alternatives.log
drwxr-xr-x 2 root root 4096 5月 7 22:05 apt
-rw-r----- 1 root adm 87 5月 18 20:25 auth.log
-rw-r--r-- 1 root root 0 5月 18 20:25 boot.log
-rw-r--r-- 1 root root 0 5月 18 20:25 bootstrap.log
-rw------- 1 root utmp 0 5月 18 20:25 btmp
-rw-r----- 1 root adm 0 5月 18 20:25 daemon.log
-rw-r----- 1 root adm 0 5月 18 20:25 debug
-rw-r--r-- 1 root root 0 5月 18 20:25 dpkg.log
-rw-r--r-- 1 root root 0 5月 18 20:25 faillog
-rw-r--r-- 1 root root 0 5月 18 20:25 fontconfig.log
-rw-r----- 1 root adm 0 5月 18 20:25 kern.log
-rw-rw-r-- 1 root utmp 0 5月 18 20:25 lastlog
drwx--x--x 2 root root 4096 1月 20 20:38 lightdm
-rw-r----- 1 root adm 0 5月 18 20:25 messages
drwxr-x--- 3 root adm 4096 5月 7 20:21 samba
-rw-r----- 1 root adm 0 5月 18 20:25 syslog
-rw-r----- 1 root adm 0 5月 18 20:25 user.log
-rw-rw-r-- 1 root utmp 0 5月 18 20:25 wtmp
/var/log $
シスログの設定の見直し
/etc/rsyslog.confを編集してログの出力設定を変更します。
daemon、lpr、mail、debug関連のところをコメントアウトして保存します。
###############
#### 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
#
# 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:*
保存したらrsyslogを再起動します。
$sudo systemctl restart rsyslog
スワップの無効化
SDカードにはスワップファイルがいるのですがそんなにメモリをバンバン使うのでなければ、スワップをオフしてもいいのでは?ということで無効化します。
$ free -h
total used free shared buff/cache available
Mem: 926Mi 330Mi 61Mi 37Mi 534Mi 490Mi
Swap: 99Mi 26Mi 73Mi
$ sudo swapoff --all
$ free -h
total used free shared buff/cache available
Mem: 926Mi 351Mi 40Mi 39Mi 533Mi 465Mi
Swap: 0B 0B 0B
$
99MBあったスワップファイルが0Bになったのでサービス停止と自動起動停止。
$sudo systemctl stop dphys-swapfile
$sudo systemctl disable dphys-swapfile
Synchronizing state of dphys-swapfile.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable dphys-swapfile
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "ja_JP.EUC-JP",
LC_ALL = "ja_JP.EUC-JP",
LANG = "ja_JP.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("ja_JP.UTF-8").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "ja_JP.EUC-JP",
LC_ALL = "ja_JP.EUC-JP",
LANG = "ja_JP.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("ja_JP.UTF-8").
Removed /etc/systemd/system/multi-user.target.wants/dphys-swapfile.service.
もとに戻すときはdsableをenableにしてstartコマンドを打ちます。
リブートして確認。
$sudo shutdown -r now
$free -h
total used free shared buff/cache available
Mem: 926Mi 170Mi 531Mi 13Mi 224Mi 677Mi
Swap: 0B 0B 0B
$
これで完了です。