linux java 定时任务调度,linux下的定时任务处理

上一篇我们讲了linux的计划任务以及临时任务的处理,本篇我们来学习cron定时任务相关的处理。cron是linux的一个定时任务执行工具,而crondtab是周期性执行命令,crond则是定时任务的守护进程。下面我们进行一些实践,希望小伙伴看完能跟着练习起来。

服务启动

查看服务是否启动

[root@iz2ze0ajic0vbv28hcdctpz ~]# systemctl status crond

● crond.service - Command Scheduler

Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)

Active: active (running) since 二 2018-11-13 11:50:47 CST; 1 day 10h ago

Main PID: 489 (crond)

CGroup: /system.slice/crond.service

└─489 /usr/sbin/crond -n

11月 13 11:50:47 iz2ze0ajic0vbv28hcdctpz systemd[1]: Started Command Scheduler.

11月 13 11:50:47 iz2ze0ajic0vbv28hcdctpz systemd[1]: Starting Command Scheduler...

11月 13 11:50:47 iz2ze0ajic0vbv28hcdctpz crond[489]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 7...ed.)

11月 13 11:50:47 iz2ze0ajic0vbv28hcdctpz crond[489]: (CRON) INFO (running with inotify support)

Hint: Some lines were ellipsized, use -l to show in full.

如果没有启动,执行

systemctl start crond

systemctl enable crond

crontab命令

语法 :  crontab  参数

常用参数  :

crontab -u   #指定用户的cron信息

crontab -l   #列出当前用户下的cron服务的信息

crontab -u user -l   #列出指定用户的cron服务的信息

crontab -r   #删除cron服务

crontab -e   #编辑cron服务

crontab -r -u user   #删除指定用户的定时任务

操作:

编辑cron服务

[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -e

crontab: installing new crontab

查看当前用户下任务内容

[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -l

22 22 22 * * mkdir /linux/test

删除任务

[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -r

[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -l

no crontab for root

查看qa这个用户下的任务内容

[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -u qa -l

22 22 22 * * mkdir /linux/test

删除qa这个用户下的定时任务

[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -u qa -r

[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -u qa -l

no crontab for qa

系统任务

系统的任务调度配置文件在/etc/crontab下

[root@iz2ze0ajic0vbv28hcdctpz ~]# ll /etc/crontab

-rw-r--r-- 1 root root 451 Nov 15 07:49 /etc/crontab

可以直接在/etc/crontab下添加系统任务(不建议)

[root@iz2ze0ajic0vbv28hcdctpz ~]# cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

# For details see man 4 crontabs

# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name  command to be executed

定时任务相关的目录

[root@iz2ze0ajic0vbv28hcdctpz etc]# ll cr

cron.d/       cron.deny     cron.monthly/ cron.weekly/

cron.daily/   cron.hourly/  crontab       crypttab

目录作用解释:

cron.d/       是系统自动定期需要做的任务(不是按照时,分,秒等时间周期执行的)

cron.deny   在该文件内的用户无法做计划任务

其他文件为不同周期的执行脚本。

定时任务规则

首先来看下任务的格式(如图):

a462ffc0387ac214e2d90079ba51f15a.png

时间的一些特殊符号:

93e0eb725a9d6bdf02bb4356274d503a.png

下面我们来举一些例子:

#每晚的20:30重加载nginx

30 20* * */usr/local/nginx/sbin/nginx -s reload

#每月1、10、15日的5:30重加载nginx

30 5 1,10,15* */usr/local/nginx/sbin/nginx-s reload

#每天20:00至22:00之间每隔30分钟重加载nginx

0,30 20-22* * */usr/local/nginx/sbin/nginx -s reload

每星期六的10:00pm 重加载nginx

0 22* *6/usr/local/nginx/sbin/nginx-s reload

#每一小时重加载一次nginx

0*/1 * * * /usr/local/nginx/sbin/nginx-s reload

小编建立了技术群和csdn下载群(微信群和qq群)。欢迎大家加我微信,qq群号(274224014)。

原文始发于微信公众号(马里奥玩python):linux下的定时任务处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值