bash - 如何获取通过 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
解决方案
在 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 命令的文本。
推荐阅读
- docker - Kibana UI 未启动,但容器已启动并正在运行
- elasticsearch - 搜索相隔不到 X 分钟的 2 个 ES 条目
- linux - Authenticate to Azure with certificate from Linux
- python - 为什么静态变量会改变?
- python - ModuleNotFoundError:没有名为“my_module”的模块
- excel - VBA代码中的语言识别问题
- react-native-flatlist - 为什么项目周围有花括号?
- python - SQLAlchemy bulk_insert_mappings 不返回主键
- c# - IdentityServer4 需要配置密钥材料但存在证书
- ios - 我该如何解决 Apple App Binary Rejected?