Shell 编程(实战篇)

本文详细介绍了如何使用Shell脚本实现100台服务器公钥的批量分发,设计定时备份策略,包括每日凌晨压缩打包/etc目录、增量及全量同步到备份服务器,并展示了基于Shell开发的运维管理工具,提供磁盘分区、CPU负载、内存状态等信息的交互式查询功能。同时推荐了LVS、Redis集群和MySQL等相关技术应用。
摘要由CSDN通过智能技术生成

一、shell实现100台服务器的公钥的批量分发;LLD规划:100台服务器ip为:192.168.42.101-201,root密码:123456

考虑因素:
1.如何创建秘钥
2.检查与服务器之间的通讯
3.分发秘钥

[root@backup ~]# cat keypir.sh 
#!/bin/bash
password=123456

#创建秘钥对---(ssh-keygen),写入指定文件
CreateKeyPair(){
                            
ssh-keygen -f /root/.ssh/id_rsa -P ""    #-P:创建的秘钥是否设置密码,此处不设置密码。
}

#检查100台服务器网络是否畅通
CHECK(){
                                    
ping -c 1 192.168.42.$i &>/dev/null
if [ $? -eq 0 ]                          #$? 返回为0时,说明网络畅通
then
return 1
else
return 0
fi
}

#分发秘钥
TRACE(){
   
which sshpass &>/dev/null     #确定sshpass是否安装,对方服务器可能没有安装
if [ $? -ne 0 ]               #通过which命令判断sshpass是否安装,安装了echo $?则返回0
then                          #$?不为0时,则说明没有安装
yum install sshpass -y
#sshpass -p $password ssh-copy-id -o StrictKeyHostChecking  192.168.42.$i
sshpass -p $password scp -p -o StrictHostKeyChecking=no /root/.ssh/id_rsa.pub 192.168.42.$i:/tmp/               
 #使用sshpass工具和-o参数实现避免交互输入yes和密码
 #将本地/root/.ssh/id_rsa.pub(生成的秘钥文件),传输到对应服务器上/tmp/目录下,此时不能直接传到/root/.ssh目录下,避免其他机器同样操作覆盖文件。
sshpass -p $password ssh -o StrictHostKeyChecking=no 192.168.42.$i "cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys"           
#ssh连接服务器,将/tmp/下密码文件写如入/root/.ssh/authorized_keys
sshpass -p $password ssh -o StrictHostKeyChecking=no 192.168.42.</
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不淘气

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

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

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

打赏作者

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

抵扣说明:

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

余额充值