| 场景 | 手工日志切割(不丢不重启) |
|---|---|
| 组合 | mv + kill -USR1 + 压缩归档 |
标准流程(USR1 型)
标准流程(USR1 型)
cd /var/log/app
mv app.log app.log.$(date +%F) # 1 改名(句柄仍指向旧文件)
kill -USR1 $(cat /run/app.pid) # 2 让应用重开日志文件
ls -l /proc/$(cat /run/app.pid)/fd | grep app.log # 3 确认指向新文件
gzip app.log.$(date +%F) # 4 归档压缩copytruncate 型(应用不支持信号)
copytruncate 型(应用不支持信号)
cp app.log app.log.bak && truncate -s 0 app.log
# 注意:copy 与 truncate 之间有丢小段日志的窗口生产应交给 logrotate 配 postrotate 脚本自动做;手工版用于应急与不常见应用。