用LINUX的shell脚本来监测服务器 查看服务器是否存活

Posted 波妞之家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用LINUX的shell脚本来监测服务器 查看服务器是否存活相关的知识,希望对你有一定的参考价值。

用LINUX的shell脚本来监测服务器 ,原理就是用PING命令监测服务器。希望能对一些朋友有帮助。视频录制完成后发现有一步没做所以在这里补上,完成后运行 chmod a+x ping.sh #给ping.sh可执行权限。才能执行。



下面是用到的代码

shell脚本检测主机是否存活

1.Step1.安装sendmail来发邮件

# yum -y install sendmail

# /etc/init.d/sendmail start

# chkconfig sendmail on

并配置sendmail服务器,在/etc/mail.rc文件最后添加以下文本:

  vi /etc/mail.rc

  set smtp-auth-user=xxxxxx     #注:外部smtp服务器认证的用户名

  set smtp-auth-password=********       #注:密码,此处使用网易邮箱授权密码

  set smtp-auth=login                              #注:邮件认证的方式

退出后,重启sendmail服务:

  service sendmail restart

测试sendmail发送邮件。

  echo "sendmail测试" |mail -s "Linux外部邮箱发信测试" zzzzzz@qq.com

2.Step2.安装邮件客户端

# yum -y install mutt

2.1添加发件人信息,如下

# vim /etc/Muttrc

set charset="utf-8"           #设置发邮件编码

set envelope_from=yes

set rfc2047_parameters=yes    #解决附件乱码问题

set realname="报警"           #发件人别名

set use_from=yes              #指定是否显示别名

新建一个 mutt.sh 脚本

#!/bin/bash

echo  'tes2222222'  |  mutt  zzzzzz@qq.com  -s  "测试"

测试邮件是否发送   实测163的邮箱 发送不出去 会被退回 在垃圾邮件里

3.Step3.Ping主机状态脚本————————————————————这开始写脚本

# vim ping.sh

#!/bin/bash

#

DATE=`date +%F_%H:%M`

LOG=/root/ping-monitor/ping.log

IP=/root/ping-monitor/ip.txt

CLEAN=`cat $LOG | wc -l`

for i in $(cat $IP);

do

ping -c 2 $i &>/dev/null

if [ $? -eq 0 ];then

echo "$DATE $i Host ping is success." >> $LOG

else

echo -e "Date : $DATE\nHost : $i\nProblem : Ping is failed, Please check ! ! !" |

mutt -s "Ping" xxx@163.com

fi

done

#如果日志文件超30条,则清空

if [ $CLEAN -ge 30 ];then

echo "" > $LOG

fi

linux下执行.sh文件的方法

chmod a+x test.sh #给test.sh可执行权限

Step4.添加任务计划

# crontab -e

*/1 * * * * /bin/bash /root/ping-monitor/ping.sh

安装crontab:

yum install crontabs

服务操作说明:

/sbin/service crond start //启动服务

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload //重新载入配置

/sbin/service crond status //启动状态查询

查看crontab服务是否已设置为开机启动,执行命令:

ntsysv

加入开机自动启动:

chkconfig --add crond

.使用实例

实例1:每1分钟执行一次command

命令:

* * * * * command

实例2:每小时的第3和第15分钟执行

命令:

3,15 * * * * command

实例3:在上午8点到11点的第3和第15分钟执行

命令:

3,15 8-11 * * * command

实例4:每隔两天的上午8点到11点的第3和第15分钟执行

命令:

3,15 8-11 */2 * * command

实例5:每个星期一的上午8点到11点的第3和第15分钟执行

命令:

3,15 8-11 * * 1 command

实例6:每晚的21:30重启smb

命令:

30 21 * * * /etc/init.d/smb restart

实例7:每月1、10、22日的4 : 45重启smb

命令:

45 4 1,10,22 * * /etc/init.d/smb restart

实例8:每周六、周日的1 : 10重启smb

命令:

10 1 * * 6,0 /etc/init.d/smb restart

实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb

命令:

0,30 18-23 * * * /etc/init.d/smb restart

实例10:每星期六的晚上11 : 00 pm重启smb

命令:

0 23 * * 6 /etc/init.d/smb restart

实例11:每一小时重启smb

命令:

* */1 * * * /etc/init.d/smb restart

实例12:晚上11点到早上7点之间,每隔一小时重启smb

命令:

* 23-7/1 * * * /etc/init.d/smb restart

实例13:每月的4号与每周一到周三的11点重启smb

命令:

0 11 4 * mon-wed /etc/init.d/smb restart

实例14:一月一号的4点重启smb

命令:

0 4 1 jan * /etc/init.d/smb restart

实例15:每小时执行/etc/cron.hourly目录内的脚本

命令:

01 * * * * root run-parts /etc/cron.hourly

说明:

run-parts这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是目录名了

linux怎样查看 某项服务 当前启动状态

#service servicename  status

比如查看防火墙:#service iptables status

#chkconfig --list |grep 服务名

比如查看telnet:#chkconfig --list |grep telnet

0 6 * * * //root/script/ss.sh >> /root/mylog.log 2>&1


以上是关于用LINUX的shell脚本来监测服务器 查看服务器是否存活的主要内容,如果未能解决你的问题,请参考以下文章

Shell脚本完成用户磁盘空间监测报告

1python脚本——监测服务器状态

查看Linux服务器网卡流量小脚本shell

Linux下Shell脚本实战之监测磁盘空间

linux服务器系统负载监控-shell脚本

如何在Linux shell中获取本机主机名