在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,避免手动操作导致日志丢失;调整轮转策略时需确保程序能正确处理日志文件切换。