shell脚本

Posted luowendy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本相关的知识,希望对你有一定的参考价值。

#!/bin/bash
echo "1. 对服务器硬件的监控"
echo " 能够对服务器CPU进行监控,并输出CPU的信息"
cpu=`cat /proc/cpuinfo |head -n 17`
echo "CPU的信息为$cpu"
echo "========================================="

echo " 2.能够对服务器内存进行监控,并输出内存剩余使用率信息"
mem_total=`free -m |grep m|awk ‘{print $2}‘`
echo "内存总量$mem_total"
mem_used=`free -m |grep m|awk ‘{print $3}‘`
echo "内存使用$mem_used"
mem_free=`free -m |grep m|awk ‘{print $4}‘`
echo "内存剩余$mem_free"
residue=`free -m |grep m|awk ‘{print $4/$2*100"%"}‘
echo "内存剩余使用率$residue"`
echo "========================================="


echo "3.能够对服务器网络进行监控,检测网络是否通畅,并输出结果"
ping -c 1 www.baidu.com >/dev/null
if [ $? -eq 0 ];then
   echo "network it‘s ok"
else
   echo "please check network!!!!"
fi
echo "========================================="
echo "4.能够对服务器服务进行监控,比如ftp服务,mysql服务,并输出结果"
netstat -anpt | grep mysql
if [ $? -eq 0 ];then
   echo "mysql 正在启动"
else
   echo "mysql 没有启动"
   systemctl start mariadb
   echo "mysql 开启了"
fi
echo "========================================="


echo "5.能够对文件系统进行查,查看使用率是否达到80%,并输出结果"
dh_used=`df -h |awk ‘{if ($5>80) print $5}‘ |sed ‘1d‘`
echo "使用率达到80的为:$dh_used"
echo "========================================="



echo "6.能够在出现异常的时候通过邮件发送报警信息"
df -h |awk ‘{if ($5>80) print $5}‘ |sed ‘1d‘
if [ $? -eq 0 ];then
   echo "使用率没有超过的80%"
else
   echo "使用率超过80%"
   yum -y install mailx > /dev/null
echo "please check disk"| mail -s "出现异常" 1423593121@qq.com
fi
echo "========================================="


echo "7.对磁盘读写进行监控,并输出结果"
yum -y install sysstat >/dev/null
iostat
echo "========================================="



echo "8.对环境变量进行监控并输出结果"
echo "将环境变量重新定向到目标"
env >/opt/env
md5sum /opt/env >/opt/env.md5
md5sum -c /opt/env.md5 >/dev/null
if [ $? -eq 0 ];then
   echo "环境变量没有发生变化"
else
   echo "环境变量发生变化,快及时处理"
fi
echo "========================================="
echo "9.检查操作系统的kernel信息并输出结"
kernel=`uname -a`
echo "系统的kernel的信息为:$kernel"
echo "========================================="


echo "10.检查操作系统版本,并输出结果"
linux=`cat /etc/redhat-release`
echo "系统版本信息为: $linux"
echo "========================================="


echo "11.查看网络统计信息并输出结果"
addr=`ifconfig ens33 |grep netmask |awk ‘{print $2}‘`
echo "网络ip为$addr"
RX=`ifconfig ens33 |grep RX |head -n1|awk ‘{print $6}‘|awk -F ‘(‘ ‘{print $2}‘`
echo "网卡流入量$RX"
TX=`ifconfig ens33 |grep TX |head -n1|awk ‘{print $6}‘|awk -F ‘(‘ ‘{print $2}‘`
echo "网卡流出量$TX"
echo "========================================="


echo "12.查看所有进程,并输出信息"
ps aux
echo "========================================="
echo "9.检查操作系统的kernel信息并输出结"
kernel=`uname -a`
echo "系统的kernel的信息为:$kernel"
echo "========================================="

echo "13.检测公司网站www.baidu.com是否在运行,在运行则提示信息"
curl=`curl -l -m 10 -o /dev/null -s -w %{http_code} www.baidu.com`
if [ $curl -eq 200 ];then
    echo "网站正常"
else
    echo "网站不正常"
fi
echo "========================================="

  

以上是关于shell脚本的主要内容,如果未能解决你的问题,请参考以下文章

用于确保在任何给定时间仅运行一个 shell 脚本的 shell 片段 [重复]

常用python日期日志获取内容循环的代码片段

shell脚本引用expect

Shell脚本切割日志

Eclipse 中的通用代码片段或模板

Python如何调用别人写好的脚本