随着系统的日益复杂, aliyun空间捉襟见肘,常常报系统磁盘空间超过80%, 甚是苦恼.
经常要手动去清理各类日志和备份文件,消耗大量时间和精力.
通常使用如下命令巡检:
代码语言:javascript复制find / -size 100M -exec ls -lh {} ;
查找大于100M的文件, 包含日志文件和临时文件.
如果执行命令后报如下:
请调整你的权限
该目录下Linux 系统 /var/log/journal/ 堆满了日志往期
然后baidu.com了下, 原来该目录下还存在如下不同日志
/var/log/messages 绝大多数的系统日志都记录到该文件 /var/log/secure 所有跟安全和认证授权等日志都会记录到此文件 /var/log/maillog 邮件服务的日志 /var/log/cron crond计划任务的日志 /var/log/boot.log 系统启动的相关日志
检查当前journal使用磁盘量
du -t 100M /var
或 journalctl --disk-usage
查看某个目录的文件大小并排序(单位为MB)
代码语言:javascript复制du -hm --max-depth=1 /var/ | sort -n
清空 /var/log/journal/ 的步骤
a. 用echo命令,将空字符串内容重定向到指定文件中
代码语言:javascript复制echo "" > system.journal
说明:此方法只会清空一次,一段时间后还要再次手动清空很麻烦,这里可以用以下命令让journalctl 自动维护
b. journalctl 命令自动维护文件大小
1)只保留近一周的日志
journalctl --vacuum-time=1w
如果想保留2天:journalctl --vacuum-time=2d
2)只保留500MB的日志
journalctl --vacuum-size=500M
3)直接删除 /var/log/journal/ 目录下的日志文件
rm -rf /var/log/journal/61af893a65b34e008dbf8a1038fd7e61
如果要手工删除日志文件,在删除前需要先轮转一次journal日志
代码语言:javascript复制systemctl kill --kill-who=main --signal=SIGUSR2 systemd-journald.service
要启用日志限制持久化配置,可以修改 /etc/systemd/journald.conf
代码语言:javascript复制SystemMaxUse=16M
ForwardToSyslog=no
然后重启日志service
代码语言:javascript复制systemctl restart systemd-journald.service
检查journal是否运行正常以及日志文件是否完整无损坏
代码语言:javascript复制journalctl --verify
[root@localhost log]# journalctl --verify
PASS: /var/log/journal/61af893a65b34e008dbf8a1038fd7e61/system.journal
总结:
测试是一门技术, 更是一门艺术. 也许你今天拥有的技术, 明天就会被淘汰. 同时需要我们开拓思维和眼界, 积极拥抱变化, 学习新知识, 新方法,新技能, 计算机领域讲究的是实践, 学习更要讲究方式方法. 学习和动手一定要结合, 光看不练,犹如看武功秘籍, 是永远成不了武功大侠的.
Story:
古语云:欲求其上上,而得其上;欲求其上,而得其中;欲求其中,而得其下.
说的就是起点高才能至高的道理。制定一个远大的目标,即使你达不到,只要不断地向它努力,最终肯定也会有所作为。定的目标很低,对于一点小小的成绩就心满意足,这样是干不了什么大事的。