版权声明:本文为博主原创文章,未经博主允许不得转载。 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 脚本。