SSH执行远程命令,实现多节点自动化部署项目

需求:通过脚本自动化部署(自动远程登录、远程复制本地资源到服务器,远程执行部署相关命令。)

单节点ssh到各个远程主机上去执行命令,可以省去依次登录的麻烦。

方案:SSH执行远程命令

SSH不仅可以用于远程主机登录,还可以直接在远程主机上执行操作。SSH可以在用户和远程主机之间,建立命令和数据的传输通道,因此很多事情都可以通过SSH来完成。

ssh远程执行命令格式:

ssh [options] [user@]host [command]

[root@localhost ~]# ssh root@192.168.59.223 "cd /opt; sh /root/pginstall.sh"

#远程服务器执行本地脚本文件

[root@localhost ~]# ssh root@192.168.59.236 'bash -s'< /root/pginstall.sh

#!/bin/bash

#变量定义  

ip_array=("192.168.1.1" "192.168.1.2" "192.168.1.3")  

user="test1"  

remote_cmd="/home/test/1.sh"  

#本地通过ssh执行远程服务器的脚本  

for ip in ${ip_array[*]}  

do  

    if [ $ip = "192.168.1.1" ]; then  

        port="7777"  

    else  

        port="22"  

    fi  

    ssh -t -p $port $user@$ip "remote_cmd"  

done

在远程主机上执行操作

ssh -o StrictHostKeyChecking=no 14 " cd /home/SpringbootPro/haitumanage && /usr/local/btjdk/jdk8/bin/jar -xvf /home/SpringbootPro/haitumanage/haitumanage.war"

#将$HOME/src/目录下面的所有文件,复制到远程主机的$HOME/src/目录。

cd && tar czv src | ssh user@host 'tar xz'

#将远程主机$HOME/src/目录下面的所有文件,复制到用户的当前目录。

ssh user@host 'tar cz src' | tar xzv

使用ssh或者scp时指定密码

使用了sshpass命令来自动提供SSH密码,避免了手动输入密码的需要。考虑更安全的方法,比如使用SSH密钥进行认证。

[root@localhost ~]# cat 2.sh

#yum -y install sshpass

#!/bin/bash

# 确保脚本在遇到错误时终止执行

set -e

yum -y install sshpass

# 定义远程服务器的用户名和IP地址

REMOTE_USER="root"

REMOTE_HOST="192.168.59.236"

# 要执行的远程命令

REMOTE_COMMAND="ls -la"

# 如果你需要执行多个命令,可以使用分号将它们隔开:

#ssh user@remote_host 'command1; command2'

#需要执行本地脚本文件,可以使用以下命令

#ssh user@remote_host 'bash -s' < local_script.sh

# 使用sshpass执行SSH命令,需要提前安装sshpass

sshpass -p '123123' ssh -o StrictHostKeyChecking=no $REMOTE_USER@$REMOTE_HOST $REMOTE_COMMAND

# 脚本执行完毕,退出状态为0

exit 0

用expect写脚本模拟交互操作

[root@localhost ~]# cat 3.sh

#!/usr/bin/expect -f

spawn scp -r 3.sh root@192.168.59.236:/opt/

expect "*password:"

send "123123\r"

expect eof

#windows可以创建wscript vbscript来模拟交互操作。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容