Linux crontab定时执行任务


crond是Linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后, 默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。


wKioL1ct5SzhT1nlAABY0v262Gk278.png


cron任务分为两类:
    系统cron任务:主要用于实现系统自身的维护;
        手动编辑:/etc/crontab文件
    用户cron任务:
        命令:crontab命令
            
系统cron的配置格式:/etc/crontab
                SHELL=/bin/bash
                PATH=/sbin:/bin:/usr/sbin:/usr/bin
                MAILTO=root

                # For details see man 4 crontabs

                # 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
                # |  |  |  |  |
                # *  *  *  *  * user-name  command to be executed
                
注意:
    (1) 每一行定义一个周期性任务,共7个字段;
            *  *  *  *  * : 定义周期性时间
            user-name : 运行任务的用户身份
            command to be executed:任务
    (2) 此处的环境变量不同于用户登录后获得的环境,因此,建议命令使用绝对路径,或者自定义PATH环境变量;
    (3) 执行结果邮件发送给MAILTO指定的用户
                    
    用户cron的配置格式:/var/spool/cron/USERNAME
                SHELL=/bin/bash
                PATH=/sbin:/bin:/usr/sbin:/usr/bin
                MAILTO=root

                # For details see man 4 crontabs

                # 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 to be executed    
                
注意:
    (1) 每行定义一个cron任务,共6个字段;
    (2) 此处的环境变量不同于用户登录后获得的环境,因此,建议命令使用绝对路径,或者自定义PATH环境变量;
    (3) 邮件发送给当前用户;
            
时间表示法:
    (1) 特定值;
        给定时间点有效取值范围内的值;
            注意:day of week和day of month一般不同时使用;
    (2) *
        给定时间点上有效取值范围内的所有值;表“每..”
    (3) 离散取值:,
        在时间点上使用逗号分隔的多个值;
            #,#,#
    (4) 连续取值:-
            在时间点上使用-连接开头和结束
                 #-#
    (5) 在指定时间点上,定义步长:
             /#:#即步长;
                    
注意:
    (1) 指定的时间点不能被步长整除时,其意义将不复存在;

    (2) 最小时间单位为“分钟”,想完成“秒”级任务,得需要额外借助于其它机制;

        定义成每分钟任务:而在利用脚本实现在每分钟之内,循环执行多次;       


            示例:
                (1) 3 * * * *:每小时执行一次;每小时的第3分钟;
                (2) 3 4 * * 5:每周执行一次;每周5的4点3分;
                (3) 5 6 7 * *:每月执行一次;每月的7号的6点5分;
                (4) 7 8 9 10 *:每年执行一次;每年的10月9号8点7分;
                (5) 9 8 * * 3,7:每周三和周日;
                (6) 0 8,20 * * 3,7:
                (7) 0 9-18 * * 1-5:
                (8) */5 * * * *:每5分钟执行一次某任务;
                (9) */7
                
crontab命令:
    crontab [-u user] [-l | -r | -e] [-i]
        -e:编辑任务;
        -l:列出所有任务;
        -r:移除所有任务;即删除/var/spool/cron/USERNAME文件;
        -i:在使用-r选项移除所有任务时提示用户确认;
        -u user:root用户可为指定用户管理cron任务;       


本文出自 “我的学习笔记” 博客,请务必保留此出处http://zhaoyongtao.blog.51cto.com/10955972/1771074

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值