这个问题一直都没有注意,一直都任务是正常的日志,即使很早之前已经发现了 journald 占用过多磁盘空间,针对 journald 这个问题还做了限制日志容量为 500MB journalctl --vacuum-size=500M 。今天发现 PVE 这个规律性每分钟产生的日志,难道不是占据了所有日志容量的大头吗?
每分钟生成三条日志:
Apr 12 19:19:00 fzpve systemd[1]: Starting Proxmox VE replication runner... Apr 12 19:19:00 fzpve systemd[1]: pvesr.service: Succeeded. Apr 12 19:19:00 fzpve systemd[1]: Finished Proxmox VE replication runner. Apr 12 19:20:00 fzpve systemd[1]: Starting Proxmox VE replication runner... Apr 12 19:20:00 fzpve systemd[1]: pvesr.service: Succeeded. Apr 12 19:20:00 fzpve systemd[1]: Finished Proxmox VE replication runner. Apr 12 19:21:00 fzpve systemd[1]: Starting Proxmox VE replication runner... Apr 12 19:21:00 fzpve systemd[1]: pvesr.service: Succeeded. Apr 12 19:21:00 fzpve systemd[1]: Finished Proxmox VE replication runner. Apr 12 19:22:00 fzpve systemd[1]: Starting Proxmox VE replication runner... Apr 12 19:22:00 fzpve systemd[1]: pvesr.service: Succeeded. Apr 12 19:22:00 fzpve systemd[1]: Finished Proxmox VE replication runner.
这垃圾日志貌似没有什么用,也太多,太占用资源了吧?并且把许多可能有用的日志给淹没了,怪不得 journald 日志容量那么大,难道罪魁祸首就是这每分钟产生三条垃圾日志造成的?
ls -lh /var/log/journal/c51***b72c/ total 505M -rw-r-----+ 1 root systemd-journal 64M Feb 24 05:33 system@00***71-c4***9d.journal~ -rw-r-----+ 1 root systemd-journal 8.0M Feb 24 06:09 system@00***5cc-27***90.journal~ -rw-r-----+ 1 root systemd-journal 128M Mar 16 16:20 system@b97***f-00**01-00**cb.journal -rw-r-----+ 1 root systemd-journal 112M Apr 4 22:36 system@b97***f-00**da-00**47.journal -rw-r-----+ 1 root systemd-journal 128M Feb 14 13:54 system@de***9c-00**25-00**ef.journal -rw-r-----+ 1 root systemd-journal 48M Apr 13 01:46 system.journal -rw-r-----+ 1 root systemd-journal 8.0M Feb 14 13:54 user-1000@070**e-00**3-00**8.journal -rw-r-----+ 1 root systemd-journal 8.0M Mar 16 16:20 user-1000@c68**5-00**a-00**1.journal
一顿操作猛如虎之后发现这垃圾日志的是 pvesr.timer 与 pvesr.service 这两个家伙弄的。
find / -name "pvesr*" /var/lib/systemd/deb-systemd-helper-enabled/pvesr.timer.dsh-also /var/lib/systemd/deb-systemd-helper-enabled/timers.target.wants/pvesr.timer find: ‘/var/lib/lxcfs/cgroup’: Input/output error /etc/systemd/system/pvesr.timer /etc/systemd/system/timers.target.wants/pvesr.timer /usr/lib/systemd/system/pvesr.timer /usr/lib/systemd/system/pvesr.service /usr/share/man/man1/pvesr.1.gz /usr/share/perl5/PVE/CLI/pvesr.pm /usr/share/bash-completion/completions/pvesr /usr/share/pve-docs/pvesr-plain.html /usr/share/pve-docs/pvesr.1.html /usr/bin/pvesr /run/lock/pvesr.lck
看看 pvesr.timer 与 pvesr.service 这两个家伙
cat /etc/systemd/system/pvesr.timer [Unit] Description=Proxmox VE replication runner [Timer] AccuracySec=1 RemainAfterElapse=no [Timer] OnCalendar=minutely [Install] WantedBy=timers.target cat /usr/lib/systemd/system/pvesr.service [Unit] Description=Proxmox VE replication runner ConditionPathExists=/usr/bin/pvesr After=pve-cluster.service [Service] Type=oneshot ExecStart=/usr/bin/pvesr run --mail 1
对于我这淘汰硬件玩 PVE 就用不上那么高级的存储复制(Storage Replication)功能,且还要多节点才能用的功能,我这普通的家庭使用严重不符合这些高级条件,但即使是使用这个功能,也不用每分钟都弄那么多日志吧!
所以必需修改 pvesr.timer 这个日志分分钟产生实在是太频繁了,改为每天!
# 使用 systemctl edit --full 修改 pvesr.timer # 貌似不用 systemctl daemon-reload 就能直接生效 systemctl edit --full pvesr.timer # 由原来的 minutely 修改为 daily [Timer] OnCalendar=daily
世界终于又清静了许多…

