【shell脚本】shell脚本之企业日常机器巡检脚本(进阶实战一)

恭喜你,找到宝藏博主了,这里会分享shell的学习整过程。

shell 对于运维来说是必备技能之一,它可以提高很多运维重复工作,提高效率。

shell的专栏,我会详细地讲解shell的基础和使用,以及一些比较常用的shell技巧。

有需要的可以从这里开始,可以教会你如何去进行shell脚本的编写,提高你的工作效率。

从第一篇基础开始:
【shell脚本】shell脚本之概念、运行方式、变量的使用、交互式脚本、运算(shell脚本基础学习一)_向往风的男子的博客-CSDN博客

#!/bin/bash
echo "##############check system info###############"
version=`cat /etc/redhat-release | awk '{print $4}'`
system=`cat /etc/redhat-release | awk '{print $1}'`
echo "current system:$system"
echo "current system version:$version"
kernel=`uname -r`
echo "kernel:$kernel"
dtime=`date`
echo "current time:$dtime"
rtime=`cat /proc/uptime | awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统已运行:%d天%d时%d分%d秒\n",run_days,run_hour,run_minute,run_second)}'`
echo "runned time:$rtime"
btime=`who -b | awk '{print $2,$3}'`
echo "the first system boot:$btime"
echo "hostname:$HOSTNAME"
echo "###############check network info############"
ip=`ifconfig eth0 | awk '/inet /{print $2}'`
echo "ip:$ip"
route=`route -n | awk '/UG/{print $2}'`
echo "GW:$route"
dns=`cat /etc/resolv.conf | awk '/nameserver/{print $2}'`
echo "dns:$dns"
ping -c 1 8.8.8.8 > /dev/null 
if [ $? -eq 0 ];then
	echo "network:OK"
else 
    echo network:"not OK"
fi
echo "###############hardware info###################"
pcpu=`cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l`
echo "当前主机物理cpu个数:$pcpu"
lcpu=`cat /proc/cpuinfo| grep "processor"| wc -l`
echo "当前主机逻辑cpu个数:$lcpu"
xcpu=`cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq `
echo "当前主机cpu的型号:$xcpu"
core=`cat /proc/cpuinfo| grep "cpu cores"| uniq`
echo "当前主机cpu的核数:$core"
total=`free -h | awk '/Mem/{print $2}'`
echo "当前主机总内存:$total"
idel=`free -h | awk '/Mem/{print $4}'`
echo "当前主机空闲内存:$idel"
p=`lsblk | awk 'NR==2{print $4}'`
echo "当前主机的磁盘总空间容量:"$p
q=`df -h | awk 'NR==2{print $4}'`
echo "当前主机的磁盘剩余空间容量:"$q
b=`free -h | awk 'NR==3{print $2}'`
echo "当前主机的总SWQP空间:$b"
echo "###############secure info#####################"
usercount=`who | wc -l`
echo "当前的登录用户:$usercount"
if [ $usercount -gt 10 ];then
  echo "登录用户数量过多"
else 
  echo "当前登录用户数量正常"
fi
userl=`cat /etc/passwd | wc -l`
if [ $userl -gt 51 ];then
 	echo "用户数量异常"
else 
	echo "用户数量正常"
fi
相关推荐
hhzz28 分钟前
ansible自动化运维实战--script、unarchive和shell模块(6)
运维·自动化·ansible
蘑菇丁29 分钟前
ansible 批量按用户名创建kerberos主体,并分发到远程主机
大数据·服务器·ansible
幻想编织者33 分钟前
Ubuntu实时核编译安装与NVIDIA驱动安装教程(ubuntu 22.04,20.04)
linux·服务器·ubuntu·nvidia
利刃大大1 小时前
【Linux入门】2w字详解yum、vim、gcc/g++、gdb、makefile以及进度条小程序
linux·c语言·vim·makefile·gdb·gcc
阿狸的家2 小时前
ovs实现lb负载均衡
运维·云计算·负载均衡·ovs
C嘎嘎嵌入式开发2 小时前
什么是僵尸进程
服务器·数据库·c++
乙己4077 小时前
计算机网络——网络层
运维·服务器·计算机网络
飞行的俊哥7 小时前
Linux 内核学习 3b - 和copilot 讨论pci设备的物理地址在内核空间和用户空间映射到虚拟地址的区别
linux·驱动开发·copilot
hunter2062069 小时前
ubuntu向一个pc主机通过web发送数据,pc端通过工具直接查看收到的数据
linux·前端·ubuntu
qzhqbb9 小时前
web服务器 网站部署的架构
服务器·前端·架构