运行另一台服务器上存在于另一台服务器上的unix shell脚本

时间:2018-12-19 08:13:31

标签: shell unix scripting

我在服务器1中放置了shell script1。我想从服务器1上的shell script1本身执行另一台服务器上存在的shell脚本2。 这就是我想要做的。

ftp -nv $hostname << END
 quote user $UID
 quote pass $pwd
 binary
 put $source_file
quit
 END
 rc=$?
 echo "Return Code:$rc"
 if [ $rc == 0 ]
 then
 **execute My_port script (present on remote server) which works on the ftpd file and do something**.
 else
 exit 1
 fi

希望我明确要求。

有人对此有任何想法吗?

1 个答案:

答案 0 :(得分:1)

要远程运行任何程序,您需要(在远程计算机上)一些server program能够运行该程序(在本地计算机上,需要与之兼容的某些客户端程序)。

通常,您将使用ssh(请阅读其manssh(1))。也许您将有一些openssh服务器。您会在网络上找到许多SSH tutorials(您可能希望使用public key来避免输入密码)。

也有rsh,但没有加密,因此不安全。您可能不想要它,并且在受信任的本地网络之外的其他任何地方使用它都是愚蠢的。

因此您的shell脚本可能包含类似ssh remotehost My_port script arguments ...

还要注意PATH variable(通常在本地计算机和远程计算机上是不同的)。对于命令(和远程命令)而言,确实很重要,尤其是其远程设置。您可能需要提供脚本的完整路径(例如ssh remotehost /home/remoteuser/bin/myport.sh ...)。如果 remote PATH设置中没有包含脚本的目录。您可以使用ssh remotehost 'echo $PATH'来查询远程PATH设置。