crontab命令主要用于设置命令行或者脚本周期性的执行。该命令从标准输入设备读取指令,并将其存放于文件中,以供之后读取和执行。本文主要讲述crontb命令的基本语法和配置方法。

1、crontab命令行配置介绍

在crontab配置文件中的一条定时任务命令模板如下:

 # 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
| | | | |
* * * * * command/script

一个定时任务的配置共包括6个字段,分别是分、时、日、月、周、命令行或脚本,每一列取值的范围或者含义如上述格式中注释描述。特别注意一点是命令行或者脚本一定要配置成绝对路径

在上述各字段中,还可以使用以下特殊字符:

星号(*):代表所有可能的值,例如在第1列表示每分钟执行,第2列表示每小时执行,第3列表示每天执行。

逗号(,):可以用逗号隔开的值表示指定一个列表范围,例如,在第1列设置15,30,45表示在第15分钟、30分钟、45分钟执行。

中杠(-):可以用整数之间的中杠表示一个整数范围,例如"2-6"表示2,3,4,5,6

正斜线(/):可以用正斜线指定时间的间隔频率,例如第2列设置成"*/2",表示每两小时执行一次。

2、crontab配置实例

1、每天晚上的21:30运行/usr/bin/cleanup.sh脚本

  * * * /usr/bin/cleanup.sh # "*"表示取值范围内的所有数字

2、每月1、10、22日的4:45运行/usr/bin/backup.sh脚本

  ,, * * /usr/bin/backup.sh #","逗号表示固定的离散数字取值

3、每周六、周日的1:10运行查找命令

  * * , /bin/find -name "core" -exec rm {} \;

4、每天18:00至23:00之间每隔30分钟执行数据库检查脚本

, - * * * /usr/bin/dbcheck.sh #方法一
*/ - * * * /usr/bin/dbcheck.sh # "/"斜杠表示每隔的意思,比如*/30表示每隔30分钟

3、crontab操作命令

根据上述的内容了解定时任务cron配置规则后,我们还需要怎么进行cron定时任务的增、删、改操作。

crontab命令格式

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

选项说明:

-u 用户名,不加-u参数默认为当前用户。
-e 编辑crontab文件。
-l 列出crontab文件中的内容。取值来源为/var/spool/cron下对应的文件
-r 删除crontab文件。

4、配置定时任务实例

需求:每隔1分钟打印时间。通过该定时配置任务配置了解整个配置过程。

(1)root用户登录,执行crontab -e配置命令

Linux # crontab -e
*/ * * * * echo $(date '+%Y-%m-%d %H:%M:%S') >> /tmp/test_crontab.txt

(2)执行/etc/init.d/cron restart 或者 service cron restart使配置生效。此时可以在/var/spool/cron目录下root文件中看到新配置的定时任务

(3) tail -f /tmp/test_crontab.txt文件内容,确认是否每隔一分钟打印。如果配置生效了,就可以配置自己想要的定时任务。

5、FAQ 

Q1:定时任务配置完成后,我怎么确定它一定会生效?

A1:查看/var/log/cron日志。建议首先手工执行脚本或命令确保当前用户有可执行权限。其次配置定时任务时间为当前时间稍后X分钟执行并重启服务使其生效,查看/var/log/cron日志确认成功。最后修改回正确配置再重启服务。

Q2:定制任务都是分钟级别开始的,如果我想每隔5秒钟执行一次命令,如何设置?

A1:可以利用sleep命令完成。

