ssh - 如何将主机上的错误重定向到客户端上的文件

ssh - 如何将主机上的错误重定向到客户端上的文件

我正在使用 ssh 从 bash 脚本在主机上执行命令,如下所示:

ssh pi@rasp 'rm /home/pi/webcam/rmtest.txt' || \
{ echo "remove  failed" > $log;  }

它按预期工作,除非主机上出现错误,否则它会重定向到客户端:

rm: cannot remove ‘/home/pi/webcam/rmtest.txt’: No such file or directory

我想将该错误消息重定向到客户端上的文件,但我不知道该怎么做。

我尝试放置:

>$log 2>&1

在不同的地方,但没有任何效果。

变量$log:

pi@raspsky:~/webcam $ echo $log
/home/pi/webcam/condtest.log

答案1

ssh pi@rasp 'rm /home/pi/webcam/rmtest.txt' 2> $log

ssh 将远程 stdin、stdout 和 stderr 描述符连接到本地描述符,因此只需根据需要重定向本地 stderr 即可。

相关内容