Linux系统使用crontab命令实现计划任务

来源:互联网 发布:遗传算法及其应用 编辑:程序博客网 时间:2024/06/04 19:31

1、cron和crontab简介

    cron是linux系统主要的调度进程,可以在无人干预的情况下执行命令。crontab命令允许用户编辑、删除、提交相应的作业,每一个用户都可以有自己的crontab文件来保存调度信息,你可以使用它每隔一小时、每隔一周或者一周三次来执行任意一个Shell脚本或者命令。


2、crontab的格式

    crontab的格式为:分 时 日 月 星期 命令(中间用空格隔开)。

    crontab文件的条目是从左边读起的,第一列是分,以此类推,最后一列是需要执行的命令。

    每一列称为crontab的一个域,在这些域中,可以用-来连接一个时间范围,例如星期一到星期五,可以用1-5来表示。单个时间点可以用,号分隔,比如星期一和星期四,那么可以表示为1,4。如果某个表示时间的域没有特别限制,可以用*号表示。每一个时间条目包含5个域,用空格隔开。

    比如我希望每天晚上21:30运行bin目录下的cleanup.sh文件,那么该命令就应该为:

    30 21 * * * /app/bin/cleanup.sh (注意:由于不需要限定日期、月份、星期,所以日期、月份和星期域用*号表示)

    比如我希望每月得1、10、20的00:00运行backup.sh文件,那么命令应该为:

    00 00 1,10,20 * *  /app/bin/backup.sh (注意:由于不需要限定月份和星期,所以月份和星期域用*号表示)


3、crontab命令的选项

    crontab命令的一般形式为:crontab [-u user]  -e -l -r

    -u 用户名(user)

    -e 编辑crontab文件(edit)

    -l 列出crontab文件的内容(list)

    -r 删除crontab文件(remove)

    如果是使用当前用户执行crontab命令,便不需要使用-u选项,因为crontab命令会自动识别当前用户。


4、创建一个新的crontab文件

    如果希望系统自动执行相应的Shell脚本,需要向调度进程cron提交一个crontab文件,首先需要让系统知道该脚本的路径和环境变量,所以创建一个crontab文件的步骤如下:

  (1)设置环境变量EDITOR

    cron进程根据它来确定使用哪个编辑器编辑crontab文件,如果使用vi来编辑crontab文件,那么在$HOME目录下的.profile文件中加入一行:

    EDITOR=vi;export EDITOR

  (2)新建一个crontab文件,命名为usercron,在该文件中输入以下内容:    

    #每天晚上21:30运行bin目录下的cleanup.sh文件

    30 21 * * * /app/bin/cleanup.sh

    编辑完成后保存退出。

  (3)提交刚刚创建的crontab文件

    $ crontab usercron

此时,usercron文件已经提交给cron进程,它将每天晚上21:30运行一次。

    

原创粉丝点击