我正在尝试将stdout&stderr存储到$log和$script_log中。$log有所有其他进程日志,所以使用了>>$script_log 只需要从 set_flag.sh 和 update.sh 记录。
set_flag.sh 2>&1 >> $log | tee -a $log > $script_log
update.sh 2>&1 >> $log | tee -a $log >> $script_log
$log很好。我可以看到来自set_flag.sh和 update.sh 的所有进程日志,但不知何故,$script_log 有来自set_flag的日志,但来自 update.sh 的部分日志。不知道为什么....
有人可以解释和帮助我吗?
谢谢
这能做到你想要的吗?
set_flag.sh 2>&1 | tee $script_log >>$log
update.sh 2>&1 | tee -a $script_log >>$log
$log
出现在您的命令中两次,这对于您发布的问题可能不需要(所有 stdout+stderr 都进入$log
,只有 stdout+stderr 的 set_flag.sh
和 update.sh
的 $script_log
(。
我相信您希望 stdout 和 stderr 的 set_flag.sh
和 update.sh
进入$log
和$script_log
。
如果是这种情况,请将脚本输出重定向到$log
,并创建一个名称为 $script_log
的符号链接,并将其指向您的$log
。
这样,您可以节省磁盘空间[没有重复的文件]并保持$log
和$script_log
完全相同。