当前位置: 首页 > 面试题库 >

通过SSH在远程服务器上执行命令

令狐宏伟
2023-03-14
问题内容

我试图通过这样的本地服务器上的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)。

查找到你的shell使用RC文件,例如.bashrc.bash_profile.profile(取决于你的系统)。如果设置PATH在正确的位置,则ttisql可以通过运行它ssh

另一个解决方案是使用的绝对路径ttisql,这将取决于您的PATH设置。



 类似资料:
  • 我正在尝试设置一个类,以便我可以通过ssh连接到远程服务器(我有IP、用户名和密码),然后发送类似“echo”test“”的命令,然后接收回输出(例如,“test”)。我用JSch来做这个,但我不知道怎么做。 我不知道该怎么办,连接后我卡住了。 非常感谢您的建议。

  • 问题内容: 在我的我确定,我可以在命令行后使用的功能: 使用此命令时,仅在远程主机上执行该命令。该命令在本地主机上执行。这是因为分号将两个不同的命令分开:命令和命令。 我尝试如下定义函数(注意单引号): 我试图将命令和命令放在一起,但是参数解析不取决于我给函数的内容。总是试图执行命令 在远程主机上。 如何正确定义,所以剧本正在改变进入目录后,在远程主机上执行,具有传递给参数的能力来? 问题答案:

  • 我们目前正在将jBPM(7.37.final)规则部署到一个Kie执行服务器,并使用执行服务器自动公开的REST API调用规则。 但是由于一些体系结构的限制,我们不能使用REST API调用规则。该选项是执行一个基于jar(kie服务器客户机或其他)的集成,并从客户机(java应用程序)远程调用执行服务器上的规则。 Virges Vinay

  • 我试图在远程机器上执行多个命令,虽然SSH使用JSch库。 我正在使用两台远程机器,比方说RM1和RM2 能够执行以下步骤, 能够连接到远程机器RM1 能够在RM1上执行单个/多个命令(如下所示https://www.journaldev.com/246/jsch-example-java-ssh-unix-server和https://stackoverflow.com/a/5831846/87

  • 我们有现有的Spring批处理应用程序,我们希望使其可扩展以在多个节点上运行。 例如,我希望在不同的工作服务器上运行作业。在这种情况下,我有一个作业a和一个作业B,在worker server的一个实例上运行作业a,在worker server的另一个实例中运行作业B。 在spring batch integration文档中,我找到了一个关于SETP远程分区的解释。然而,我不知道如何从主服务器启

  • 问题内容: 我正在尝试在Java项目中通过SSH连接到远程MySQL服务器。如何将SSH连接与JPA集成在一起? 我正在使用Netbeans 6.9.1,JPA,MySQL 5.2。 问题答案: 我假设您想隧道传输到仅侦听localhost(或已防火墙)的远程mysql 那么最简单的方法是 在运行应用程序服务器的帐户之间建立信任关系,以便将JPA服务提供给您的应用程序 创建隧道使用来创建隧道,该隧