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 &