crontab 定时任务配置是 Linux/Unix 系统中用于自动、周期性执行指定命令或脚本的工具,相当于系统的 “定时闹钟”。它可以让系统在预设的时间(如每天凌晨、每周一、每月 1 号等)自动完成重复性工作,无需人工干预。
自动化运维
- 定期备份数据(如每天凌晨 2 点备份数据库)。
- 清理日志文件(如每周日删除一周前的日志,避免磁盘占满)。
- 同步系统时间(如每天早上 7 点与 NTP 服务器校准时间)。
周期性任务处理
- 定时运行脚本处理数据(如每小时统计一次网站访问量)。
- 发送定时通知(如每月 1 号发送服务器运行报告邮件)。
减少人工操作
- 替代需要重复执行的命令,避免遗漏或人为错误(比如凌晨 3 点手动备份容易忘记)。
工作原理
- crond 服务:系统后台运行的一个守护进程(类似 “服务员”),负责监控并执行 crontab 中定义的任务。
- crontab 文件:用户通过
crontab -e
命令编辑的配置文件,里面记录了 “何时执行什么任务” 的规则(格式为分 时 日 月 星期 命令
)。 - 执行流程:crond 服务每分钟检查一次 crontab 文件,当时间匹配时,自动执行对应的命令或脚本。
crontab -l(查看)
30 7 * * 1-5 /usr/sbin/ntpdate 10.121.106.94 >>/opt/ntplog 2>&1
0 0 15 * * sh /root/cleanDsLog.sh
crontab -e(编辑)
30 7 * * 1-5 /usr/sbin/ntpdate 10.121.106.94 >>/opt/ntplog 2>&1
0 0 15 * * sh /root/cleanDsLog.sh
- 第一条任务:每周一至周五 7:30,通过 NTP 服务器
10.121.106.94
同步系统时间,并记录日志到/opt/ntplog
。 - 第二条任务:每月 15 号 0 点,执行日志清理脚本
/root/cleanDsLog.sh
,用于定期维护系统日志(避免磁盘占满)。