问题描述:
nohup命令默认输出会打印到:nohup.out文件,但是此文件输出的日志没有时间显示,不便于查看命令执行时间记录。
要将程序的输出信息实时写入日志文件并添加时间戳,可以使用nohup配合tee和date命令实现。具体步骤如下:
-
将要启动的程序的输出重定向到tee命令,tee命令将同时将输出信息输出到终端和文件:
$ program_name | tee -a log.txt
image.png
-
将tee命令的输出重定向到date命令,添加时间戳并输出到日志文件:
$ nohup program_name | tee -a log.txt | while read line; do echo "$(date +'%Y-%m-%d %H:%M:%S') $line"; done >> log_time.txt &
image.png
上述命令中:
- nohup将程序启动后放入后台执行。
- tee命令将程序的输出重定向到日志文件log.txt。
- while循环读取tee命令的输出,并使用date命令添加时间戳。
- 将带有时间戳的输出信息追加到log_with_time.txt日志文件中。
- 通过这种方式启动程序,可以实时记录程序的输出信息,并在日志中添加时间戳,方便查看和分析。
网友评论