shell日常巡檢指令碼大全

2020-10-31 11:00:47

日常巡檢執行結果

[zhenhao@localhost ~]$ sh shell.sh 
現在登陸的使用者是:zhenhao
語言/編碼:en_US.UTF-8
主機名:localhost.localdomain
閘道器:192.168.72.2
本機ip:192.168.72.7
本機的DNS如下: 
nameserver 223.5.5.5
nameserver 8.8.8.8
shell.sh: line 19: /opt/passwd.md5: Permission denied
顯示OK檔案沒有被串改 /etc/passwd: OK
當前時間:2020-10-29_03:34:30
最後啟動:boot 2020-10-28 19:59
執行時間2:03:34:30 6:59
當前系統:GNU/Linux
系統型別為:3.10.0-1062.el7.x86_64
系統核心資訊為:3.10.0-1062.el7.x86_64
CPU架構: x86_64
發行版本:CentOS Linux release 7.7.1908 (Core)
檢視SELinux狀態:enabled
物理CPU個數: 2
邏輯CPU個數: 4
CPU型號:  AMD Ryzen 5 2500U with Radeon Vega Mobile Gfx
已經安裝的核心包:kernel-3.10.0-1062.el7.x86_64
以下是普通使用者
polkitd chrony putong zhenhao jenkins dockerroot saslauth
記憶體總量為:4060
記憶體剩餘總量為:2846
使用記憶體:796M 
系統磁碟資訊:
磁碟總量為:20G
總共磁碟大小:2.0G
磁碟剩餘總量為:15798408
你不是root使用者
[zhenhao@localhost ~]$ 

日常巡檢的指令碼

#!/bin/bash
#模組(如有需要在匯出來)
function_all()
{

#登陸使用者資訊
echo "現在登陸的使用者是:`whoami`"

#中文en_US.UTF-8
echo "語言/編碼:`echo $LANG`"

#本機的名稱
echo "主機名:`hostname`"

#查詢閘道器
echo "閘道器:`ip route | awk 'NR==1'| awk '{print $3}'`"

#檢視本機ip :ip addr|grep inet|egrep -v 'inet6|127.0.0.1'|awk '{ print $2 }'|awk -F/ '{ print $1 }'
echo "本機ip:`ifconfig | grep broadcast | awk '{print $2}'`"

#檢視本機的DNS
echo "本機的DNS如下: "
echo "`cat /etc/resolv.conf | grep -v '^#'`" 

#把md5sum /etc/passwd碼 生成到/opt.passwd.md5下
md5sum /etc/passwd > /opt/passwd.md5

#顯示OK證明passwd裡沒有被修改過,如果顯示FAILED證明改動過
echo "顯示OK檔案沒有被串改 `md5sum -c /opt/passwd.md5`"

#系統時間
echo "當前時間:`date +%F_%T`"

#系統最後啟動時間
echo "最後啟動:`who -b | awk '{print $2,$3,$4}'`"

#系統執行時間:uptime |awk '{print $1,$3}'|awk -F ',' '{print $1}'
echo "執行時間2:`uptime | awk '{print $1,$3}' | sed 's/,//g'`"

#檢視屬於什麼系統
echo "當前系統:`uname -a | awk '{print $NF}'`"

#系統的型別
echo "系統型別為:`uname -r`"

#系統核心資訊
echo "系統核心資訊為:`uname  -a|awk '{print $3}'`"

#顯示計算機硬體架構
echo "CPU架構: `uname -m`"

#系統的版本號
echo "發行版本:`cat /etc/redhat-release`"

#檢視SELinux狀態
echo "檢視SELinux狀態:`/usr/sbin/sestatus | grep 'SELinux status:' | awk '{print $3}'`"

#檢視物理CPU個數
echo "物理CPU個數: `cat /proc/cpuinfo | grep "physical id" | awk '{print $4}' | sort | uniq | wc -l`"

#檢視邏輯CPU個數
echo "邏輯CPU個數: `cat /proc/cpuinfo | grep "processor" | awk '{print $3}' | sort | uniq | wc -l`"

#CPU的型號資訊
echo "CPU型號: `cat /proc/cpuinfo | grep "model name" | sort | uniq | awk -F":" '{print $2}'`"

#查詢安裝核心資訊
echo "已經安裝的核心包:`rpm -qa|grep -i ^kernel-[1-9]`"

#檢視普通使用者
echo "以下是普通使用者"
echo `grep -v nobody /etc/passwd|awk -F: '$3>=500 {print $1}'`

#記憶體總量以下
echo "記憶體總量為:`free  -m|awk '/Mem/ {print $2}'`"

#記憶體的剩餘總量
echo "記憶體剩餘總量為:`free  -m|awk '/Mem/ {print $4}'`"

#記憶體的使用量
echo "使用記憶體:`free -mh | awk "NR==2"| awk '{print $3}'` "

#磁碟系統資訊
echo "系統磁碟資訊:`fdisk -l 2> /dev/null|grep '^Disk /dev/'|awk -F, '{ print $1 }'`"

#磁碟總量:lsblk |awk '/disk/{print $4}'  也可以如下:
echo "磁碟總量為:`lsblk |awk '/disk/{print $4}'`"

#磁碟總共的大小
echo "總共磁碟大小:`df -hT | awk "NR==2"|awk '{print $3}'`"

#磁碟剩餘的總量
sum=(`df -T|grep -v "tmpfs"|sed '1d'|awk '{print $5}'`)
int=0
for ((i=0;i<`echo ${#sum[@]}`;i++))
do
        int=`expr  $int + ${sum[$i]}`
done
echo "磁碟剩餘總量為:$int"

# 設定檢測環境變數。
source /etc/profile
export LC_ALL=C
TMP_FILE=/tmp/check_tmp_file
CHECK_ID=$(id|sed -e 's/(.*$//' -e 's/^uid=//')
if [ $CHECK_ID -ne 0 ]
then
    echo -e "你不是root使用者"
exit 0
fi

#網路是否可以ping通
ping -c 4 www.baidu.com > /dev/null
if [ $? -eq 0 ];then
    echo "網路連線:正常"
else
    echo "網路連線:失敗"
fi

}


function_all