Open
Description
一、首先将var/log等目录导入内存盘
参考此前文章 的第三条 树莓派安装后常用设置及优化
二、删除zram的swap
1.查看现有的swap,使用命令
cat /proc/swaps
或者swapon -s
2.然后禁用当前swapswapoff /dev/zram1
3.禁用zram服务,修改文件/etc/default/armbian-zram-config
,将第一行的启用ENABLED=true
改为ENABLED=false
4.禁用zram的/var/log,修改/etc/default/armbian-ramlog
,将第一行的启用ENABLED=true
改为ENABLED=false
5.禁用定时截断任务/etc/cron.d/armbian-truncate-logs
,定时任务前加#
注释
6.禁用另一个任务,修改文件/etc/cron.daily/armbian-ram-logging
如下,同样是加井号注释
/bin/sh
# /usr/lib/armbian/armbian-ramlog write >/dev/null 2>&1
重启即可,/var/log.hdd/为空了
三、方法二注释
来自 https://www.jianshu.com/p/02ea2504516a
打开/usr/lib/armbian/armbian-ramlog脚本
syncToDisk () {
isSafe
echo -e "\n\n$(date): Syncing logs from $LOG_TYPE to storage\n" | $LOG_OUTPUT
if [ "$USE_RSYNC" = true ]; then
${NoCache} rsync -aXWv --delete --exclude armbian-ramlog.log --links $RAM_LOG $HDD_LOG 2>&1 | $LOG_OUTPUT
else
${NoCache} cp -rfup $RAM_LOG -T $HDD_LOG 2>&1 | $LOG_OUTPUT
fi
sync
}
只需要在函数头部返回即可避免rsync:
syncToDisk () {
# no sync to protect emmc
return 0
isSafe
echo -e "\n\n$(date): Syncing logs from $LOG_TYPE to storage\n" | $LOG_OUTPUT
if [ "$USE_RSYNC" = true ]; then
${NoCache} rsync -aXWv --delete --exclude armbian-ramlog.log --links $RAM_LOG $HDD_LOG 2>&1 | $LOG_OUTPUT
else
${NoCache} cp -rfup $RAM_LOG -T $HDD_LOG 2>&1 | $LOG_OUTPUT
fi
sync
}
可以再观察一下/var/log与/var/log.hdd,会发现/var/log.hdd已经不再有后续数据更新,而/var/log仍旧会自动在75使用率的时候进行日志截断。
最后补充,armbian做了一个systemd服务:/lib/systemd/system/armbian-ramlog.service,它开机会创建zram盘,然后从emmc的/var/log.hdd中load数据到zram的/var/log路径下,完成开机初始化。