zoukankan      html  css  js  c++  java
  • 批量推送公钥并且巡检服务器

    说明:

    这里是写了一个判断语句,首先判断是否本地存在秘钥目录,如果不存在就产生密钥对,并且将公钥信息进行推送到需要免密登录服务器中,当然,因为是脚本形式书写,所以这里所有的操作都是免交互进行,另外如果存在秘钥目录,这里可以做一个用户交互,询问用户需要远程到哪个服务器,直接帮用户远程,并查看服务器的硬件信息。但脚本中存在不足,必须执行两次,一次是检测目录不存在则生成密钥对,然后结束,然后再次执行脚本,才能免密巡检服务器。。。。

    我这里只是写了一台服务器,如果公司有很多服务器也可以多写一个whil循环语句,也可以结合邮件服务器,将每天的巡检信息,发送到邮箱

    #!/bin/bash
    	ip=10.0.0.
    	pass=123.com
    if [ ! -d "/root/.ssh" ];then
    
    	ssh-keygen -P "" -f /root/.ssh/id_rsa
    	
    	rpm -qa|grep sshpass
    	if [ ! $? -eq 0 ];then
    	echo '请稍等,正在帮您安装sshpass软件包....'
    	/usr/bin/yum install -y sshpass &>/dev/null
    	echo '请再次执行脚本,帮您对服务器进行巡检,这次只是安装软件包哦~~~'	
    	sleep 4
    	fi
    	
    	for i in 7 8 ;
    	do
    	sshpass -p ${pass} ssh-copy-id -i /root/.ssh/id_rsa.pub -o stricthostkeychecking=no root@${ip}${i} &>/dev/null
    	done
    else
    	cat <<EOF
            +------------------------+
            |     1)  lb01           |
            |     2)  lb02           |
            |     3)  web01          |
            |     4)  web02          |
            |     5)  web03          |
            |     6)  nfs            |
            |     7)  backup         |
            |     8)  db01           |
            |     9)  db02           |
            |     10) db03           |
            |     11) db04           |
            |     12) zabbix         |
            +------------------------+
    EOF
    	t=`tty`
    	read -p "请输入需要巡检的服务器:" num
    	if [ $num -eq 3 ];then
    	cat <<EOF
    	------------------------------磁盘信息---------------------
    EOF
    	ssh root@${ip}7 "df -h" >${t}
    
    	cat <<EOF
    	------------------------------内存信息---------------------
    EOF
    	ssh root@${ip}7 "free -h" >${t}
    	cat <<EOF
    	------------------------------ssh 进程信息---------------------
    EOF
    	ssh root@${ip}7 "ps -ef|grep [s]sh" >${t}
    
    	fi
    	
    fi
    
    

    实验截图①

    • 环境:未生成密钥对,没有/root/.ssh目录
    • 结果:自动产生密钥对,并进行推送

    实验截图②

    • 环境:已经通过上次的脚本生成密钥对,并推送到免密登录服务器
    • 结果:可直接对巡检结果查看
  • 相关阅读:
    IOS的系统手机 宽度无法自适应 解决办法
    iframe 设置背景透明
    thinkphp5 常用的2个方法
    thinkphp引入后台模板文件的路径怎么写?
    html的confirm()
    php 如何往数组里添加数据
    thinkphp51 重定向 redirect()
    【Oracle 触发器】(4)触发器应用场景--数据的确认
    【Oracle 触发器】(3)触发器应用场景--复杂的安全性检查
    【Oracle 触发器】(2)触发器的分类(语句级/行级)
  • 原文地址:https://www.cnblogs.com/tcy1/p/12879037.html
Copyright © 2011-2022 走看看