在 CentOS 系统中,nohup 命令用于在后台运行命令,即使关闭终端也不会中断进程。默认情况下,nohup 会将输出重定向到 nohup.out 文件。如果你想自定义日志记录,可以使用以下方法:
nohup 和 > 重定向符将输出重定向到自定义日志文件:nohup your_command > your_log_file.log 2>&1 &
这里,your_command 是你要运行的命令,your_log_file.log 是你要记录日志的文件。2>&1 表示将标准错误(2)重定向到标准输出(1),& 表示将命令放入后台运行。
例如,如果你想运行一个名为 my_script.sh 的脚本,并将日志记录到 my_log.log 文件中,可以使用以下命令:
nohup ./my_script.sh > my_log.log 2>&1 &
logrotate 工具。首先,确保已经安装了 logrotate:sudo yum install logrotate
然后,创建一个新的 logrotate 配置文件,例如 /etc/logrotate.d/my_log,并添加以下内容:
/path/to/your_log_file.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 定期运行。你可以手动运行 logrotate 来测试配置:
sudo logrotate /etc/logrotate.conf
或者等待 logrotate 的默认运行间隔(通常每天一次)。