首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用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发送邮件。

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

测试邮件是否发送 实测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 ! ! !" |

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180516G1YHJ400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券