crontabcrontab入门


备注

Crontab代表cron表。它是一个用于添加,编辑和删除crons的实用程序。 cron是需要定期运行的命令或程序。例如:每天或每小时运行的备份脚本。

在ubuntu(或大多数其他Linux操作系统)上创建一个新的cron

您只需键入即可创建新的cron条目

crontab -e
 

在命令行上。如果这是您第一次编辑crontab(文件),系统将提示您选择编辑器:

no crontab for <user> - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano        <---- easiest
  3. /usr/bin/vim.basic
  4. /usr/bin/vim.tiny

Choose 1-4 [2]: 
 

只需按照提示选择您的编辑器,您的crontab将打开一个空文件(仅包含一些注释的解释):

# 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
 

如您所见,文本中已有一个示例条目:

0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
 

这将在/var/backups/ 创建一个名为home.tgz 的备份文件。这个crontab的时机将是

every monday (first day of week) at 5:00 A.M.
 

如果您已将该行输入为crontab,那么您现在要做的就是保存crontab文件。例如,使用nano 编辑器,这是通过<Ctrl> + <X> - 然后确认用Y 保存。

要检查您的crontab,只需输入

crontab -l 
 

在控制台中。

您可以选择更多关于crontimings的信息:

 # * * * * *  command to execute
 # │ │ │ │ │
 # │ │ │ │ │
 # │ │ │ │ └───── day of week (0 - 6) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)
 # │ │ │ └────────── month (1 - 12)
 # │ │ └─────────────── day of month (1 - 31)
 # │ └──────────────────── hour (0 - 23)
 # └───────────────────────── min (0 - 59)
 

cronjobs中的特殊字符是:

星号( *

星号表示cron表达式匹配字段的所有值。例如,在第4个字段(月)中使用星号表示每个月。

斜线( /

斜杠描述范围的增量。例如,第1场(分钟)中的3-59 / 15表示小时的第3分钟,之后每15分钟。形式“* / ...”等同于“first-last / ...”形式,即在该字段的最大可能范围内的增量。

逗号( ,

逗号用于分隔列表的项目。例如,在第5个字段(星期几)中使用“MON,WED,FRI”表示星期一,星期三和星期五。

连字符( -

连字符定义范围。例如,2000 - 2010年表明每年在2000年至2010年之间,包括在内。

百分比( %

除非使用反斜杠()进行转义,否则命令中的百分号(%)将更改为换行符,并且第一个%之后的所有数据将作为标准输入发送到命令。

在Linux上安装crontab

于Debian / Ubuntu

# apt-get update & apt-get -y upgrade
# apt-get install cron
 

Fedora的/ CentOS的

# yum -y update
# yum install vixie-cron
 

# pacman --noconfirm -Syu
# pacman -S cronie