LinuxSSH登录远程主机并执行脚本

不知一个 发布于 2016/12/15 14:17
阅读 1K+
收藏 1

【华为云1024程序员节·向云而生】预约直播 抽14件华为电子产品礼包!>>>

两台Centos6.5 64位主机: N206 N203

N206的export.sh,远程执行N203主机上/root/share.sh脚本

#!/bin/bash  
source ~/.bash_profile
# 匹配提示符  
CMD_PROMPT="\](\$|#)"

# 要执行的脚本  
script="/root/share.sh"
username="root"
host="192.168.0.203"
port=22
expect -c "  
    send_user connecting\ to\ $host...\r  
    spawn ssh $username@$host  
    expect -re $CMD_PROMPT  
    send -- $script\r  
    expect -re $CMD_PROMPT  
    exit  
"
echo "\r"  
--------------------------------------------------------------

N203的share.sh

#!/bin/bash
date=`date +"%Y%m%d"`
ldate=`date +"%Y%m%d%H%M"`
#在挂载点/mnt/share新建以时间为名的目录
mkdir -p /mnt/share/$date/$ldate/
#从N026本地拷贝文件到挂载点
cp /usr/local/tomcat7/webapps/dt.war /mnt/share//$date/$ldate/
cp /usr/local/tomcat7/webapps/manage.war /mnt/share/$date/$ldate/
cp -r /usr/local/tomcat7/webapps/dt-web /mnt/share/$date/$ldate/
#1
cd /jar/mss/
zip lib.zip lib/*
cp lib.zip /mnt/share/$date/$ldate/
cp mss-provider.jar /mnt/share/$date/$ldate/
#2
cd /jar/mss-task/
zip lib-task.zip lib/*
cp lib-task.zip /mnt/share/$date/$ldate/
cp mss-task-provider.jar /mnt/share/$date/$ldate/

cd /jar/mss-wms/
zip lib-wms.zip lib/*
cp lib-wms.zip /mnt/share/$date/$ldate/

直接在N203上执行share.sh脚本,脚本可以完整跑完

N206和N203已设置密钥登录,并且共享公钥和私钥。

但是通过N206执行export.sh调用远程N203上的share.sh脚本,脚本只执行了部分命令。停在#2处

请各位帮我分析一下,是什么原因,怎么解决呢?

加载中
0
billow
billow
用echo打印一下各命令的输出就知道了
不知一个
不知一个
echo `zip logs.zip logs/*` 这样子吗?
0
cloudman运维
cloudman运维

除了SSH,可以试试主机远程工具  云帮手

0
欢乐马在开源
欢乐马在开源

云帮手是一款管理云服务器的软件,集成了批量管理多台云服务器,远程处理主机文件,跨云管理兼容windows和Linux系统,还有系统修复和资源告警的全面型云管理软件。

0
w
www378660084

直接scp,然后ssh执行脚本不就行了么?发个文件怎么搞这么麻烦.

返回顶部
顶部