day18定时任务
day18定时任务
什么是定时任务
类似日常生活之中的闹钟;主要用于定时执行某些命令,达到定时处理数据的作用。
作用:
1、类似生活中使用的闹钟
2、可以自动完成操作命令
3、定时备份系统数据信息
定时任务的软件的种类
1、linux操作系统自带的软件:crontab
2、第三方的定时任务软件:atd、anacron
3、WEB定时软件:PPGo_Job
4、基于etcd的定时任务系统
crontab命令
crontab命令:被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
/etc/cron.deny 该文件中所列用户不允许使用crontab命令
/etc/cron.allow 该文件中所列用户允许使用crontab命令
/var/spool/cron/ 所有用户crontab文件存放的目录,以用户名命名 # 所有的定时任务文件存放地方
# 格式:
minute hour day month week command # 顺序:分 时 日 月 周
minute : 表示分钟,可以是从0到59之间的任何整数。
hour :表示小时,可以是从0到23之间的任何整数
day :表示日期,可以是从1到31之间的任何整数
month :表示月份,可以是从1到12之间的任何整数
week :表示星期几,可以是从0到7之间的任何整数(这里的0和7代表星期日)
command : 要执行的命令,可以是系统命令,也可以是自己编写的脚本文件
# 特殊字符:
* :表示每的意思,例如:“每天、每月、每小时”
, :可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
- :可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
/ :可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
# 参数:
-l :列表,查看已经设置的定时任务
-e :edit,编辑定时任务
-u :user,查看特定用户下定时任务
# /var/spool/cron/存放位置,以当前用户名作为文件名
crond服务
在Linux系统中:
cron是定时任务的软件名,
crond是服务进程名,真正实现定时任务服务。
crontab命令是用来设置定时时间任务规则的配置命令
要想配置定时任务,首先要开启crond服务。
systemctl start crondd.service //启动服务
systemctl syop crondd.service //关闭服务
systemctl status crondd.service //查看状态
/sbin/service crond reload //重新载入配置
1、查看crontab服务状态
[root@localhost ~]# service crond status
2、手动启动crontab服务:
[root@localhost ~]# service crond start
3、查看crontab服务是否已设置为开机启动,执行命令:
[root@localhost ~]# ntsysv
4、加入开机自动启动:
[root@localhost ~]# systemctl disable crond.service
[root@localhost ~]# enable crond.service
系统时间校准
系统时间和网络时间不同步解决方法:
[root@localhost ~]# yum install ntpdate -y # 第一步:安装时间服务软件
[root@localhost ~]# ntpdate ntp.aliyun.com # 第二步:更新网络时间
定时任务加在哪里
1、定时任务配置文件
定时任务配置文件
1)定时目录(需要执行的命令必须放在文件当中,同时也必须加上可执行权限)# /bin/sh 可以不用加执行权限
/etc/cron.hourly : 每小时执行一次 # 例如:/bin/sh /etc/cron.hourly 相当于加了执行权限
/etc/cron.daily : 每天执行一次
/etc/cron.weekly : 每周执行一次
/etc/cron.monthly : 每月执行一次
2)、定时任务的配置文件
/etc/crontab # 系统定时任务的配置文件之一
3)、定时任务编写文件
crontab -e :编辑定时任务(用户可以省略,默认是当前用户)
crontab -l :查看定时任务(只查看当前用户的定时任务)
例如:在设置时间段里创建一个文件
[root@localhost ~]# crontab -e
55 15 * * * touch /opt/1.txt
4)、黑洞设备:/dev/null
[root@localhost ~]# crontab -e
0 */1 * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null
&>/dev/null :黑洞设备 # 会把电脑产生的垃圾定向到/dev/null,会消失
2、用户定时任务
用户定时任务
1)、定时任务的格式
# 分 时 日 月 周 运行命令
minute hour day month week command # 顺序:分 时 日 月 周
user-name 指的是执行这个定时任务的用户
案例1:要求在每天凌晨3点45分执行一次
45 3 * * *
案例2:要求在每天凌晨3点45分以root用户执行/root/1.sh一次
45 3 * * * root/root/1.sh
2)、定时任务保存的地方 # /var/spool/cron
所有的用户定时任务都保存在 /var/spool/cron 目录中,当用户增加定时任务时,会在该目录中添加以自己名称命名的文件,并将定时任务保存在其中。
3、可能出现的提示
可能出现的提示
no crontab for oldboy02 : 没有任何定时任务
crontab: installing new crontab : 新增了一个定时任务
Do you want to retry the same edit? : 编辑的定时任务可能会出现错误
4、定时任务的日志
定时任务的日志
当定时任务出现错误的时候,需要排查错误,就需要到定时任务日志文件中去查询错误的原因
/var/log/cron : 可以查看到执行那些定时任务
/var/log/message: 记录系统操作的日志,(例如:用户登录)
定时任务书写规范
1、为定时任务规则加必要的注释,如:谁在什么时间添加了什么
2、所有的定时任务尽量都以脚本的形式执行
3、在执行的Shell脚本前加上/bin/sh,防止脚本没有权限执行不了
4、定时任务重命令或脚本的结尾加>/dev/null 2>&1。不加会产生垃圾
5、在指定用户下执行相关定时任务
6、生产任务计划中不要随便打印输出
7、定时任务执行的脚本要存放到规范路径下
8、配置定时任务要规范操作过程,减少出错,如:大象放冰箱
9、定时任务脚本中程序命令及路径尽量用全路径
10、时间变量%号要用反斜线转义(只有定时命令时才需要)
11、若脚本中调用了系统环境变量,要重新定义
12、出错或无法执行,就检查/var/log/cron日志
定时任务的各种格式
案例1:要求每分钟执行一次
* * * * *
案例2:要求每天的凌晨3点执行一次
0 3 * * *
案例3:要求每天上午7,9,12点各执行一次
0 7,9,12 * * *
案例4:要求每个季度执行一次
0 1,4,7,10 * * *
案例5:要求在每天上午的7点每隔2分钟执行一次(0分钟的时候不执行)
*/2 7 * * *
案例6:要求每个月的1号的星期一执行一次
0 0 1 * 1
案例7:要求每天的8 - 11点每隔5分钟执行一次
*/5 8,9,10,11 * * *
*/5 8-11 * * *
案例8:要求每天的21点到凌晨3点,每个5分钟执行一次
*/5 21-3 * * *
*/5 21-23,0-3 * * *
案例9:要求每天上午7点开始,每隔两分钟执行一次
*/2 7 * * *
案例10:要求每天上午7点开始到23点结束,每隔两小时的两分钟执行一次
*/2 7-23/2 * * *
案例11:要求工作日(1,5)的7点和下午两点执行一次
0 7,14 * * 1-5
0 7,14 * * 1,2,3,4,5
实例12:每小时的第3和第15分钟执行
3,15 * * * *
实例13:在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * *
3,15 8,9,10,11 * * *
实例14:每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * *
实例15:每个星期一的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1
测试题:
测试1:每分钟追加一次oldboy字符串到/tmp/oldboy.log里
解答:大象放冰箱分三步方法
1)、命令行执行成功
[root@localhost ~]# echo "oldboy" >> /etc/oldboy.log
[root@localhost ~]# cat /etc/oldboy.log
2)、配置定时任务crontab -e 编辑配置
[root@localhost ~]# crontab -e
* * * * * echo "oldboy" >> /etc/oldboy.log
3)、检查
[root@localhost ~]# crontab -l
day18定时任务的更多相关文章
- Java定时任务的常用实现
Java的定时任务有以下几种常用的实现方式: 1)Timer 2)ScheduledThreadPoolExecutor 3)Spring中集成Cron Quartz 接下来依次介绍这几类具体实现的方 ...
- [转]Java实现定时任务的三种方法
在应用里经常都有用到在后台跑定时任务的需求.举个例子,比如需要在服务后台跑一个定时任务来进行非实时计算,清除临时数据.文件等.在本文里,我会给大家介绍3种不同的实现方法: 普通thread实现 Tim ...
- 使用python crontab设置linux定时任务
熟悉linux的朋友应该知道在linux中可以使用crontab设置定时任务.可以通过命令crontab -e编写任务.当然也可以直接写配置文件设置任务. 但是有时候希望通过脚本自动设置,比如我们应用 ...
- C#定时任务组件之FluentScheduler
FluentScheduler是.NET开源处理定时任务组件 1.任务的创建注册 public static void TaskActionByMinutes(Action action, int c ...
- 浅谈 linux 例行性工作 crontab (linux定时任务)
定时任务大家都挺说过,就好比你手机上的闹钟,到了指定的时候就会响起. 今天在对redis缓存进行定时储存时又操作了一把,发现一些细节,写的不好.大家就将就看吧, 首先 简单介绍一下linux 例行性工 ...
- SpringMVC中定时任务配置
在项目中使用定时任务是常有的事,比如每天定时进行数据同步或者备份等等. 以前在从事C语言开发的时候,定时任务都是通过写个shell脚本,然后添加到linux定时任务中进行调度的. 现在使用Spring ...
- springboot(九):定时任务
在我们的项目开发过程中,经常需要定时任务来帮助我们来做一些内容,springboot默认已经帮我们实行了,只需要添加相应的注解就可以实现 1.pom包配置 pom包里面只需要引入springboot ...
- 详解java定时任务
在我们编程过程中如果需要执行一些简单的定时任务,无须做复杂的控制,我们可以考虑使用JDK中的Timer定时任务来实现.下面LZ就其原理.实例以及Timer缺陷三个方面来解析JavaTimer定时器. ...
- [JAVA]定时任务之-Quartz使用篇
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十个,百个, ...
随机推荐
- python mysqlclient安装失败 Command "python setup.py egg_info" failed with error code 1
python2 python3 中代码 pip install mysqlclient 都安装失败的话, 很有可能是你的操作系统中没有安装mysql 如果确定已经安装了,请忽略下面的内容. Ubunt ...
- 更优于 Shellinabox 的 web shell 工具 -- ttyd
ttyd 是一个运行在服务端,客户端通过web浏览器访问从而连接后台 tty (pts伪终端)接口的程序,把 shell 终端搬到 web 浏览器中. WebSocket WebSocket 是 HT ...
- docker使用redis过程出现的问题记录
第一次使用docker搭建成功了单机版redis,但在使用过程中,还是遇到了不少问题,故而先把这些问题记录下来,以防后面再出现会忘记. 目前,只是在docker中搭建了三个单机版的容器,打算先捣鼓一周 ...
- Spring Cloud Gateway 整合阿里 Sentinel网关限流实战!
大家好,我是不才陈某~ 这是<Spring Cloud 进阶>第八篇文章,往期文章如下: 五十五张图告诉你微服务的灵魂摆渡者Nacos究竟有多强? openFeign夺命连环9问,这谁受得 ...
- AppScan 10安装使用
一.简介 AppScan是IBM的一款web安全扫描工具,具有利用爬虫技术进行网站安全渗透测试的能力,能够根据网站入口自动摸取网页链接进行安全扫描,提供了扫描.报告和修复建议等功能. appscan有 ...
- 【linux命令】 磁盘管理
du du是查看硬盘的使用情况,统计文件或目录的空间大小. -a 显示所有目录或文件的大小 -b 以byte为单位,显示目录或文件的大小 -c 显示目录或文件的总和 -k 以KB为单位输出 -m 以M ...
- 【.NET 与树莓派】用 MPD 制作数字音乐播放器
树莓派的日常家居玩法多多,制作一台属于自己的数字音乐播放机是其中的一种.严格上说,树莓派是没有声卡的,其板载的 3.5 mm 音频孔实际是通过 PWM 来实现音频输出的(通过算法让PWM信号变成模拟信 ...
- yaml基本用法
简介 YAML 是 "YAML Ain't Markup Language"(YAML 不是一种标记语言)的递归缩写.在开发的这种语言时,YAML 的意思其实是:"Yet ...
- TLFS 内存分配算法详解
文章目录 1. DSA 背景介绍 1.1 mmheap 1.2 mmblk 2. TLFS 原理 2.1 存储结构 2.2 内存池初始化 2.3 free 2.4 malloc 参考资料 1. DSA ...
- 设计模式学习-使用go实现观察者模式
观察者模式 定义 适用场景 优点 缺点 代码实现 不同场景的实现方式 观察模式和发布订阅模式 参考 观察者模式 定义 观察者模式(Observer Design Pattern)定义了一种一对多的依赖 ...