在Debian系统中,可通过以下方法解决nohup日志文件过大的问题:
使用logrotate工具自动轮转
sudo apt-get install logrotate
/etc/logrotate.d/nohup
,添加以下内容:/path/to/nohup.out {
daily # 每天轮转
rotate 7 # 保留7天日志
compress # 压缩旧日志
missingok # 忽略不存在的日志
notifempty # 非空才轮转
create 0640 root adm # 新日志权限
}
sudo logrotate -f /etc/logrotate.d/nohup
。手动切分日志(无需工具)
log_split.sh
,内容如下:#!/bin/bash
LOG_FILE="/path/to/nohup.out"
if [ -f "$LOG_FILE" ]; then
mv "$LOG_FILE" "/path/to/nohup_$(date +%Y%m%d).log"
touch "$LOG_FILE" # 重新创建空日志
find /path/to -name 'nohup_*.log' -mtime +7 -exec rm {} \; # 删除7天前日志
fi
crontab -e
,添加0 3 * * * /path/to/log_split.sh
。直接清空日志(临时方案)
truncate -s 0 nohup.out
或 echo "" > nohup.out
。注意:优先使用logrotate,避免手动操作导致日志丢失;调整轮转策略时需确保程序能正确处理日志文件切换。