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