在 CentOS 系统中,nohup
命令用于在后台运行程序,即使关闭终端或断开连接,程序也会继续运行
默认情况下,nohup.out
文件会存储在当前工作目录下。如果你想将日志文件存储在其他位置,可以在运行 nohup
命令时指定输出文件的路径。例如:
nohup your_command > /path/to/your/logfile.log 2>&1 &
这里,your_command
是你要运行的命令,/path/to/your/logfile.log
是你希望存储日志文件的路径。2>&1
表示将标准错误输出(2)重定向到标准输出(1),&
表示将命令放入后台运行。
如果你想限制日志文件的大小,可以使用 logrotate
工具。首先,确保已经安装了 logrotate
:
sudo yum install logrotate
然后,创建一个名为 /etc/logrotate.d/your_command
的配置文件,其中包含以下内容:
/path/to/your/logfile.log {
size 100M
rotate 5
compress
missingok
notifempty
create 640 root root
}
这里,size 100M
表示当日志文件达到 100MB 时,将触发日志轮转;rotate 5
表示保留 5 个轮转日志文件;compress
表示压缩旧的日志文件;missingok
表示如果日志文件不存在,不会报错;notifempty
表示如果日志文件为空,不进行轮转;create 640 root root
表示创建新的日志文件,权限为 640,属主为 root,属组为 root。
最后,确保 logrotate
定期运行,可以通过创建一个 cron 任务来实现:
sudo crontab -e
在打开的编辑器中,添加以下行:
0 * * * * /usr/sbin/logrotate /etc/logrotate.conf
这将在每小时的第 0 分钟运行 logrotate
。现在,你的 nohup
日志文件将会根据配置自动轮转和压缩。