- 概述
任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:1、系统工作:有些重要的工作必须周而复始地执行,如病毒扫描等。
2、个别用户工作:个别用户可能执行某些程序,比如对mysql数据库的备份。
- 基本语法
crontab[选项]
- 常用选项
-e | 编辑crontab定时任务 |
-l | 查询crontab任务 |
-r | 删除当前用户所有的crontab任务 |
- cron表达式命令时间格式
以0 2 * * 1 (每周一的两点整执行)为例。
0 | 2 | * | * | 1 | command |
---|---|---|---|---|---|
分钟0~59 每分钟用*或者 */1表示 |
小时0~23 (0表示0点) |
日期 1~31 | 月份1~12 |
星期0~6 (0表示星期天) | 要运行的命令 |
除了数字以外还有几个特殊的符号。
“*”、“/”和“-”、“、”、“/”表示所有取值范围内的数字,“/”表示各自的意思,“*/5”每5个单位,“-”从某个数字到某个数字,举几个例子说明问题。
用具体例子分析定时脚本:
1、pgslq.sh是要执行的脚本,内容是要执行的备份操作或其他任务脚本
1 * * * * /home/postgres/pgsql.sh
指示在一小时的第一分钟运行脚本
2、2 3 * * * /home/postgres/pgsql.sh
指示每天3点2分运行该脚本
3、1 1 * * 0/home/postgres/pgsql.sh
表示每周1点1分执行脚本
4、1 1 1 * */home/postgres/pgsql.sh
表示每月1点1分执行脚本
容易犯的错误通常是每分钟执行一小时的第一分钟。 在这方面,请注意两者的区别。
5、1 * * * * /home/postgres/pgsql.sh
指示在一小时的第一分钟运行脚本
6、*/1 * * * * /home/postgres/pgsql.sh
表示每分钟运行一次脚本
7、因此,必须记住“/”符号之间的差异
“-”的使用方法:
010 * *1-3/home/postgres/pgsql.sh
表示每周一至周三早上10点运行该脚本
8、0 10 * * 1、3、5/home/postgres/pgsql.sh
指示每周一、周三和周五早上10点运行此脚本