正常配置了logrotate的话,是不需要人肉去处理的。但在一些情况下,还是要手动处理下。
logrotate配置参考:
1、查看磁盘使用情况
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 2.0G 0 2.0G 0% /dev
tmpfs 396M 3.0M 393M 1% /run
/dev/vda1 40G 3.5G 34G 10% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/vdb 99G 76G 18G 81% /home
tmpfs 396M 0 396M 0% /run/user/500
可以看到/home下占用最多,下面去清理下。
2、到/home/logs/对应的project下,查看项目下所有文件占用磁盘情况
$ du -sh *
0 consumer_error.log
0 consumer_info.log
4.0K data_loader_error_2017-05-24.log.0.gz
4.0K data_loader_error_2017-05-26.log.0.gz
也可以对查询结果排序格式化显示:
du -sh * | sort -hr
3、选出超大的文件清空
$ echo > tomcat_stdout.log
如果没有清理某个目录的权限,但获取了bash权限,可以放到bash中执行:
$ sudo bash -c "echo > tomcat_stdout.log"
4、再次查看清空的文件已经很小了(有数据是因为有新的应用日志进来)
$ du -sh tomcat_stdout.log
3.6M tomcat_stdout.log
4、查看磁盘使用情况
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 2.0G 0 2.0G 0% /dev
tmpfs 396M 3.0M 393M 1% /run
/dev/vda1 40G 3.5G 34G 10% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/vdb 99G 17G 77G 19% /home
tmpfs 396M 0 396M 0% /run/user/500
发现已经清理了
对上面操作,可以写在脚本里,通过定时查询系统磁盘情况,对超过告警阈值的情况进行及时处理。