zram相关的几个定时任务,服务的位置和作用

定时任务都是系统级的,所以用用户级命令corntab -l是看不到的

1./etc/cron.d/目录下的armbian-truncate-logs

1 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
2 
3 */15 * * * * root /usr/lib/armbian/armbian-truncate-logs
4 @reboot root /usr/lib/armbian/armbian-truncate-logs

作用:每15分钟执行 截断脚本

截断脚本作用:空间占用超75%,进行旧日志删除和截断,但还会先持久化到emmc即/var/log.hdd,即下面这行

1 /usr/lib/armbian/armbian-ramlog write >/dev/null 2>&1

觉得太频繁可以注释掉这行

可以看出又调用了另一个脚本armbian-ramlog里的方法使用参数wirte,经查看实际调用的是syncToDisk ()方法,主要是这一段

 1 if [ "$USE_RSYNC" = true ]; then
 2         ${NoCache} rsync -aXWv \
 3             --exclude "lost+found" --exclude armbian-ramlog.log \
 4             --exclude 'journal*' --one-file-system \
 5             --links \
 6             ${XTRA_RSYNC_TO[@]+"${XTRA_RSYNC_TO[@]}"} \
 7             $RAM_LOG/ $HDD_LOG/ 2>&1 | $LOG_OUTPUT
 8     else
 9         rm -f $RAM_LOG/journal # linked journal cannot copied onto itself, it will be re-created below
10         ${NoCache} cp -rfup $RAM_LOG -T $HDD_LOG 2>&1 | $LOG_OUTPUT
11     fi

--exclude排除了几项,特别是armbian-ramlog.log,防止出现循环

默认用rsync,可设置不用,则使用更轻量的cp命令

 2./etc/cron.daily/ 目录下armbian-ram-logging

1 #!/bin/sh
2 # Only run on systems where logrotate is a cron job
3 systemctl is-active --quiet logrotate.timer && exit 0
4 /usr/lib/armbian/armbian-ramlog write >/dev/null 2>&1

每天同步内存到emmc,也是调用armbian-ramlog的syncToDisk ()方法

这个可以保留

3.系统服务

 /lib/systemd/system/armbian-ramlog.service,它开机会创建zram盘,然后从emmc的/var/log.hdd中load数据到zram的/var/log路径下,完成开机初始化。

posted @ 2025-11-08 17:29  dirgo  阅读(4)  评论(0)    收藏  举报