crontab 订阅
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。 展开全文
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。
信息
使用环境
Linux
类    属
程序指令
应用学科
计算机
所属领域
计算机
中文名
crontab
crontabcrontab文件的含义
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:minute hour day month week command其中:minute:表示分钟,可以是从0到59之间的任何整数。hour:表示小时,可以是从0到23之间的任何整数。day:表示日期,可以是从1到31之间的任何整数。month:表示月份,可以是从1到12之间的任何整数。week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
收起全文
精华内容
参与话题
问答
  • Crontab

    2019-10-03 20:56:18
    crontab -e 编辑crontab服务文件 crontab -l 查看文件内容 cat /etc/crontab 查看配置文件内容 模板: */10 * * * * /home/amber/issue/yare-server/bin/yaclrd >> /home/log/yaclrd.log 2>&1 ...

    crontab  -e      编辑crontab服务文件

    crontab  -l     查看文件内容

    cat /etc/crontab  查看配置文件内容

    模板:

    */10 * * * * /home/amber/issue/yare-server/bin/yaclrd >> /home/log/yaclrd.log 2>&1

    解析:执行脚本并将log记录在指定位置

    本地虚机:

    /root/environment/bomm/bin/python2.7 /home/amber/xxx/xxx/backend/utils/snmp/UploadNetInfoValidate.py >> /home/log/valid_nexthop.log 2>&1    

     

    安装成功:

    crontab: installing new crontab

     

    出错:如果报错bad minute代表格式不对,需要放在nodepad里查看空格

    展开全文
  • github:https://github.com/jiasion/eslog wechat:minghui-666 利用redisson实现多实例抢占定时任务 pom.xml <dependency> <groupId>org.redisson</groupId> <...r...

    github:https://github.com/jiasion/eslog

    wechat:minghui-666

    利用redisson实现多实例抢占定时任务

    pom.xml

    <dependency>
                <groupId>org.redisson</groupId>
                <artifactId>redisson</artifactId>
                <version>3.12.0</version>
    </dependency>

    Kernel.java - 重写多线程调度

    package com.brand.log.scheduler;
    
    import org.springframework.context.annotation.Configuration;
    import org.springframework.scheduling.annotation.SchedulingConfigurer;
    import org.springframework.scheduling.config.ScheduledTaskRegistrar;
    
    import java.util.concurrent.Executors;
    
    @Configuration
    public class Kernel implements SchedulingConfigurer {
    
        @Override
        public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
            //设定一个长度10的定时任务线程池
            taskRegistrar.setScheduler(Executors.newScheduledThreadPool(4));
        }
    }

    RedissonManager.java  -  分布式锁的实现

    package com.brand.log.util;
    
    import lombok.extern.slf4j.Slf4j;
    import org.redisson.Redisson;
    import org.redisson.config.Config;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;
    
    import javax.annotation.PostConstruct;
    
    @Component
    @Slf4j
    public class RedissonManager {
    
    
        @Value("${spring.redis.host}")
        private String host;
    
        @Value("${spring.redis.port}")
        private int port;
    
        private Redisson redisson = null;
        private Config config = new Config();
    
        @PostConstruct
        private void init() {
            try {
                config.useSingleServer().setAddress("redis://" + host + ":" + port);
                log.info("redisson address {} {}", host, port);
                redisson = (Redisson) Redisson.create(config);
                log.info("Redisson 初始化完成");
            }
            catch (Exception e) {
                log.error("init Redisson error ", e);
            }
        }
    
        public Redisson getRedisson() {
            return redisson;
        }
    }

    CronSynData.java

    package com.brand.log.scheduler;
    import com.brand.log.util.DateFormatV1;
    import com.brand.log.util.RedisUtil;
    import com.brand.log.util.RedissonManager;
    import lombok.extern.slf4j.Slf4j;
    import org.redisson.Redisson;
    import org.redisson.api.RLock;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.stereotype.Component;
    import java.util.concurrent.TimeUnit;
    
    @Component
    @Slf4j
    public class CronSynData {
    
        @Autowired
        RedissonManager redissonManager;
    
        @Autowired
        RedisUtil redisUtil;
    
        @Autowired
        DateFormatV1 dateFormatV1;
    
        private String lokFlag = ".handleKernel";
    
        private Redisson redisson = null;
    
        /*
        * java定时脚本挂靠实例
        * 多实例会有重复调用问题 + 使用Redisson实现分布式锁
        * 业务逻辑必须加锁 + 且需要保证 tryLock 等待时间小于cron的最小间隔执行时间
        * */
        @Scheduled(cron = "*/10 * * * * *")
        public void handleKernel() {
            redisson = redissonManager.getRedisson();
            if (redisson != null) {
                RLock lock = redisson.getLock(this.getClass().getName() + lokFlag);
                Boolean stat = false;
                try {
                    // 尝试加锁,立即返回,最多等待5s自动解锁
                    stat = lock.tryLock(0, 5, TimeUnit.SECONDS);
                    if (stat) {
                        log.info("{} 取锁成功!{}",this.getClass().getName(), Thread.currentThread().getName());
                        redisUtil.checkCount("log:limit_", dateFormatV1.getDate("HH", "GMT+8"), 60*10, 1000);
                    } else {
                        log.info("{}没有获取到锁:{}", this.getClass().getName(), Thread.currentThread().getName());
                    }
                } catch (InterruptedException e) {
                    log.error("Redisson 获取分布式锁异常", e);
                    if (!stat){
                        return;
                    }
                    lock.unlock();
                }
            }
    
        }
    
    }
    

    kibana - 6个实例

    展开全文
  • crontab

    2019-07-11 17:56:17
    每晚八点执行 c2 = crontab(minute=0, hour=20) 每十五分钟执行一次 crontab(minute=’*/15’)

    每晚八点执行
    c2 = crontab(minute=0, hour=20)

    每十五分钟执行一次
    crontab(minute=’*/15’)

    展开全文
  • CRONTAB

    2018-02-08 18:32:21
    不错的资料: ... 是什么? ...安装检查CRONTAB服务 检查工具是否安装 crontab -l 检查服务是否启动 service crond status 安装cron - yum install vixie-cron - yum instal...

    不错的资料:

    http://www.cnblogs.com/peida/archive/2013/01/08/2850483.html

    是什么?

    这里写图片描述

    这里写图片描述

    安装检查CRONTAB服务

    • 检查工具是否安装 crontab -l
    • 检查服务是否启动 service crond status

    安装cron
    - yum install vixie-cron
    - yum install crontabs

    小实例

    service crond status    #查看服务是否启动
    service crond start #如没有启动服务,启动服务
    crontab -l      #查看当前定时任务列表
    crontab -e      #打开定时任务列表文件,进行编辑
    */1 * * * * date >> /tmp/log.txt    #在最后一行插入内容,保存退出
    tail -f /tmp/log.txt    #监听log.txt文件内容

    基本组成

    这里写图片描述

    配置方式

    这里写图片描述

    常用配置:
    这里写图片描述

    这里写图片描述

    这里写图片描述

    分用户创建定时任务

    crontab -l 当前登录用户的定时任务列表
    crontab -e 打开定时任务列表,编辑

    useradd crontester -> 添加一个 用户
    crontab -e -u crontester -> 打开指定用户的任务列表,编辑
    crontab -l -u crontester -> 打开指定用户的定时任务列表

    tail -f /var/log/cron 查看定时任务日志

    Crontab配置文件

    全局配置文件
    - /etc/crontab
    - 注意格式

    vi /etc/crontab

    展开全文

空空如也

1 2 3 4 5 ... 20
收藏数 26,825
精华内容 10,730
关键字:

crontab