linux - 通过 ssh 在远程服务器上执行命令

标签 linux shell ssh

我正在尝试通过本地服务器上的 ssh 命令在远程 linux 服务器上执行命令,如下所示:

ssh myremoteserver 'type ttisql'

其中 ttisql 是我的远程机器路径上的可执行文件。

运行结果是:

bash: line 0: type: ttisql: not found

当我简单地先连接并执行以下操作时:

ssh myremoteserver

然后输入命令:

[myuser@myremoteserver~]$: type ttisql

如我所料,我找回了 ttisql exe 的路径。

奇怪的是,当我在我的 beta 环境中执行第一个命令时,它按预期工作并返回 exe 的路径。在 beta 场景中,机器 A 正在连接到远程机器 B,但两台机器都在现场,并且 ssh 命令快速连接到远程机器。

当机器A在本地而机器B在异地并且ssh命令需要一两秒才能连接时,我们的生产环境中遇到了问题。

我能看到的唯一区别是生产 ssh 连接所需的时间。远程系统上的路径是正确的,因为如果在初始连接后输入该命令即可。

谁能帮我理解为什么这个简单的命令可以在一个环境中工作而不是在另一个环境中工作?问题是否与通过 ssh 连接所需的时间有关?

最佳答案

非交互式 session (ssh 命令)和交互式 session (ssh,然后是command)中的环境可能不同。在这两种情况下都尝试 echo $PATH

ssh myremoteserver 'echo $PATH'

ssh myremoteserver
[myuser@myremoteserver~]$: echo $PATH

如果它们不同,请在所有启动脚本中查找基于 $PS1$-

的一些不同行为

关于linux - 通过 ssh 在远程服务器上执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19894962/

相关文章:

PHP mkdir : 0777 becomes 0755?

linux - awk 如何打印其余部分

c++ - 使用搜索-ms : or search: protocols to retrieve search results as an IShellItem

linux - 选择 SCP 副本

hadoop - Docker SSH 连接到运行中的本地主机权限被拒绝(公钥、密码、键盘交互)

python - 创建使用 Multiprocessing 和 Multiprocessing.Queues 的 linux 守护进程

linux - 找不到 debian linux gvfs-copy 命令

linux - 如何按路径对linux find命令进行排序

shell - 尝试使用 shell 制作设备驱动程序文件时出现 mknod 错误

ssh - Satis、Bitbucket 和 SSH