批量检查多台服务器的情况

shell脚本(check_machine.sh)
(有一个前提条件是本机对其他需要检查的机器是已经通过ssh免密登陆的了,否则的话执行脚本后会提示输入root密码。对多台服务器进行免密登陆的步骤

#!/bin/bash

dir_home=/root/test
filename=test.txt



num=`cat $1 | wc -l`
Date=`date +%Y-%m-%d%t%H:%M:%S`     #显示当前时间,格式:2019-10-21 21:41:47

echo -e "\033[034m "$Date"  \033[0m"

for ((i=1;i<="$num";i++))
do
        host_name=`sed -n "$i"p $dir_home/$filename | awk '{print $1}'`
        host_ip=`sed -n "$i"p $dir_home/$filename | awk '{print $2}'`
        check_cpu=`ssh "$host_ip" top -bn 1 -i -c | grep Cpu | awk -F, '{print $4}' | awk '{print $1}'`
        check_mem=`ssh "$host_ip" free -m | grep M | awk '{print $4}'`
        check_disk=`ssh "$host_ip" df -h | head -2 | tail -1 | awk '{print $5}'`
        check_server=`ssh "$host_ip" ss -luntp | awk '{print $7}' | awk -F\" '{print $2}' | grep -v ^$ | sort -u`

#####################功能区###################################  
        echo -e "\033[036m ################################################################################# \033[0m"
        echo -e "\033[032m "$host_name" 主机 "$host_ip" 的情况如下: \033[0m"
        echo -e "\033[035m CPU空闲率: $check_cpu \033[0m"
        echo -e "\033[034m 空闲内存的大小: $check_mem \033[0m"
        echo -e "\033[031m 已用磁盘空间: $check_disk \033[0m"
        echo -e "\033[033m 该机器开启的服务: \n $check_server \033[0m"
done                     

服务器信息表(test.txt)

########因为是个人服务器,所以真实ip就不再这里放出来了#####
big_cat 127.0.0.1
hongkong 10.10.10.10
vultr 11.11.11.11

执行结果(bash check_machine.sh test.txt)
在这里插入图片描述

可以使用定时任务进行自动执行该脚本,并且将结果写在一个logs文件中

crontab -e

59 8,11,14,17,20,21 * * * echo " " >> /root/logs
0 9,12,15,18,21,00,3,6 * * * bash /root/test/check_machine.sh /root/test/test.txt >> /root/logs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值