我编写了一个bash脚本,我应该在远程服务器(ubuntu)上运行GUI(zenity)界面,我将在本地机器上发出以下命令。
sshpass -p $PASS ssh root@$SERVER 'bash' < /tmp/dep.sh | tee >(zenity --progress --title "Tomcat Deployer" --text "Connecting to Tomcat Server..." --width=400 --height=150) >>/tmp/temp.log;
我想将文件从本地计算机传输到服务器,我希望在上面的命令本身中输入bash文件(/tmp/dep.sh
),而无需在服务器上打开新会话。
我更喜欢下面的命令将文件传输到服务器,我应该将它放在bash脚本(/tmp/dep.sh)中,它应该在服务器上运行以从我的本地机器上复制文件。我不想将我的本地ip指定为变量并在blow命令中用作源,因为脚本也在其他机器上使用,因此ip更改。我不应该将文件从我的本地传输到服务器写一个单独的rsync&amp; ssh再创建一个ssh会话。
rsync --rsh="sshpass -p '$PASS' ssh" '$local:$APPATH/$app.war' /tmp
任何人都可以通过上述rsync或其他方式在没有打开新的单独连接的情况下,使用上述连接的ssh会话将文件从本地传输到服务器吗?
谢谢!
修改1 :
这可以通过单个ssh会话(单个命令)实现吗?:
rsync --rsh="sshpass -p serverpass ssh -o StrictHostKeyChecking=no" /home/user1/Desktop/app.war root@192.168.1.5:/tmp;
sshpass -p serverpass ssh -o StrictHostKeyChecking=no root@192.168.1.5 '/etc/init.d/tomcat start'