Linux系统配置检查脚本

文章介绍了一个用于查看Linux服务器配置和资源使用情况的脚本,包括系统信息、CPU、内存、Swap和网络信息。脚本还输出Top10的内存和CPU占用信息,并能记录到日志文件。建议作为定期任务执行,以提高运维效率。
摘要由CSDN通过智能技术生成

 事情的原委:统计记录机房服务器资源配置等信息,由于没有监控系统,当时就是很繁琐的使用Linux命令查看记录,这导致浪费大量时间浪费在这种繁琐的工作上,时间就是金钱,为了避免以后有类似的事情发生,利用空闲时间把这个脚本写出来了,主要用于查看Linux服务器当前配置以及资源使用情况,有同样需求的小伙伴建议直接拿去复用!!

还实现了输出系统当前占有内存、CPU 最高的Top10信息 方便运维人员判断进程是否正常,每执行一次会打印结果并输出到日志文件中。
内存使用率是使用bc命令计算的 要保证系统已经有bc命令了。

[root@haimati shell]# cat polling.sh 
#!/bin/bash

clear
LogFileName=polling.$(date +%F-%T)
EchoFormat=$(for (( i=0;i<30;i++ ));do echo -n "=";done)
# 系统信息
SystemInfo(){
printf "${EchoFormat} 系统信息 ${EchoFormat}\n"
printf "系统类型: %-10s\n" $(uname -a| awk '{print $NF}')
printf "发行版本: %-10s\n" "$(cat /etc/redhat-release)"
printf "内核信息: %-10s\n" $(uname -r)
printf "主机名称: %-10s\n" $(uname -n)
printf "语言编码: %-10s\n" ${LANG}
printf "当前系统时间: %-10s %-10s\n" $(date +%F) $(date +%T)
printf "当前系统负载: %-4s %-1s\n" $(uptime | awk -F: '{print $5 }'|awk -F, '{print $1,"%"}')
printf "系统运行天数: %-10s\n" $(uptime |awk '{print $3}')
printf "当前在线用户数量: %-3s\n" $(w|tail -n +3|wc -l)
printf "SELinux : %-10s\n" $(grep "SELINUX=[d|e|p]" /etc/selinux/config |awk -F= '{print $2}')
}

# CPU信息
CpuInfo(){
MemonyId=$(top -b -n1|awk 'NR==3'|awk -F, '{print $4}'| cut -c 1-5)
MemonyUse=$(echo "100-${MemonyId}" |bc)
printf "${EchoFormat} CPU信息 ${EchoFormat}\n"
printf "逻辑CPU核数: %-3s\n" $(grep "processor" /proc/cpuinfo|sort -u|wc -l)
printf "物理CPU核数: %-3s\n" $(grep "physical id" /proc/cpuinfo |sort -u|wc -l)
printf "CPU架构: %-3s\n" $(uname -m)
printf "CPU设置型号: %-3s\n" "$(grep "model name" /proc/cpuinfo |awk -F: '{print $2}'|sort -u|cut -c 2-50)"
printf "使用CPU占比: %-1s %-1s\n" ${MemonyUse} %
printf "空闲CPU占比: %-1s %-1s\n" ${MemonyId} %
printf "占用CPU Top10信息:\n\n"
ps -eo user,pid,pcpu,pmem,args --sort=-pcpu  |head -n 10
}

# Memory信息
MemoryInfo(){
printf "${EchoFormat} 内存信息 ${EchoFormat}\n"
printf "总共内存: %-1s\n" $(free -mh|awk "NR==2"|awk '{print $2}')
printf "使用内存: %-1s\n" $(free -mh|awk "NR==2"|awk '{print $3}')
printf "剩余内存: %-1s\n" $(free -mh|awk "NR==2"|awk '{print $4}')
printf "内存使用占比: %-1s %-1s\n" $(free | grep -i mem |awk '{print $6/$2*100}'|cut -c1-5) %
printf "占用内存 Top10信息:\n\n"
ps -eo user,pid,pcpu,pmem,args --sort=-pmem  |head -n 10
}

# Swap信息
SwapInfo(){
printf "${EchoFormat} Swap信息 ${EchoFormat}\n"
printf "总共Swap: %-1s\n" $(free -mh|awk "NR==3"|awk '{print $2}')
printf "已使用Swap: %-1s\n" $(free -mh|awk "NR==3"|awk '{print $3}')
printf "剩余Swap: %-1s\n" $(free -mh|awk "NR==3"|awk '{print $4}')
}