Linux crontab使用方法的更多相关文章

  1. linux 中的定时任务crontab使用方法

    linux 中的定时任务crontab使用方法: 切换到root用户,sudo su root (可以设置成不需要输入密码) sudo su - (需要输入当前帐号的密码才能进入.) crontab ...

  2. 【Python】Linux crontab定时任务配置方法(详解)

    CRONTAB概念/介绍 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行. cron 系统调度进程. 可以使用它在 ...

  3. Linux crontab 每5秒钟执行一次 shell 脚本 的方法

    Linux crontab 每5秒钟执行一次 shell 脚本 的方法 由于 Linux 的 crontab 的定时命令格式如下: minute hour day-of-month month-of- ...

  4. linux crontab 实现每秒执行(转)

    linux crontab 命令,最小的执行时间是一分钟.如需要在小于一分钟内重复执行,可以有两个方法实现. 1.使用延时来实现每N秒执行 创建一个php做执行动作,非常简单,就是把当前时间写入log ...

  5. linux crontab 实现每秒执行的实例

    linux crontab 命令,最小的执行时间是一分钟.如需要在小于一分钟内重复执行,可以有两个方法实现. 1.使用延时来实现每N秒执行 原理:通过延时方法 sleep N  来实现每N秒执行. 创 ...

  6. 【Linux笔记】linux crontab实现自动化任务

    在服务器中我们经常需要定时自动让程序自动进行数据备份.程序备份.执行某个进程等等操作,在linux服务器一般使用crontab实现,而windows下使用计划任务实现,crontab是linux系统下 ...

  7. Linux crontab 实现每秒执行

    Linux crontab 实现每秒执行 linux crontab 命令,最小的执行时间是一分钟.如需要在小于一分钟内重复执行,可以有两个方法实现. 1.使用延时来实现每N秒执行 创建一个php做执 ...

  8. Linux 常见安全检查方法

    Linux 常见安全检查方法进行概要说明: 一.检查系统密码文件,查看文件修改日期 # ls -l /etc/passwd 二.查看 passwd 文件中有哪些特权用户 # awk -F: '$3= ...

  9. linux crontab 定时任务执行

    cron机制        cron可以让系统在指定的时间,去执行某个指定的工作,我们可以使用crontab指令来管理cron机制 crontab参数        -u:这个参数可以让我们去编辑其他 ...

随机推荐

  1. Mybatis 系列1-环境搭建

    [Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...

  2. kappa系数

    kappa计算结果为-1~1,通常kappa是落在 0~1 间,可分为五组来表示不同级别的一致性: 0.0~0.20 极低的一致性(slight) 0.21~0.40 一般的一致性(fair) 0.4 ...

  3. SAS FORMAT 逻辑库存储 【输出格式 没有找到或无法加载】解决方法

    SAS FORMAT 逻辑库存储 [输出格式  没有找到或无法加载]解决方法:需要指定FORMAT 搜索的路径:OPTIONS FMTSEARCH=(F WORK); 以下为完整示例代码: 00@DA ...

  4. Fragment onActivityResult提前响应,startActivityForResult执行后立即响应onActivityResult的解决方法

    找不到病根真是让人愁白了头: 今天写了一个startActivityForResult,开启一个Activity并拿到返回的结果,但是startActivityForResult刚走,onActivi ...

  5. bzoj2961 共点圆 (CDQ分治, 凸包)

    /* 可以发现可行的圆心相对于我们要查询的点是在一个半平面上, 然后我们要做的就是动态维护凸壳然后用这个半平面去切它 看看是否是在合法的那一面 然后cdq分治就可以了 代码基本是抄的, */ #inc ...

  6. linux:安装mysql管理工具phpmyadmin

    1.下载phpmyadmin,下载地址:http://www.phpmyadmin.net/ 2.解压到/var/www/html/phpmyadmin/ 3.修改配置 cd /var/www/htm ...

  7. SVN上拖下来的项目,缺少build path怎么办?

    在eclipse里用subeclipe从svn上拖下来的项目,看不见java build path怎么办? 原因那是因为你的两个配置文件:.project .classpath没有内容或者缺失. 重新 ...

  8. python-路径处理path

    #-*- coding:utf-8 -*- # file: class_01_path.py #本次学习:OS模块--处理路径 #F:\pythonzhm\study_181112 import os ...

  9. android 开发 实现一个进入相机拍照后裁剪图片或者进入相册选中裁剪图片的功能

    实现思维路径: 以进入相机拍照的思维路线为例子: 1.进入app 2.判断之前是否保存头像,如果有就显示历史图像 (下面代码中在getOldAvatar();方法中执行这个逻辑) 3.点击更换图像的B ...

  10. 如何安装 Microsoft Office 兼容包,以便您可以在早期版本的 Microsoft Office 中打开和保存 Office Open XML 格式

    https://support.microsoft.com/zh-cn/kb/923505 针对 Office 2003 的支持已终止 Microsoft 已于 2014 年 4 月 8 日终止了针对 ...