什么是crontab定时任务?

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
EMR Serverless StarRocks,5000CU*H 48000GB*H
函数计算FC,每月15万CU 3个月
简介: 定时任务在Linux系统中用的是比较多的,个人的话一般用的很少,在企业中定时任务是必不可少的,定时任务多种多样,有程序的定时任务,比如:写一个程序在程序内定时执行,或者是操作系统的定时任务,比如:Windows系统的定时任务、Linux系统的定时任务,他们的名称、操作方式都不相同,但是他们都有一个共同的特征,在**某个特定的时间或者时间段执行某项任务**,这类通常被我们称之为定时任务,再举个例子,我们手机的闹钟、或者街边的路灯,这些都是定时任务,闹钟会在早上7点发出音乐,路灯会在晚上6点开灯,这些都是生活中的定时任务,今天记录一下在Linux系统中如何使用定时任务

💡 定时任务在Linux系统中用的是比较多的,个人的话一般用的很少,在企业中定时任务是必不可少的,定时任务多种多样,有程序的定时任务,比如:写一个程序在程序内定时执行,或者是操作系统的定时任务,比如:Windows系统的定时任务、Linux系统的定时任务,他们的名称、操作方式都不相同,但是他们都有一个共同的特征,在某个特定的时间或者时间段执行某项任务,这类通常被我们称之为定时任务,再举个例子,我们手机的闹钟、或者街边的路灯,这些都是定时任务,闹钟会在早上7点发出音乐,路灯会在晚上6点开灯,这些都是生活中的定时任务,今天记录一下在Linux系统中如何使用定时任务

在centos系统中默认自带了crontab程序,我们可以使用rpm -qa | grep crontab命令来查看是否安装了crontab服务

[root@VM-4-14-centos ~]# rpm -qa | grep crontab
crontabs-1.11-17.20190603git.el8.noarch
[root@VM-4-14-centos ~]#

我们可以直接使用命令 crontab -e命令来添加定时任务,但是在此之前先要检查一下crontab服务是否正常启动了,如果 /etc/init.d下面没有cron或者crontab 命令的话,那么你就不能用/etc/init.d/cron status 命令来查看crontab服务是否正常运行了。使用下方命令查看crond服务是否正常启动。
[root@VM-4-14-centos init.d]# /sbin/service crond status
image.png
显示running说明服务是正常运行的状态,但如果现在的非running则说明没有启动没正常运行,那么就要使用[root@VM-4-14-centos init.d]# /sbin/service crond start命令来启动crontab服务了。
如果使用的不是centos发行版本的话,那么系统默认是没用安装crontab的,需要我们手动去安装,需要更新源apt-get update更新源之后再执行apt-get install cron进行安装,安装之后可以使用service cron start命令进行启动crontab服务,其他命令可以通过service cron进行查询
启动之后我们还需要校对一下服务器的系统时间,如果不校对时间的话,比如现在是北京时间7:30,你设置了一个8:00执行的定时任务,但是到了中午12点发现定时任务还没有执行,于是排查后发现服务器的时间是相差了12个小时,服务器时间是晚上的12点。那么肯定就不对了
如果你的服务器在公网(互联网)的话,可以直接公共的时间服务器(NTP)地址作为标准时间,对于非腾讯云设备,可以使用腾讯云提供的公网 NTP 服务器(即:外网 NTP 服务器)
image.png
我们在需要校对的服务器上使用命令 ntpdate ntp.tencent.com
image.png
但是如果是在内网的,可以使用date -s 去手动设置时间,或是其他方式同步时间
crontab服务启动完成和时间同步完成之后我们可以使用定时任务,输入命令crontab -e或者vim /etc/crontab两种方式都可以添加定时任务,先来看第一种,输入crontab -e后回车,打开到了编辑页面,先看看一下格式:分-时-日-月-周-[命令]。时间为可选的参数,空白的用*号代替。看一下最后一行,意思是每天晚上20:42分 创建一个test123.txt的文件,
image.png
每天中午12:00删库跑路
image.png
9月15号中午12点删除跑路
image.png
每周三下午六点半执行删除日志的操作
image.png
有些可能是上午或者下午都需要运行定时任务,我们可以分开写
image.png
亦或者这样,都能满足每天8点和下午15点执行
image.png


一般我们通常定时任务和shell脚本一起使用,定时任务单一的命令可能满足不了需求,就需要配合shell脚本定期执行某些操作,而在使用shell脚本的时候要注意使用绝对路径来启动脚本

相关文章
|
25天前
|
存储 消息中间件 移动开发
还在用crontab? 分布式定时任务了解一下
还在用crontab? 分布式定时任务了解一下
|
4月前
|
网络协议 应用服务中间件 开发工具
计划任务at crontab
计划任务at crontab
|
Unix Linux Shell
cron设置定时任务详解
cron设置定时任务详解
crontab安装以及定时任务的执行
crontab安装以及定时任务的执行
129 0
|
运维 Linux Apache
定时任务crontab | 学习笔记
快速学习定时任务crontab。
224 0
|
程序员 数据库
at,crontab定时程序
介绍 程序员对于定时执行任务一定不陌生,很多任务为了减少对用户的干扰,如系统更新、维护、数据库结构变更等,通常会选择在凌晨进行。对于一些简单的无需人工照看的任务,就可以预先写好命令,并设定时间自动运行,然后就可以安心睡大觉了。
1020 0
cron和crontab
crontab -l 列出目前的计划任务(时程表) crontab -e 编辑计划任务   计划任务的格式如下: f1 f2 f3 f4 f5 program 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。
833 0