通过curl命令判断url返回状态,以此来确定服务是否正常:
#!/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