Linux服务器Crontab定时任务配置

1、检查linux系统是否有crontab

rpm -qa | grep crontab

2、如果未安装进行安装

yum -y install vixie-cron
yum -y install crontabs

3、crontab启动、停止、运行状态

systemctl start crond   启动
systemctl stop crond    停止
systemctl status crond  查看运行状态
systemctl restart crond  重新启动

4、查看crontab下有无定时任务

crontab -l 

5、新增定时任务

crontab -e

执行命令后输入内容填写任务执行频率、任务脚本:

*/1 * * * * sh /task/task.sh >> /task/task.log   # 每分钟执行task.sh 

6、编写Shell任务脚本

status=$(curl -s -o /dev/null -w "%{http_code}" http://216.83.45.4:3087/follow/isAlive.php)
# echo $status >> task.log
success=200
if (($status == $success));
then
echo $(date "+%Y-%m-%d %H:%M:%S") ":服务正常"
echo $(date "+%Y-%m-%d %H:%M:%S") ":服务正常" >> task.log
fi

if (($status != 200));
then
echo $(date "+%Y-%m-%d %H:%M:%S") ":服务异常,准备重启..."
echo $(date "+%Y-%m-%d %H:%M:%S") ":服务异常,准备重启..." >> task.log
source /001/java2010/reload.sh > /dev/null 2>&1 &
fi

7、重启crontab

systemctl restart crond

此时任务就在按照编写的频率执行了。可以定时重启系统,定时删除日志,定时检查服务是否正常运行等

8、如果想要每日生成新的日志文件,可以改变下面两个地方

1、shell任务脚本

status=$(curl -s -o /dev/null -w "%{http_code}" http://103.233.9.120:3087/follow/isAlive.php)

date=$(date "+%Y-%m-%d")
if [ -f "./task-${date}.log" ];then
echo "文件已存在" > /dev/null 2>&1 &
else
echo "文件不存在,正在创建..."
touch task-${date}.log
fi

success=200
if (($status == $success));
then
echo $(date "+%Y-%m-%d %H:%M:%S") ":服务正常"
fi

if (($status != 200));
then
echo $(date "+%Y-%m-%d %H:%M:%S") ":服务异常,准备重启..."
source /001/java2010/reload.sh > /dev/null 2>&1 &
fi

2、crontab定时配置

*/1 * * * * sh /task/task.sh >> /task/task-$(date +""\%Y-\%m-\%d"").log

9、shell脚本中发送邮件报警

1、安装邮件mailx

yum install mailx

2、脚本中配置

echo "测试服务器异常,正在重启!" | :mail -s "Subject" python_***@163.com > /dev/null 2>&1 &

 

posted @ 2024-01-30 17:27  佛祖让我来巡山  阅读(30)  评论(0编辑  收藏  举报

佛祖让我来巡山博客站 - 创建于 2018-08-15

开发工程师个人站,内容主要是网站开发方面的技术文章,大部分来自学习或工作,部分来源于网络,希望对大家有所帮助。

Bootstrap中文网