通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。

命令格式

crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]

参数说明

-u user:用来设定某个用户的crontab服务;
file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
-i:在删除用户的crontab文件时给确认提示。

crontab的文件格式

分 时 日 月 星期 要运行的命令

*   第1列分钟0~59
*   第2列小时0~23(0表示子夜)
*   第3列日1~31
*   第4列月1~12
*   第5列星期0~7(0和7表示星期天)
*   第6列要运行的命令

使用方式

  • 修改crontab的默认编辑器
    向cron进程提交一个crontab文件之前,首先要设置环境变量EDITOR。cron进程根据它来确定使用哪个编辑器编辑crontab文件。99%的UNIX和LINUX用户都使用vi,如果你也是这样,那么你就编辑$HOME目录下的.profile文件,在其中加入这样一行:

    EDITOR=vi; export EDITOR
  • 通过crontab文件的方式
    即,根据不同的计划,自定义不同crontab文件,这样便于任务的备份。

    vi task_crontab
    crontab task_crontab

    第一步通过vi编辑来设置你的定时计划;第二部通过crontab命令使计划生效。

  • 直接编辑crontab文件
    如果不通过上面文件的方式,那么可以选择这种直接编辑的方式。

    crontab -e
  • 查看当前用户的的定时计划
    通过参数-l

    crontab -l

    会显示出当前用户总共设置的计划。

  • 删除crontab文件
    当我们不需要该计划之后,可以通过-r参数删除。

    crontab -r

使用实例

  • 每分钟执行一次
 * * * * * myCommand
  • 每小时的第3和第15分钟执行

    3,15 * * * * myCommand
  • 在上午8点到11点的第3和第15分钟执行

    3,15 8-11 * * * myCommand
  • 每隔两天的上午8点到11点的第3和第15分钟执行

    3,15 8-11 */2  *  * myCommand
  • 每周一上午8点到11点的第3和第15分钟执行

    3,15 8-11 * * 1 myCommand

规则说明

  • *:代表所有的取值范围内的数字
  • /:代表每的意思,比如每几天、每几个小时
  • -:代表从某个数字到某个数字,一个范围
  • ,:代表几个离散的数字
最后修改:2019 年 08 月 20 日 11 : 01 AM