linux 定时任务检查服务器是否正常

本文介绍了一种利用curl命令检查URL状态并结合shell脚本和Java程序实现邮件报警的方法。该方法能够自动检测目标网站的状态,并在检测到特定错误(如502错误)时发送报警邮件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过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 lym6520@qq.com 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 lym6520@qq.com 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值