RHCE周期任务:crontab命令
Linuxcrontab命令详解周期性执行命令在生活中我们常常利用闹钟来帮助我们早起我们设定了相对应的时间它就会周期性的执行闹钟的作用和性质和crontab命令十分相似只不过闹钟是在每一个周期响起来提醒我们早起而crontab命令则是设置好的一个周期去执行命令或代码。周期任务 /etc/crontab(系统级别文件)/etc/crontab 是一个系统级别的文件在这里我们可以指定一个用户在一个指定的时间周期性循环地执行命令周期任务的语法分 时 日 月 周 用户 执行的命令注意这里必须有空格常见操作符* 通配符 表示每个时间单位示例* * * * *表示每分钟执行一次。 列表 分隔多个值示例0,15,30,45 * * * *表示每小时的第 0、15、30、45 分钟执行。/ 步长示例*/5 * * * *表示每 5 分钟执行一次。下图中我设置了一个周期任务3月15日中午12点20分在/tmp/目录下创建文件名为1至5的文件一、crontab命令简介1.1、crontab语法crontab [-选项] file此命令的作用是将file中的周期任务直接添加到该用户的周期任务中并且覆盖原有的周期任务。我在1.txt文件中写下周期任务并执行crontab file 命令 文件中的周期任务就添加到当前的root用户的周期命令中了注意在1.txt文件中 我没有指定用户名这是因为只有在/etc/crontab这种系统级别的文件才能指定用户名这里的1.txt是个人任务任务格式个人任务 * * * * * 命令系统任务 * * * * * 用户 命令1.2、crontab常用选项1、crontab -e编辑当前用户的周期列表任务2、crontab -l 查看周期任务列表3、crontab -r 清空周期任务4、crontab -u 指定某个用户创建/清空/查看他的周期任务(注意只要root用户才能指定其他用的权限或者如果你想普通用户也能指定其他用户执行命令你必须提权sudo)二、crontab相关的配置文件(重点)用法每行一个用户并且用户必须存在/etc/cron.deny 黑名单 他的优先级低于 白名单我在黑名单中写入这几个用户后他们都不能使用crontab/etc/cron.allow(需要自己创建) 只要白名单存在 黑名单就不生效我在/etc/cron.allow中添加ll用户这时候黑名单不生效了只有ll能使用crontab就连root也不行。/var/spool/cron/用户的名称 该目录保存了各个用户各自的定时任务.这个目录方便与查找各个用户的周期任务在root用户还没有创建周期任务的时候该目录是没有任何内容一旦我创建了周期任务在这里便会出现root/etc/cron.d/ 用户自定义的批量定时任务(系统级别)这四个目录的作用是你可以往里面直接放入脚本它会自动地去执行./etc/cron.hourly/ 每小时执行一次/etc/cron.daily/ 每天执行一次/etc/cron.weekly/每周执行一次/etc/cron.monthly/每月执行一次/etc/anacrontab 弥补普通 cron 的一个缺陷——如果机器在任务预定时间关机任务就错过了。anacron 会在开机后补执行这些错过的周期任务。含义举例cron.daily每隔 1 天运行一次开机后延迟 5 分钟执行/etc/cron.daily/里的脚本如果上次执行已经超过 1 天就立刻补跑。monthly大约每月执行一次延迟 45 分钟后运行/etc/cron.monthly/。4. 它们之间的关系简单串联一下/etc/cron.d/0hourly管理/etc/cron.hourly//etc/anacrontab管理/etc/cron.daily/、/etc/cron.weekly/、/etc/cron.monthly//etc/cron.d/0hourly和/etc/anacrontab的内容决定“什么时候执行这些目录”/etc/cron.hourly/ 、/etc/cron.daily/、/etc/cron.weekly/、/etc/cron.monthly/的内容是具体”跑什么内容