【Linux】定时任务crontab和anacron

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cheidou123/article/details/86551214

一 crontab

循环定时任务

1.查看crontab是否安装

在这里插入图片描述

2.访问控制

注意普通用户不能超过权限。
在这里插入图片描述

3.基本命令

这里面是空的,我们只需要照着格式写。
在这里插入图片描述

* * * * *可以跟命令或者shell脚本,最好用脚本,一定要是绝对路径

最小时间范围是分钟,最大时间范围是月

注意我们要写5点整:
0 5 * * 2 第一个数是0如果是*则每分钟执行一次

crontab -l 查看
crontab -r 清所有的,如果清一个,可以去crontab -e里面清除掉。
在同一条命令里,不要星期和日期写到一起,虽然它们都会执行。

4.例子

在这里插入图片描述
在这里插入图片描述

二 crontab设置

上面都是crontab -e是绑定用户身份的,如果是普通用户,很多不能整。
我们这里可以使用系统定时任务:

1.方式1

/etc/crontab 这个配置文件,可以自由定义用户身份。

1.方式(推荐)

把执行脚本复制到/etc/cron.{daily,weekly,monthly}目录中的任意一个。

三 anacron配置及总结

有的时候我们服务器出现没开机等状态,上面的情况下定时任务就不会执行。
当我们服务器又开机了,anacron会自动检测,会把漏的定时任务从新执行。
它只会指的是上面的系统定时任务的daily weekly monthly的,所以我们推荐这种方式。
它检测的日期精确度是天。
写到anacron不能精确控制时间,这个问题比较大。
anacron 任务被列在 /etc/anacrontab 中,任务可以使用下面的格式

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22

#period in days   delay in minutes   job-identifier   command
1       5       cron.daily              nice run-parts /etc/cron.daily
7       25      cron.weekly             nice run-parts /etc/cron.weekly
@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

从上面的格式中:
period - 这是任务的频率,以天来指定,或者是@daily 、@weekly、@monthly 代表每天、每周、每月一次。你也可以使用数字:1 - 每天、7 - 每周、30- 每月,或者N - 几天。
delay - 这是在执行一个任务前等待的分钟数。
job-id - 这是写在日志文件中任务的独特名字。
command - 这是要执行的命令或 shell 脚本。

猜你喜欢

转载自blog.csdn.net/cheidou123/article/details/86551214