Linux Centos7 crontab指令 学习手册

crontab是什么

    crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。

    简单来说 crontab 用于 用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。

   1.  安装crontab

        服务器centOS默认安装没有这个crontab服务,需自己手动安装

        可以先检查本机是否安装crontab

        rpm -qa | grep crontab

安装好的截图

        如果虚拟机没有的话:

            yum -y install vixie-cron

            yum -y install crontabs

           简单说明:

            vixie-cron 是 cron 的主程序;

            crontabs 是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。

    安装好了可以配置启动和服务:

    service crond start //启动服务

    service crond stop      //关闭服务

    service crond restart  //重启服务

    service crond reload    //重新载入配置

    service crond status    //查看crontab服务状态

     查看crontab服务是否已设置为开机启动,执行命令:ntsysv

        我们也可以设置自动启动:

    chkconfig --level 345 crond on

               

    2.介绍语法:

            使用权限:root用户和crontab文件的所有者

            语法:crontab -加参数   一下说明几个常用的参数

            说明:crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。 

          crontab -e 会打开一个类似vim 的编辑器 ,这这个编辑器输入需要执行命令。

          crontab  -r [UserName]: 删除目前的时程表

          crontab  -l [UserName]: 列出目前的时程表

          crontab  -v [UserName]:列出用户cron作业的状态


crontab文件格式:      

        *             *            *            *            *                   command

        分         时           日          月          周(几)          命令

   时程表的格式:

        分钟:表示分钟,1~59 每分钟用*或者 */1表示

        小时:表示小时,1~23(0表示0点)

        日期:表示日期即一个月份中的第几日,1~31

        月份:表示月份,1~12

        星期:标识星期,0~6(0表示星期天)

   特殊字符:

        星号(*):代表’‘每’'的意思,例如month字段如果是星号,则表示每月都执行该命令。

        逗号(,):表示分隔时段的意思,例如,“1,3,5,7,9”。

        中杠(-):表示一个时间范围,例如“2-6”表示“2,3,4,5,6”。

        正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。


 一些实例

    每月每天凌晨3点30分和中午12点执行test.sh脚本

    30 3,12 * * * /root/test.sh >> /root/test.log

    每月每天每隔6小时的每30分钟执行test.sh脚本

    30 */6 * * * /root/test.sh >> /root/test.log

    每月每天早上8点到下午18点每隔2小时的每30分钟执行test.sh脚本

    30 8-18/2 * * * /root/test.sh >> /root/test.log

    每月每天晚上21点30分执行test.sh脚本

    30 21 * * * /root/test.sh >> /root/test.log

    每月1号、10号、22号凌晨4点45分执行test.sh脚本

    45 4 1,10,22 * * /root/test.sh >> /root/test.log

    8月份周一、周日凌晨1点10分执行test.sh脚本

    10 1 * 8 6,0 /root/test.sh >> /root/test.log

    每月每天每小时整点执行test.sh脚本

    00 */1 * * * /root/test.sh >> /root/test.log

你可能感兴趣的:(Linux Centos7 crontab指令 学习手册)