使用 crontab 来配置定时任务
Table of Contents
1 简介
在日常工作中往往需要开启定时任务,比如:定时备份文件夹,定时备份数据库等。那应 该以什么样的姿势完成这种事情呢。所谓 Linux 大法好,我们可以使用 crontab 来开启定 时任务
2 使用方法
2.1 基础知识
crontab 的命令格式是 五个参数 然后加 命令 ,其中前五个参数分别表示如下含义:
- m 任务执行的分钟
- h 任务执行的小时
- dom 任务执行的每月的时间
- mon 任务执行的月份
- dow 任务执行的每周的时间
在Ubuntu 操作系统中默认文件中写的就很清晰易懂
# Edit this file to introduce tasks to be run by cron. # # Each task to run has to be defined through a single line # indicating with different fields when the task will be run # and what command to run for the task # # To define the time you can provide concrete values for # minute (m), hour (h), day of month (dom), month (mon), # and day of week (dow) or use '*' in these fields (for 'any').# # Notice that tasks will be started based on the cron's system # daemon's notion of time and timezones. # # Output of the crontab jobs (including errors) is sent through # email to the user the crontab file belongs to (unless redirected). # # For example, you can run a backup of all your user accounts # at 5 a.m every week with: # 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/ # # For more information see the manual pages of crontab(5) and cron(8) # # m h dom mon dow command
2.2 操作示例
# 查看当前启用的定时任务 crontab -l # 在编辑任务是最好将编辑器设置成 vim, 否则第一次编辑时会问你使用的编辑器 export EDITOR=vim # 编辑当前的定时任务 crontab -e
2.3 常见的定时任务
- * 代表所有可能的值,如month字段为星号,则表示在满足其它字段的制约条件后每月 都执行该命令操作
- , 可以用逗号隔开的值指定一个列表范围,例如 "1,2,5,7,8,9"
- - 可以用整数之间的中杠表示一个整数范围,例如 "2-6" 表示 "2,3,4,5,6"
- / 可以用正斜线指定时间的间隔频率,例如 "0-23/2" 表示每两小时执行一次。
# 当天23点,第二天0点到凌晨7点 每隔1分钟执行一次脚本 * 23,00-07/1 * * * /bin/sh /home/me/script.sh # 每年的4月份每周的周一到周三的11点执行脚本 00 11 * 4 1-3 /bin/sh /home/me/update.sh