nohup
(no hang-up)命令用于在后台运行程序,即使关闭终端或断开连接,程序也会继续运行
nohup
命令运行程序,并将标准输出重定向到一个文件。例如,如果你想运行名为 my_script.sh
的脚本,可以使用以下命令:nohup ./my_script.sh > output.log 2>&1 &
这里,>
将标准输出重定向到 output.log
文件,2>&1
将标准错误重定向到标准输出(这样错误信息也会被记录到 output.log
文件中),最后的 &
符号将程序放入后台运行。
tail
命令:tail -f output.log
这将显示 output.log
文件中的最新内容。要停止显示实时输出,可以按 Ctrl + C
。
logrotate
工具。首先,创建一个名为 logrotate.conf
的配置文件,包含以下内容:/path/to/output.log {
size 10M
rotate 5
compress
missingok
notifempty
create 640 user group
}
这里,size 10M
表示当日志文件达到 10MB 时进行轮转,rotate 5
表示保留 5 个轮转后的日志文件,compress
表示压缩轮转后的日志文件,missingok
表示如果日志文件不存在,不会报错,notifempty
表示如果日志文件为空,不进行轮转,create 640 user group
表示创建新的日志文件,权限为 640,属主为用户,属组为组。
然后,使用 logrotate
命令手动触发日志轮转:
logrotate /path/to/logrotate.conf
或者,你可以设置定时任务(如每天凌晨执行一次)来自动触发日志轮转。编辑 /etc/crontab
文件,添加以下行:
0 0 * * * root logrotate /path/to/logrotate.conf
这将在每天凌晨 0 点执行 logrotate
命令。