本帖最后由 牵网线的 于 2024-2-20 11:24 编辑
问题现象: linux 环境下日志文件分割(清空)后大小无法改变问题
为了保障linux服务器上的应用系统正常运行,需要将系统运行日志进行分割很多方法都是:" 添加定时任务》先复制压缩》再清空原日志文件" 的思路 压缩一般都是没问题,但是在清空原日志文件时会遇到执行清空命令后原日志文件大小仍不改变。
例如:
采用 echo "" > nohup.out
采用 cat /dev/null > nohup.out
采用 cp /dev/null nohup.out
采用 logrotate 工具等方法 将nohup方式运行重定向输出日志文件分割后
通过 ll 查看日志文件大小 日志文件大小并未变小仍是分割前的大小
通过 du -sh 查看会发现日志文件变小了
问题原因:nohup 重定向输出启动时 采用了 ">" 清空重定向的方式 而不是 ">>"追加重定向的方式
解决方案:
通过修改启动文件的nohup重定向输出方式为 追加 - nohup ./start.sh >> nohup.out 2>&1 & echo "" > nohup.out
复制代码这样之后 nohup.out的大小就会改变,从0开始增长了也达到了分割日志的目的 |