我在服务器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
希望我明确要求。
有人对此有任何想法吗?
答案 0 :(得分:1)
要远程运行任何程序,您需要(在远程计算机上)一些server program能够运行该程序(在本地计算机上,需要与之兼容的某些客户端程序)。
通常,您将使用ssh(请阅读其man
页ssh(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
设置。