系统布置几台服务器,PUPPET-通过配置服务器对多台服务器巡检

该脚本用于自动化监控Linux系统的关键信息,包括日期目录管理、主机名、系统版本、网络配置、负载均衡、内存使用、磁盘空间、进程资源、登录用户、系统运行时间、账户检查、开放端口、服务检查和防火墙配置。生成的报告详细记录了系统的各项指标,便于系统管理和故障排查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash

#变量需先声明才能使用

shopt -s -o nounset

date1=`date +%Y%m%d`

# mkdir Directory

#判断/mnt/backup下是否存在已当前日期的文件夹,如果没有则创建,有则跳过

if [ -e /mnt/backup/$date1 ] ; then

:

else

mkdir -p /mnt/backup/$date1

fi

# Hostname

#定义主机名,生成文件调用

HostCmd="/bin/hostname"

HostName=$($HostCmd)

Name=${HostName%%.*}

# Operatig system checks

#检测系统当前版本

# Version

check_version (){

echo "Sytem Version:"

kernel=`uname -a | awk '{print $3}'`

hostname=`uname -a | awk '{print $2}'`

bit=`uname  -a | awk '{print $14}'`

echo "System Kernel:" $kernel

echo "System Hostname:" $hostname

#判断当前系统版本位数

if [ $bit = x86_64 ]; then

echo "System Bit: 64位."

else

echo "System Bit: 32位."

fi

}

# Network

#定义网络配置,截取ip地址,mac地址,rx,tx信息,忽略其他信息

check_network () {

echo "System Network:"

ip_addr=`ifconfig -a | grep eth0 -C 8 | grep inet | awk '{print $2}' | awk -F: '{print $2}'`

ip_mac=`ifconfig -a | grep eth0 | awk '{print $5}'`

ip_rx_packets=`ifconfig  | grep eth0 -C 8 | grep "RX packets"`

ip_tx_packets=`ifconfig  | grep eth0 -C 8 | grep "TX packets"`

ip_rx_bytes=`ifconfig  | grep eth0 -C 8 | grep "RX bytes"`

echo "IP_add:" $ip_addr

echo "IP_MAC:" $ip_mac

echo "IP_RX:" $ip_rx_packets

echo "IP_TX:" $ip_tx_packets

echo "IP_RX_Bytes:" $ip_rx_bytes

}

# Crontab check

#检测任务计划

check_crontab () {

echo "Crontab check:"

crontab -l

}

# Performance Check

# Average system load

#检测负载,检查cpu数量,型号及主频

check_load () {

echo "Average system load:"

W="/usr/bin/w"

show_loading=$($W | head -1)

L1=$(echo $show_loading | awk '{print $10}')

L5=$(echo $show_loading | awk '{print $11}')

L15=$(echo $show_loading | awk '{print $12}')

L1=${L1%,*}

L5=${L5%,*}

cpu_sl=`cat /proc/cpuinfo | grep processor | wc -l`

cpu_xh=`cat /proc/cpuinfo  | grep name | cut -f2 -d: | uniq -c`

cpu_zp=`cat /proc/cpuinfo  | grep name | cut -f2 -d: | uniq -c | awk '{print $8}'`

echo "1、5、15分钟系统的平均负载为:" $L1 $L5 $L15

echo "CPU 数量为:" $cpu_sl

echo "CPU 型号:"  $cpu_xh

echo "CPU主频:"  $cpu_zp

}

# Memory usage

#检查内存,列出总内存,可用内存及占用百分比,检查内存插槽

check_memory () {

Memslot=`dmidecode | grep -A16 "Memory Device$"  | grep Memory | wc -l`

echo "Memory usage:"

MemFree=`free -m | grep Mem | awk -F: '{print $2}' | awk '{print $3}'`

MemBuffers=`free -m | grep Mem | awk -F: '{print $2}' | awk '{print $5}'`

MemCached=`free -m | grep Mem | awk -F: '{print $2}' | awk '{print $6}'`

MemTotal=`free -m | grep Mem | awk -F: '{print $2}' | awk '{print $1}'`

#计算可用内存

MemSY=`expr $MemFree \+ $MemBuffers \+ $MemCached`

#计算剩余内存百分比%

MemB=`awk 'BEGIN{printf "%.2f%\n",'$MemSY/$MemTotal\*100'}'`

echo "服务器共有" $Memslot "插槽","系统总内存为(M):" $MemTotal ",可用内存为(M):"$MemSY ",剩余百分比为:" $MemB

}

# Disk Space

#检查分区状态

check_disk () {

echo "Disk Space:"

df -h

}

# Process Resource

#检查ps进程,并排除tty及pts信息

check_process () {

echo "Process Resource:"

ps -ef  | grep -v pts | grep -v tty*

}

# Security check

#检查当前登录用户

# Currently logged in user

check_who () {

echo "Currently logged in user"

who

}

# System uptime

#检查系统运行时间

check_uptime () {

echo "System uptime:"

u=`uptime | awk '{print $3}'`

echo "系统运行时间为:$u天"

}

# System Account check

#检查系统账户,剔除nologin用户

check_account () {

echo "Sytem Account check:"

cat /etc/passwd | grep -v nologin

}

# System open ports

#检查服务器开放端口

check_ports () {

echo "Sytem open ports:"

netstat -an | grep LISTEN

}

# System chkconfig

#检查chkconfig,只列出终端3启用状态的。

check_chkconfig  () {

echo "Sytem chkconfig:"

chkconfig --list | grep 3:启用

}

# System Iptables

#检查防火墙配置

check_iptables () {

echo "System Iptables:"

iptables -L

}

for i in check_version check_network check_crontab check_load check_memory check_disk check_process check_who check_uptime check_account check_ports check_chkconfig check_iptables

do

echo "--------------------------------------------------------------------------------------------------------------------"

$i

done > /mnt/backup/$date1/$date1.$HostName.doc  #生成报告

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值