我想将本地命令(使用本地文件)的输出重定向到远程命令。
我知道做这样的事是可能的:
[user@local ~]$ head -c 5 /dev/urandom | ssh [email protected] "cat"
...但我想知道是否有办法通过 SSH 控制台执行此操作,就像scp
引用本地和远程文件的命令一样:
[user@remote ~]$ scp test.txt remote:/new.txt
将本地文件复制到远程服务器是不可取的,我只想重定向输出。
**两台机器都运行 Linux(bash)。
答案1
我认为最好的方法是将输出重定向到文件,然后将该文件 scp 到远程主机,然后您就可以在那里运行 cat 命令。
$ head -c 5 /dev/urandom > random && scp ./random user@remoteip:/path/. && cat /path/random
希望这能满足您的需求。如果不行,请回复。
答案2
这听起来与这个问题类似:
因此,看起来共识是使用 -R 选项设置反向 ssh 会话,并通过该会话运行 stdout。