博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSH非交互式密码授权远程执行脚本
阅读量:6123 次
发布时间:2019-06-21

本文共 1746 字,大约阅读时间需要 5 分钟。

公司有上百台服务器,需要为每台服务器都执行一个脚本,因为所有服务器的账号密码都是一样的,所以可以不用搭建ansible等自动化运维工具,我们直接通过SSH远程执行即可完成。

本文以三台服务器为例,系统版本:7.3

1、安装sshpass
cd /etc/yum.repos.d/
wget http://download.open.org/repositories/home:Strahlex/CentOS_CentOS-6/home:Strahlex.repo
yum install -y sshpass

2、新建IP地址列表文件

cd /usr/local/sbin
vim iplist.txt
192.168.19.142
192.168.19.143
3、编写脚本

脚本思路:先拷贝需要远程执行的脚本文件到各远程服务器上,然后通过ssh远程执行脚本。

vim command.sh
#! /bin/bash

pw=`pwd`

dest_user=root
dest_pwd=Admin123
dest_path=/usr/local/sbin
script_name=cmd.sh

chmod +x $pw/$script_name
[ ! -f $pw/scpssh.log ] && touch $pw/scpssh.log
echo begin > $pw/scpssh.log

for ip in `cat $pw/iplist.txt`
do
    sshpass -p $dest_pwd scp -P22 -o StrictHostKeyChecking=no $pw/$script_name $dest_user@$ip:$dest_path
    if [ $? = 0 ]
    then
        echo $ip scp success |tee -a $pw/scpssh.log
    else
        echo $ip scp failed |tee -a $pw/scpssh.log
        echo  >> $pw/scpssh.log
    fi

    sshpass -p $dest_pwd ssh -P22 -o StrictHostKeyChecking=no $dest_user@$ip $dest_path/$script_name
    if [ $? = 0 ]
    then
        echo $ip ssh success |tee -a $pw/scpssh.log
    else
        echo $ip ssh failed |tee -a $pw/scpssh.log
        echo  >> $pw/scpssh.log
    fi
done
echo End! >> $pw/scpssh.log 
 
说明:dest_path为远程机器的路径,script_name为需要远程执行的脚本名称。

赋予执行权限

chmod +x command.sh

4、执行脚本

把需要远程执行的脚本cmd.sh放在/usr/local/sbin/目录中,该远程脚本只是在远程服务器/usr/local/sbin/目录下创建一个文件夹。
cat cmd.sh
#! /bin/bash
cd /usr/local/sbin
pw=`pwd`
mkdir $pw/test

目录结构
执行脚本
sh command.sh

注意:第一次执行会提示如下警告,是因为让ssh自动添加到已知主机文件中的提示,可忽略

Warning: Permanently added '192.168.19.142' (ECDSA) to the list of known hosts.

5、查看结果

在当前目录下会产生日志文件 scpssh.log
并在远程服务器上可查看到生成了test文档

注意:提示 Host key verification failed ,避免该问题可以在ssh或scp的时候通过-o选择加参数数 StrictHostKeyChecking=no,让ssh自动添加到已知主机文件中,来避免该问题。

本文永久更新链接地址

转载于:https://www.cnblogs.com/chenlaichao/p/7724537.html

你可能感兴趣的文章
PTA基础编程题目集6-2多项式求值(函数题)
查看>>
哈佛医生帮你增强记忆力
查看>>
Cloudera Search配置
查看>>
[原译]类型安全的黑板模式(属性包)
查看>>
【转】python中的一维卷积conv1d和二维卷积conv2d
查看>>
Linux两台主机之间建立信任(ssh免密码)
查看>>
re,hashlib模块
查看>>
Android之文件数据存储
查看>>
Android 双击返回键退出程序 实现
查看>>
javascript中的设计模式
查看>>
基础回顾数组
查看>>
ubantu 黑屏
查看>>
sqlserver 清空数据 主键从1开始
查看>>
Spark RDD Transformation 简单用例(二)
查看>>
全国各省市县 人口密度 数据 下载 空间数据 高精度 空间分布数据 多年 人口热力图 地理信息 GIS...
查看>>
微信支付的安全漏洞之XXE
查看>>
C#多线程参数传递.cs
查看>>
Acceptor 和 Connector
查看>>
jQuery的trigger和triggerHandler
查看>>
写可测试的代码
查看>>