不知道你有没有这样的行为,就是打完一段字然后内心告诉你不合适,删除掉之后又不知该写点什么?
shell学习第一天,书写一个简单的shell检测本机的相关信息。其实本来的想法是写一个自动安装zabbix server端的bash,但是好像跑偏了,当然无所谓了,跑偏就跑偏了,下次承接上一次的任务继续就很ok了。
脚本以及执行结果如下,可自行参考或者指出其中不当之处。
#!/bin/bash
RED='\E[1;31m' #红
GREEN='\E[1;32m' #绿
YELOW='\E[1;33m' #黄
BLUE='\E[1;34m' #蓝
PINK='\E[1;35m' #粉红
RES='\E[0m'
echo -e "${BUUE} 计算机开始自检系统相关信息,预计时间30s,开始自检...${RES} "
echo "检测系统版本..."
cat /etc/redhat-release
echo " 检测内存使用情况... "
free -m
echo "检测本地tcp/ip协议..."
ping -c 3 -i 0.2 -W 3 127.0.0.1 &> /dev/null
if [ $? -eq 0 ]
then
echo -e "${GREEN} 本地主机tcp/ip协议正常${RES} "
else
echo " 本地主机tcp/ip协议栈出现错误 "
fi
ping -c 3 -i 0.2 -W 3 $1 www.baidu.com &> /dev/null
if [ $? -eq 0 ]
then
echo -e "${GREEN} 外部网络连接正常${RES} "
else
echo " 外部网络连接失败,正在检测失败原因... "
echo " 判断连接失败节点... "
traceroute www.baiu.com
fi
echo " 检测本地网口地址 "
ifconfig | grep -A 1 -i ^eth0
if [ $? -eq 0 ];then
echo "-------------------------------------------------------------"
else
ip addr | grep -A 2 -i ^eth0
fi
echo "本地开放端口检测 \n-------------------------------------------"
nmap -sS -p 1-1024 172.25.30.66 | grep -A 20 -i ^port
echo "---------- ----------------------------------------------- "
echo "检测本网段可通信主机..."
uncon=0
con=0
for ((num=60;num<=70;num++)); do
ping -c 3 -i 0.2 -W 3 172.25.30.$num &> /dev/null
if [ $? -eq 0 ]; then
echo -e "${GREEN} the host 172.25.30.$num on-line ${RES}"
let con+=1
else
echo " the host 172.25.30.$num not-line "
let uncon+=1
fi
done
echo "---------------------------------------------------"
echo " on-line host sum is $con "
echo " not-line host sum is $uncon "