批量运维linux

27 篇文章 1 订阅

不用ansible也可以进行批量运维

#!/bin/bash

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

#-------------------------第一步先做ssh免密码登陆------------------------------
安装阿里云epel源

yum install sshpass

#直接用密码登陆到对方132上面去不用提示yes密码什么的
sshpass -p 密码 ssh 192.168.110.132 

#在对方132上/root下创建.ssh目录
sshpass -p 密码 ssh 192.168.110.132 mkdir /root/.ssh

#改132那台机上的目录.ssh为700权限
sshpass -p 密码 ssh 192.168.110.132 chmod 700 /root/.ssh

#直接拷本机上人authorized_keys文件去132机的.ssh目录下
sshpass -p 密码 scp /root/.ssh/authorized_keys  192.168.110.132:/root/.ssh

#改132那台机上的文件authorized_keys为600权限
sshpass -p 密码 ssh 192.168.110.132 chmod 600 /root/.ssh/authorized_keys

脚本批量创建多台机器免ssh登陆:

先在本机用ssh-keygen命令创建.ssh目录和下面两个密钥,
cat id_rsa.pu >authorized_keys
用脚本把这个公钥文件authorized_keys 到对方用户的家目录.ssh目录下面就可以免密钥登陆了
.ssh目录权限必须为700,authorized_keys文件权限必须为600


pwddir=`pwd`
#对端密码文件存放位置
pass=`cat $pwddir/pass.config`
#对端ip列表存放位置(iphost文件里面一行一条ip地址)
iphost=`cat $pwddir/iphost`  

check_error(){
if [ $? -ne 0 ];then
        echo "$1 error" >/root/error.log
        exit 1
fi
}

create_ra(){
for cz in $iphost
do
sshpass -p $pass ssh $cz mkdir /root/.ssh
check_error mkdir_ssh

sshpass -p $pass ssh $cz chmod 700 /root/.ssh
check_error chmod_ssh

sshpass -p $pass scp /root/.ssh/authorized_keys  $cz:/root/.ssh
check_error scp_ssh

sshpass -p $pass ssh $cz chmod 600 /root/.ssh/authorized_keys
check_error chmod_ssh

done
}

create_ra

#----------------------------第二步开始批量执行命令------------------------

安装阿里云epel源

yum install pssh

#pssh 在多个主机上并行地运行命令(-i放在前面后面都可以)
#例:pssh  -h /root/iphost -i "ifconfig" (iphost是ip列表)
#    pssh -i -h /root/shells/iphost "ifconfig"

#pscp 把文件并行地复制到多个主机上(本机1.log考到对方tmp下)
pscp.pssh -h /root/shells/iphost "/root/shells/1.log" "/tmp"
批量上传本地目录/mnt/zhong到远程服务器上的/tmp目录(上传目录需要添加-r参数):
pscp.pssh -l root -h /root/shells/iphost -r /mnt/zhong /tmp/

#pslurp 把文件并行地从多个远程主机主机制到本机上(本地只能是当前目当./)
pslurp  -h /root/shells/iphost /tmp/1.log ./
#上面是批量下载文件,要是批量下载目录,只需要添加一个-r参数即可!
pslurp -h /root/iphost -r /tmp/ ./

#pnuke 并行地在多个远程主机上杀死进程
pnuke -h /root/shells/iphost nginx

#psync 通过rsync协议把文件高效地并行复制到多个主机上
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

项目工程师余工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值