# 网络信息
NetworkInfo(){
printf "${EchoFormat} 网络信息 ${EchoFormat}\n"
printf "IP地址: %-1s %-1s %-1s %-1s\n" $(ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:")
printf "网关: %-1s %-1s %-1s %-1s\n" $(ifconfig -a|grep "netmask"|grep -v 127.0.0.1|awk '{print $4}') 
printf "DNS: %-1s %-1s %-1s %-1s %-1s\n" $(grep "nameserver" /etc/resolv.conf | awk '{print $2}')
if (ping -c2 -w2 www.baidu.com &>/dev/null);then
	printf "网络连通性: %s\n" YES
else
	printf "网络连通性: %s\n" NO
fi

printf "路由表信息:\n\n"
route -n|tail -n +2
}

All(){
SystemInfo 
CpuInfo
MemoryInfo
SwapInfo
NetworkInfo
}
All >${LogFileName};less ${LogFileName}

最后实现效果:

优化:
1、可以做个计划任务每天自动执行,记录当前系统信息;
2、实现每天将巡检结果 发邮件到运维人员邮箱;

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Linux系统的Shell检查脚本是一种用于检查和测试Shell脚本的工具。它可以帮助开发人员和系统管理员发现脚本中的错误和问题,以确保脚本的正确性和可靠性。Shell检查脚本可以检查脚本中的语法错误、变量使用、函数定义、文件操作等方面的问题,并提供详细的错误信息和建议。使用Shell检查脚本可以提高脚本的质量和可维护性,减少错误和故障的发生。 ### 回答2: Linux系统中有一种特殊的脚本称为shell脚本,它可以用来进行一些自动化的检查和处理操作。通过shell脚本,我们可以灵活地进行各种检查任务,节约时间和人力成本。 首先,在创建shell脚本之前,我们需要确定要进行的具体检查任务。可以是检查系统的硬件配置、软件版本、服务状态、文件和目录权限等。然后,我们可以利用shell脚本语言来编写具体的检查脚本。 在Shell脚本中,我们可以使用各种命令和工具来完成检查任务。例如,可以使用grep命令来搜索特定的关键词,使用awk命令来解析文本数据,使用find命令来查找文件和目录等。通过这些命令和工具的组合和使用,我们可以灵活地进行各种检查操作。 此外,我们还可以使用条件语句和循环语句来实现更复杂的检查逻辑。例如,我们可以使用if语句来判断某个条件是否满足,根据不同的情况执行不同的命令。我们还可以使用for循环来遍历某个范围内的数据,执行相同的检查任务。 最后,在运行shell检查脚本之前,我们需要给予执行权限。可以使用chmod命令来修改脚本文件的权限,使其可以执行。然后,我们可以使用./命令来运行脚本。 总之,Linux系统中的shell脚本可以用于进行各种检查任务,通过灵活使用各种命令和工具,结合条件语句和循环语句,可以实现复杂的检查逻辑。这样,我们可以方便地进行系统检查,提高效率和准确性。 ### 回答3: Linux系统中的shell检查脚本是一段用于自动化执行任务和检查系统状态的代码。它可以通过命令行或者定时任务的方式运行,以达到自动监控和报告系统运行情况的目的。 shell检查脚本可以包含各种命令和逻辑判断,用于检查系统的各种指标和状态。比如,可以通过检查磁盘空间占用率、进程运行状态、网络连接情况等来监控系统的健康度。当某个指标或状态达到预设的阈值时,脚本可以发出警报、记录日志或者采取其他预定的操作,以提醒系统管理员或采取相应的处理措施。 shell检查脚本的编写需要掌握相应的shell脚本语法和命令。可以使用if语句、for循环、while循环等控制结构来实现各种判断和循环操作。同时,还可以使用一些命令行工具如grep、awk、sed等来处理和过滤命令的输出。 一个好的shell检查脚本应该具备以下特点:简洁明了的逻辑结构、充分的错误处理机制、适当的日志输出和报警机制、良好的可读性和可维护性等。此外,还可以使用一些第三方工具或库来增强脚本的功能和易用性,如nagios、zabbix等监控系统。 总之,shell检查脚本Linux系统中具有重要的作用,通过自动化的方式检查系统状态和运行情况,可以提高系统的可靠性和可维护性,减少系统管理员的工作压力,并及时发现和解决系统问题,保障系统的稳定运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

神奇的海马体

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

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

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

打赏作者

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

抵扣说明:

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

余额充值