Linux系列--定时任务设置

2024-06-04 11:27:31 浏览数 (2)

一、设置定时任务表达式

1.关于crontab 命令
代码语言:javascript复制
crontab -l 
2.查看当前已设置的定时任务命令
代码语言:javascript复制
crontab -e 
3.编辑或新增定时任务命令
代码语言:javascript复制
crontab -i 	

删除定时任务,提示用户确认删除,避免出错

二、案例说明

用在linux环境下调度kettle脚本为案例说明在Linux环境下做定时任务的过程

1.新建shell脚本

新建一个test.sh脚本

2.编辑test.sh脚本

脚本内容如下:

代码语言:javascript复制
source /etc/profile  &&
/home/kettle/data-integration/kitchen.sh -file=/home/kettle/TEST_JOB/TEST_JOB.kjb >> /home/kettle/ETLLOG2/test_$(date  %Y%m%d%H%M%S).log 
3.编辑定时任务调度脚本

编辑在Linux环境下的定时任务调度脚本,例如:

代码语言:javascript复制
*/1 * * * * /home/kettle/TEST_JOB/test.sh  

如上表示,每一分钟自动调度一次test.sh脚本

定时任务调度kettle脚本案例:

代码语言:javascript复制
--每天0点-23点  半点时候执行
30 0-23 * * * /home/kettle/ETL_CP_RISK_CONTROL/ETL_MAIN_JOB.sh  
--每天0点-23点  每隔半小时执行
 */30 0-23 * * * /home/kettle/ETL_CP_RISK_CONTROL/ETL_MAIN_JOB.sh
每天 每隔5分钟执行一次
*/5 * * * * /home/kettle/ETL_CP_RISK_CONTROL/ETL_MAIN_JOB.sh

三、在linux系统创建定时任务

1.登录Linux系统
2.查看定时任务列表

使用如下命令查看现有已设置的定时任务列表

代码语言:javascript复制
crontab -l 
3.创建定时任务

使用crontab -e命令创建定时任务

代码语言:javascript复制
crontab -e

编辑完成后保存退出(:wq)

4.注意点

注意点 (本人已踩坑) 新建了定时任务后,可能会不生效,原因可能是命令要调度的脚本无权限,故需要先给要调度的脚本设置权限:

代码语言:javascript复制
chmod  x /home/kettle/TEST_JOB/test.sh
chmod  w /home/kettle/TEST_JOB/test.sh

至此,问题解决,正常调度!

四、corn时间表达式

这里给大家普及一点关于corn时间表达式的定义 关于特殊符号含义

符号

含义

*

表示“每”的意思,如 00 00 cmd表示每月每周每日的 00:00 整点执行

-

表示时间范围分隔符,如21-23,代表每天的21、22、23点

逗号,表示分割时段,如30 1,2,3 * cmd表示每天的1、2、3点的半点执行

/n

n表示可以整除的数字,每隔n的单位时间,如每隔10分钟表示/10* cmd

代码语言:javascript复制
0 * * * *    每小时执行,每小时的整点执行
1 2 * * 4    每周执行, 每周周四凌晨2点1分执行
1 2 3 * *    每月执行,每月的3号的凌晨2点1分执行
1 2 3 4 *    每年执行,每年4月3日凌晨2点1分执行
1 2 * * 3,5  每周周3和周5的凌晨2点1分执行
* 13,14 * * 6,0  每周六,周日下午1点和2点的每一份中执行
0 9-18 * * 1-5   每周一到周五每天早上9点到下午6点整执行
*/10 * * * *    每隔10分钟执行一次任务
*7 * * * *   如果没法整除,定时任务则没有意义,可以自定制脚本控制频率 
定时任务最小单位是分钟,想完成秒级任务,只能通过其他方式(编程语言)

结束语 觉得有用的话点个赞

0 人点赞