admin管理员组

文章数量:1531259

N1刷入Armbian后保护emmc – 禁止varlog日志

因为emmc存储是一种flash存储技术,其写入寿命非常有限,所以系统运行中应尽量避免数据写入。

如果我们没有装什么特殊程序的话,通常来说数据的主要写入就是/var/log目录的日志了,一天几十MB还是有的。

armbian现状

armbian其实已经考虑了这个问题,因为armbian就是给arm架构订制的debian发行版嘛,所以它默认是创建了一个内存盘(zram文件系统)挂载到了/var/log目录:

root@aml:/var/log# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            469M     0  469M   0% /dev
tmpfs           184M   22M  163M  12% /run
/dev/mmcblk1p2  6.4G  2.1G  4.3G  33% /
tmpfs           920M     0  920M   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           920M     0  920M   0% /sys/fs/cgroup
tmpfs           920M  8.0K  920M   1% /tmp
/dev/mmcblk1p1  122M   58M   64M  48% /boot
/dev/zram0       49M   15M   31M  32% /var/log
tmpfs           184M     0  184M   0% /run/user/0

所以频繁的日志写入并不会直接伤害到emmc。

但是这块zram盘只有49MB,基本上1~2天就会写满,所以armbian是如何处理的呢?

经过我的研究,发现系统做了1个systemd启动任务+2个cron任务用来解决这个问题,下面简单说一下原理。

详细分析

当然是定期删除日志了,难不成还有魔法嘛。

root@aml:/var/log# cat /etc/cron.d/armbian-truncate-logs
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 
*/15 * * * * root /usr/lib/armbian/armbian-truncate-logs

每15分钟就会执行一次truncate日志,这个脚本内容如下:

treshold=75 # %
 
[ -f /etc/default/armbian-ramlog ] && . /etc/default/armbian-ramlog
 
[ "$ENABLED</

本文标签: 日志ArmbianvarlogEMMC