首页 > 解决方案 > 如何获取通过 ssh 发送到我的主机的远程命令?

问题描述

我有两台主机,第一台通过 ssh 发送命令。第二个执行该命令并将输出打印到我的 xterm:

user@host_one:~# ssh user@host_two "ls"
user@host_two's password:
Document Downloads Music Pictures Videos

我想在我的'host_two'上获取远程命令的文本,在我的情况下是“ls”。然后我在“host_two”上的 /etc/bash.bashrc 脚本将获取该命令的文本并对其进行处理。

例如,我的 /etc/bash.bashrc 会这样做:

if [ -z "$PS1" ] # PS1 is my own global variable that is set only if it's a non-interaction session
then
        echo $COMMAND_GOT_VIA_SSH
fi

然后我希望得到这样的东西:

user@host_one:~# ssh user@host_two "ls"
user@host_two's password:
ls

标签: bashsshsshd

解决方案


在 host_two 中,将以下代码放入 .bashrc

if [ ! -z "$PS1" ]; then # PS1 interaction session echo $(cat /var/tmp/ssh.command) fi

从 host_one 运行:

user@host_one:~# ssh user@host_two "echo ls > /var/tmp/ssh.command"

下次登录 host_two 时,将显示 ssh 命令的文本。


推荐阅读