linux下的计划任务——周期性执行的定时任务是什么
创始人
2024-11-18 19:49:08
0次

用户设置周期性计划任务crontab

一般用户想要设置周期性计划任务的话,需要使用crontab这个命令。和at一样,crontab也有黑白名单,对于的配置文件分别是——/etc/cron.deny、/etc/cron.allow。

当用户设置了定时任务,该任务就会以文本文件的方式记录到/var/spool/cron目录下。

# ll /var/spool/cron/
total 4
-rw------- 1 root root 98 Jul 28 03:58 root

关于crontab,我们只需要记住两个命令

  • crontab -e 设置定时任务

  • crontab -l 查看定时任务

设置定时任务的格式如下:

基本格式:分       时    日期    月份    星期    命令
取值范围:[0-59]  [0-23]  [1-31]   [1-12]   [0-7]

除此之外,我们还需要记几个特殊字符的含义:

  • * 表示任意时刻都可以

  • , 表示分隔时间段的含义

  • - 表示连续一段时间

  • /n 表示每隔n单位间隔

下面通过几个例子来看看上面特殊字符的用法:

# 每隔5分钟,执行下检测内存的脚本
*/n * * * * /root/script/check_memory.sh
# 每个月1号凌晨5点20分,重启下服务器
20 5 1 * * /usr/sbin/reboot

系统的配置文件/etc/crontab、/etc/cron.d/*

关于周期性的计划任务,主要对应的有三个地方的配置文件,分别是

  • /var/spool/cron/,针对用户来设置的

  • /etc/crontab,针对系统的计划任务

  • /etc/cron.d/ 针对某个软件、系统的定时任务,比如针对一个网站,可能会有多个定时任务,那么建议在/etc/cron.d/目录下,新建立一个配置文件

crontab -e是针对用户级别设计的,对于系统级别的周期性任务,建议写在/etc/crontal 文件中,或/etc/cron.d/目录下。

下面看看/etc/crontab文件内容

# 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 /usr/bin/date  >> /root/cron.txt

可以看到,和crontab -e稍微有点区别,这里需要指定用户名。

接下来,我们再来看看/etc/cron.d/目录下有哪些文件

# ll /etc/cron.d
total 8
-rw-r--r--. 1 root root 128 Aug  3  2017 0hourly
-rw-------  1 root root 235 Aug  3  2017 sysstat

假如,服务器上有一个网站,对于该网站,我们需要定时备份数据库、网站文件,另外还需要定时处理些数据,那么,我们就可以在/etc/cron.d/目录下建立一个相关文件。我们再看看0hourly文件内容:

# Run the hourly jobs
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
01 * * * * root run-parts /etc/cron.hourly

该脚本的意思是,每小时去执行/etc/cron.hourly目录下的脚本文件。

估计眼尖的朋友已经发现了,除了cron.hourly目录,还有cron.daily、cron.monthly、cron.weekly目录。但是这三个目录还是有点区别的,这三个目录是anacron所执行的。这个anacron表示唤醒未执行的定时任务并执行它。举个例子,当你使用crontab -e设置了定时任务后,因为关机或其他原因,时间过了单任务并没执行,那么就只能错过就错过了,但如果将脚本放置在/etc/cron.daily/目录下,只要没有被执行,即使时间过了,它还是会被执行。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...