定时任务 - crontab
定时任务分类
crond(crontab),定时任务软件,软件包 cronie ✅
atd,运行一次
anacron,非7*24服务器
CROND 分类
系统定时任务
/etc/cron.hourly:系统定时每个小时运行目录里的内容/etc/cron.daily:系统定时每天运行目录里的内容/etc/cron.weekly:系统定时每周运行目录里的内容/etc/cron.monthly:系统定时每个月运行目录里的内容/etc/cron.deny:拒绝某个用户使用定时任务(用不到)/etc/crontab:系统定时任务配置之一
用户定时任务
crontab -l:查看用户的定时任务 cron tablecrontab -e:编辑用户的定时任务/var/spool/cron/root:用户定时任务文件
配置定时任务
方法一:修改系统的配置文件
bash
vim /etc/crontab方法二:用户的定时任务
bash
crontab -e/var/spool/cron/root/var/spool/cron/sliman(用的少,容易产生权限问题)
查看定时任务
bash
crontab -l或者
bash
cat /var/spool/cron/root相关的文件
- Crontab 日志:
/var/log/cron - 系统邮件:
/var/spool/mail/root(详细)
语法格式
基本语法

定时任务中不要同时使用 day 和 week 。
特殊符号
*: 每*/n: 间隔,*/5 * * * *每5分钟执行n-m:区间,* 1-8 * * *1点到8点的每分钟执行,:多个时间
WARNING
- Crontab 中不识别
%,需要节加斜杠/进行转义。 - 系统邮件关闭的情况下(生产环境通常关闭),若没有将输出重定向到黑洞,会在
/var/spool/postfix/maildrop/中生成大量小文件,极易造成 inode 占满。 - 定时任务默认环境变量只包含
/bin和/usr/bin,使用其他命令注意添加环境变量或者使用绝对路径。 - 多条命令使用脚本。
- 避免不必要的程序输出。
面试题:什么情况下系统 inode 号会占满中产生?
- 定时任务没有开启系统邮件,会在
/var/spool/postfix/maildrop/中产生大量临时小文件 - 服务运行过程中,开发问题产生小文件
- 误操作脚本