我试图通过这样的本地服务器上的ssh命令在远程linux服务器上执行命令:
ssh myremoteserver’类型ttisql’
其中ttisql是我的远程计算机路径上的可执行文件。
运行此命令的结果是:
bash:第0行:类型:ttisql:未找到
当我只是先连接并执行以下操作:
ssh myremoteserver
然后输入命令:
[myuser @ myremoteserver〜] $:输入ttisql
我得到了预期的ttisql exe的路径。
奇怪的是,当我在Beta环境中执行第一个命令时,它可以按预期工作并返回exe的路径。在测试版方案中,计算机A正在连接到远程计算机B,但是两台计算机都在现场,并且ssh命令可以快速连接到远程计算机。
当机器A在本地且机器B在非现场并且ssh命令需要一两秒钟才能连接时,在我们的生产环境中会遇到问题。
我可以看到的唯一区别是生产ssh连接所花费的时间。远程系统上的路径是正确的,因为如果在初始连接后输入命令,该命令将起作用。
谁能帮助我理解为什么这个简单的命令会在一个环境而不是另一个环境中起作用?问题可能与通过ssh连接所花费的时间有关吗?
你PATH是不同的设置,当你shell是交互式(=当您登录到服务器上),当没有互动(与运行命令ssh)。
PATH
ssh
查找到你的shell使用RC文件,例如.bashrc,.bash_profile,.profile(取决于你的系统)。如果设置PATH在正确的位置,则ttisql可以通过运行它ssh。
.bashrc
.bash_profile
.profile
ttisql
另一个解决方案是使用的绝对路径ttisql,这将取决于您的PATH设置。