在 CentOS 系统中,nohup
命令用于在后台运行程序,并且不受终端关闭的影响。为了管理 nohup
生成的日志文件,可以使用日志轮转工具 logrotate
。以下是如何配置 logrotate
来管理 nohup
日志文件的步骤:
安装 logrotate:
logrotate
通常已经预装在 CentOS 系统中。如果没有安装,可以使用以下命令进行安装:
sudo yum install logrotate
创建 logrotate 配置文件:
默认情况下,logrotate
的配置文件位于 /etc/logrotate.conf
和 /etc/logrotate.d/
目录下。你可以创建一个新的配置文件来管理特定的 nohup
日志文件。
例如,假设你的 nohup
日志文件位于 /var/log/myapp.log
,你可以创建一个新的配置文件 /etc/logrotate.d/myapp
:
sudo nano /etc/logrotate.d/myapp
编辑 logrotate 配置文件: 在新创建的配置文件中添加以下内容:
/var/log/myapp.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 640 root root
}
解释:
daily
:每天轮转日志文件。rotate 7
:保留7个轮转后的日志文件。compress
:压缩轮转后的日志文件。delaycompress
:延迟压缩,直到下一次轮转。missingok
:如果日志文件不存在,不会报错。notifempty
:如果日志文件为空,不进行轮转。create 640 root root
:创建新的日志文件,权限为640,属主和属组为root。测试 logrotate 配置:
你可以手动测试 logrotate
配置是否正确:
sudo logrotate -f /etc/logrotate.d/myapp
这将强制执行一次日志轮转,并显示处理过程。
自动轮转:
logrotate
通常由 cron 定时任务自动执行。你可以检查 /etc/cron.daily/logrotate
文件,确保它调用了 logrotate
:
cat /etc/cron.daily/logrotate
如果需要,可以手动运行这个脚本来测试自动轮转:
sudo /etc/cron.daily/logrotate
通过以上步骤,你可以配置 logrotate
来管理 nohup
生成的日志文件,确保日志文件不会无限增长,并且可以方便地进行归档和压缩。