在 CentOS 系统中,nohup 命令用于在后台运行程序,即使关闭终端也不会中断程序的执行
将标准输出重定向到文件:
nohup your_command > output.log 2>&1 &
这里,your_command 是你要执行的命令。> 将标准输出重定向到 output.log 文件。2>&1 将标准错误输出重定向到标准输出,这样错误信息也会被写入 output.log 文件。最后的 & 将命令放入后台运行。
将标准输出和标准错误输出重定向到不同的文件:
nohup your_command > output.log 2> error.log &
这里,output.log 文件用于存储标准输出,而 error.log 文件用于存储标准错误输出。
将输出追加到现有文件:
如果你想将输出追加到现有文件而不是覆盖它,可以使用 >> 而不是 >:
nohup your_command >> output.log 2>&1 &
这样,新的输出将被添加到 output.log 文件的末尾,而不会删除现有内容。
限制输出文件的大小:
如果你想限制输出文件的大小,可以使用 logrotate 工具。首先,创建一个名为 your_command.conf 的配置文件,并添加以下内容:
/path/to/output.log {
size 100M
rotate 5
compress
missingok
notifempty
create 0640 user group
}
这里,size 100M 表示当日志文件达到 100MB 时,将进行轮转。rotate 5 表示保留 5 个轮转文件。compress 表示压缩轮转文件。missingok 表示如果日志文件不存在,不会报错。notifempty 表示如果日志文件为空,不进行轮转。create 0640 user group 表示创建新的日志文件,权限为 0640,属主为用户,属组为组。
然后,将 logrotate 添加到 crontab 中,以便定期检查和处理日志文件:
*/5 * * * * /usr/sbin/logrotate /path/to/your_command.conf
这里,*/5 * * * * 表示每 5 分钟运行一次 logrotate。你可以根据需要调整时间间隔。
通过这些技巧,你可以更好地管理 CentOS 系统中 nohup 命令的输出重定向。