Linux如何设置定时任务

1、基本概念

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。

2、命令格式

1
2
3
4
5
6
7
8
# 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

2.1、每月每天每小时的第 0 分钟执行一次 xxoo
0 * * * * xxoo

2.2、在 12 月份期间, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 xxoo
*/20 6-12 * 12 * xxoo

2.3、周一到周五每天下午 5:00 xxoo
0 17 * * 1-5 xxoo

2.4、每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分 xxoo
20 0-23/2 * * * xxoo

3、基本操作

crontab文件包含送交cron守护进程的一系列作业和指令。每个用户可以拥有自己的crontab文件;同时,操作系统保存一个针对整个系统的crontab文件,该文件通常存放于/etc或者/etc之下的子目录中,而这个文件只能由系统管理员来修改。

3.1.1、直接修改etc下的crontab文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@Crayfish ~]# cd /etc
[root@Crayfish etc]# cat crontab 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
 
# For details see man 4 crontabs
 
# 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
[root@Crayfish etc]# vi crontab

3.1.2、通过crontab命令
[root@Crayfish etc]# crontab -e

3.2、加入任务队列
[root@Crayfish etc]# crontab crontab

4、任务管理

4.1、任务查看
[root@Crayfish etc]# crontab -l
4.2、任务删除
[root@Crayfish etc]# crontab -r
4.3、任务编辑
[root@Crayfish etc]# crontab -e

One thought on “Linux如何设置定时任务

  1. Pingback: Linux下最简单的动态域名解析

Leave a Reply