传送门:Linux crontab定时任务 - RelaxHeart网/Tec博客
场景
在Java web中定时任务的使用场景很多,最常用的两种的实现方式:Elastic Job(当当定时任务框架)、@Scheduled(基于spring注解或XML)。
前几天遇到一个这样的需求:"linux 下定时任务执行 spark程序,处理指定位置下的增量数据"
简单分析后由两部分组成:linux下开启一个定时任务 + spark数据处理程序包。其中linux下开启定时任务这个是第一次接触,在网上百度一圈下来,发现最好用且最方便的是linux下的crontab工具。具体使用如下:
corntab安装
分别执行下面两个安装指令:
# vixie-cron 软件包是 cron 的主程序
yum -y install vixie-cron
# crontabs 软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序
yum -y install crontabs
配置定时任务
准备你的sh脚本
例:我在/home/admin/offline-job目录下创建一个start.sh可执行脚本:
image.pngstart.sh内容由你自己定义:
image.png定时任务配置
安装crontab后执行crontab -e进入定时任务配置页:
crontab -e
image.png
已我这个配置示例来看
*/1 * * * * /home/admin/offline-job/start.sh >> /home/admin/offline-job/spark.log &
----------- ---------------------------- ------------------
| | |
|-------------|-----corn表达式(这里没分钟一次) |
|------——-需要定时触发的脚本 |
|----日志输出
定时任务的启动
crontab的启动关闭方式:
# 启动服务
service crond start
# 关闭服务
service crond stop
# 重启服务
service crond restart
# 重新载入配置
service crond reload
# 查看crontab服务状态
service crond status
service crond start 启动我的定时任务,观察日志:
image.pngtail -f spark.log 查看日志执行结果:
image.png每分钟打印一次日志,说明cron job正常启动。
网友评论