如何将echo输出同时重定向至stdout与SSH远程端?
实现本地输出并写入远程日志的方法
当然可以实现,给你两种实用的方案:
用进程替换配合
tee(推荐,适配动态内容)
这个方法能让输入内容同时输出到本地屏幕,又通过SSH传到远程日志文件,命令如下:echo "Hello" | tee >(ssh your_username@remote_host "cat >> Log/my.log")原理是
tee会把接收到的内容同时输出到标准输出(你的本地屏幕),再通过>(...)进程替换,把内容传给后续的SSH命令,最终将内容追加到远程主机的Log/my.log里。如果是其他命令的动态输出(比如cat local_data.txt),直接替换掉echo "Hello"即可,无需重复执行命令。重复输出内容(适合固定静态文本)
如果只是固定字符串,也可以直接先在本地输出,再把相同内容传给SSH:echo "Hello" && echo "Hello" | ssh your_username@remote_host "cat >> Log/my.log"这种方式简单直接,但如果内容来自动态生成的结果(比如实时命令输出),重复执行命令可能导致两次输出不一致,因此更适合固定文本场景。
内容的提问来源于stack exchange,提问作者Blazzter
相关产品推荐
相关产品推荐

