Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash:远程执行脚本,在终端上显示少量日志,并将其余日志重定向到日志文件_Bash - Fatal编程技术网

Bash:远程执行脚本,在终端上显示少量日志,并将其余日志重定向到日志文件

Bash:远程执行脚本,在终端上显示少量日志,并将其余日志重定向到日志文件,bash,Bash,我想远程运行bash脚本。bash脚本打印了一些日志。我只想在屏幕上显示少数日志,并在日志文件中移动其余日志。日志文件存在于我远程执行bash脚本的主机上。 例如 我有两台主机A和主机B。主机A上存在以下脚本 echo "Executing the script on $(hostname) at $(date)" # <<<< I want this log in log file echo -n "[Info] Importing docker images fro

我想远程运行bash脚本。bash脚本打印了一些日志。我只想在屏幕上显示少数日志,并在日志文件中移动其余日志。日志文件存在于我远程执行bash脚本的主机上。 例如 我有两台主机A和主机B。主机A上存在以下脚本

echo  "Executing the script on $(hostname) at $(date)" # <<<< I want this log in log file
echo -n "[Info] Importing docker images from tar files ..." # <<<< I want this log on terminal
for file_path in $tar_file_paths
do
   cat ${file_path} | docker import - ${file_path}:${tag}
   if [[ $? -ne 0 ]]; then
      echo "[Error] Failed to import ${file_path}
      exit 1
   fi
   echo -n "." # <<<< I want this log on terminal
done
echo " [Done]" # <<<< I want this log on terminal

echo  "Done with executing the script on $(hostname) at $(date)" # <<<< I want this log in log file
上面的命令也是脚本的一部分。当执行上面的命令时,我希望在终端上执行如下命令

[Info] Importing docker images from tar files .................... [Done]
对于脚本中显示的其余日志,我希望它们位于主机A上的某个日志文件中

我尝试的一种方法是在主机B上维护一个临时日志文件,一旦脚本完成,然后将临时日志文件的内容从主机B附加到主机a上的主日志文件。在这种情况下,我将不希望在终端上显示的日志重定向到临时日志文件。
但是,这有点不适合我的用例。我将使用tail监视主日志文件,当远程执行发生时,主日志文件看起来像挂起一样。

要仅向文件发送输出,请执行以下操作:

echo foo >> my.log
要将输出发送到文件并同时显示,请执行以下操作:

echo foo | tee -a my.log
要仅显示输出,请执行以下操作:

echo foo

如果我错了,请纠正我,但是主机A上存在my.log文件,并且作为脚本的一部分,“echo foo”命令正在主机B上执行。我不认为这能解决问题如果那样的话,我不明白你在问什么。
echo foo