在Ubuntu中,nohup
命令用于在后台运行程序,即使关闭终端或断开连接,程序也会继续运行
使用logrotate
工具:
logrotate
是一个用于管理日志文件的系统工具,它可以自动轮转、压缩、删除和邮件通知日志文件。首先确保已经安装了logrotate
:
sudo apt-get install logrotate
然后,创建一个新的logrotate
配置文件,例如/etc/logrotate.d/myapp
,并添加以下内容:
/path/to/your/logfile.log {
daily
rotate 7
compress
missingok
notifempty
create 640 root adm
}
这里的配置表示每天轮转日志文件,保留最近7天的日志,压缩旧日志,如果日志文件丢失则不报错,如果日志文件为空则不轮转,创建新的日志文件时使用640权限,属主为root,属组为adm。
最后,确保logrotate
定时任务已启用。编辑/etc/cron.daily/logrotate
文件,确保其中包含以下内容:
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
然后给予执行权限:
sudo chmod +x /etc/cron.daily/logrotate
在程序中使用日志库:
如果你的程序是使用编程语言编写的,可以使用相应的日志库来实现日志轮转。例如,对于Python,可以使用logging.handlers.RotatingFileHandler
或logging.handlers.TimedRotatingFileHandler
类;对于Node.js,可以使用winston
或bunyan
等第三方日志库。
这些库通常允许你设置日志文件的最大大小、备份数量、轮转时间间隔等参数。这样,当日志文件达到指定条件时,库会自动执行轮转操作。