Linux 周期性计划任务之crontab

    技术2026-10-01  6

    crontab命令介绍

    按照预先设置的时间周期(分钟、小时、天…)重复执行用户指定的命令操作

    属于周期性计划任务

    主要设置文件: 全局配置文件负责调度各种管理和维护任务:/etc/crontab

    ​ 系统默认的设置,位于目录:/etc/cron.d/

    ​ 用户定义的设置,位于文件:/var/spool/cron/用户名

    crontab命令选项 crontab [-u username] ##如果不使用选项-u指定用户则表示对当前用户进行操作 -e 编辑计划任务 -l 显示计划任务列表 -r 删除所有计划任务 ##如果是root用户下执行该选项则会删除全部计划任务 crontab命令设置格式 # Example of job definition: # .---------------- minute (0 - 59) 分钟 # | .------------- hour (0 - 23) 小时 # | | .---------- day of month (1 - 31) 日 # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... 月 # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat 周 # | | | | | # * * * * * user-name command to be executed 例:0 17 * * 1-5 含义:周一到周五每天17:00 字段说明分钟取值为从0到59之间的任意整数小时取值为0到23之间的任意整数日期取值为1到31之间的任意整数月份取值为1到12之间的任意整数星期取值为从0到7之间的任意整数,0或7代表星期日命令要执行的命令或程序脚本

    时间数值的特殊表示方法

    *表示该范围内的任意时间,表示间隔的多个不连续时间点-表示一个连续的时间范围/指定间隔的时间频率

    设置实例:

    每天下午16:00将messages日志拷贝到/root目录下

    [root@localhost ~]# crontab -e ##创建周期性计划任务 [root@localhost ~]# crontab -l ##查看计划任务列表 15 16 * * * cp /var/log/messages /root 到16:00后我们查看一下/root目录下是否有messages文件 [root@localhost ~]# ls /root ##列出root目录下所有文件 anaconda-ks.cfg messages

    【思考】:crontab -e 与 /etc/crontab 同样是编辑计划任务,两者之间的区别是什么?

    /etc/crontab 只能由root用户才能修改,普通用户没有权限

    crontab -e 所有用户都可以执行该命令,计划任务会写入 /var/spool/cron/用户名

    Processed: 0.008, SQL: 9