#!/bin/bash STATE=`curl --head lym6520.iteye.com | awk 'NR==1' | awk '{print $2}'`; if [ "$STATE" -eq "502" ] ;then echo "echo "报警" "http error 502" ${date+"%y-%m-%d %H:%M:%S"}"; java -jar /test/m-tools-sendMail.jar [email protected] lym6520.iteye.com 502 elif [ "$STATE" -ne "502" ] && [ "$STATE" -eq "200" ] && [ "$STATE" -eq "302" ] ;then echo "报警" "Web Server Stop Working" ${date+"%y-%m-%d %H:%M:%S"} java -jar /test/m-tools-sendMail.jar [email protected] lym6520.iteye.com 服务器挂了 fi
通过调用java方法来发送邮件or短信提醒(加*号为隐私数据)
这里给出发送邮件demo:
package com.m; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.HtmlEmail; import java.util.Date; /** * Hello world! * */ public class App { private static final String DEFAULT_SMTP = "smtp.qq.com";//默认邮箱服务器SMTP地址 private static final String DEFAULT_FROM = "******@qq.com"; //发送邮箱 private static final String DEFAULT_USERID = "******@qq.com"; //用户名-密码。分别为发件人在邮件服务器上的注册名称和密码 private static final String DEFAULT_PASSWORD = "******"; //用户名-密码。分别为发件人在邮件服务器上的注册名称和密码 private static final String DEFAULT_CHARSET = "utf-8"; public static void main( String[] args ){ String[] addToArr = args[0].split(","); String title = args[1]; String htmlMsg = args[2]; int len = args.length; try { // 不要使用SimpleEmail,会出现乱码问题 HtmlEmail email = new HtmlEmail(); // 这里是发送服务器的名字 email.setHostName(len >=8 ? args[3] :DEFAULT_SMTP); // 编码集的设置 email.setCharset(len >=8 ? args[4] :DEFAULT_CHARSET); // 收件人的邮箱 for (String addTo : addToArr) { email.addTo(addTo); } // 发送人的邮箱 email.setFrom(len >=8 ? args[5] :DEFAULT_FROM); // 如果需要认证信息的话,设置认证:用户名-密码。分别为发件人在邮件服务器上的注册名称和密码 email.setAuthentication(len >=8 ? args[6] :DEFAULT_USERID, len >=8 ? args[7] :DEFAULT_PASSWORD); email.setSubject(title); // 要发送的信息 email.setHtmlMsg(htmlMsg); email.setSentDate(new Date()); // 发送 email.send(); } catch (EmailException e) { } } }
方式一:使用程序默认设置好的邮箱发送:
java -jar /test/m-tools-sendMail.jar [收件人邮箱] [标题] [内容]
方式二:指定发送账号信息
java -jar /test/m-tools-sendMail.jar [收件人邮箱] [标题] [内容] [默认邮箱服务器SMTP地址] [编码格式] [发送邮箱] [发送账号] [发送密码]
附件jar包可直接运行,jkd1.6下编译(有邮箱账号信息哦,不许耍赖偷了丫)
通过crontab命令来定时扫描服务器是可正常访问
通过以下命令加入定时任务信息
crontab -u root -e
写入如下内容(即每5分钟执行一次):
*/5 * * * * /test/server_status_check.sh
可以使用命令 crontab -l 来查看任务信息
最后重启下定时任务,让命令生效
/etc/init.d/crond restart