在Linux系统中,nohup命令用于在后台运行程序,即使关闭终端或断开连接,程序也会继续运行。nohup命令会将输出重定向到一个名为nohup.out的文件中。随着时间的推移,这个文件可能会变得非常大,因此需要定期清理。
以下是一些清理nohup.out日志的方法:
查看日志文件大小:
ls -lh nohup.out
清空日志文件:
> nohup.out
或者使用truncate命令:
truncate -s 0 nohup.out
删除日志文件(如果不再需要):
rm nohup.out
你可以设置一个cron定时任务来定期清理日志文件。
编辑crontab文件:
crontab -e
添加定时任务: 例如,每天凌晨1点清理日志文件:
0 1 * * * > /path/to/nohup.out
logrotate是一个用于管理日志文件的系统工具,可以自动轮转、压缩和删除旧日志文件。
创建或编辑logrotate配置文件:
通常位于/etc/logrotate.d/目录下,例如/etc/logrotate.d/myapp。
sudo nano /etc/logrotate.d/myapp
添加配置内容:
/path/to/nohup.out {
    daily
    rotate 7
    compress
    missingok
    notifempty
    create 640 root adm
}
解释:
daily:每天轮转一次。rotate 7:保留7个轮转文件。compress:压缩旧日志文件。missingok:如果日志文件不存在,不会报错。notifempty:如果日志文件为空,不进行轮转。create 640 root adm:创建新日志文件时的权限和所有者。测试logrotate配置:
sudo logrotate -f /etc/logrotate.d/myapp
通过以上方法,你可以有效地管理和清理nohup.out日志文件,确保系统资源的合理利用。