V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
dante3imin
V2EX  ›  Linux

Linux 定时任务的坑

  •  
  •   dante3imin · 2018-06-25 16:41:19 +08:00 · 5371 次点击
    这是一个创建于 2376 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这个坑不知道有人踩过没,一直以为

    * */1 * * *
    

    表示每个小时执行一次,结果实际是每分钟执行一次 争取的应该是

    0 * * * *
    
    27 条回复    2019-02-14 17:37:30 +08:00
    ophark
        1
    ophark  
       2018-06-25 16:49:40 +08:00
    这不是坑
    Vhc001
        2
    Vhc001  
       2018-06-25 16:54:05 +08:00   ❤️ 2
    题主重新定义了坑

    * * * * * 是每分钟执行一次
    0 * * * * 是每小时执行一次
    0 0 * * * 是每个月执行一次

    没发现哪里有坑
    lihongjie0209
        3
    lihongjie0209  
       2018-06-25 16:54:49 +08:00   ❤️ 13
    一般都是用在线工具直接生成的, 从来不手写

    https://crontab-generator.org/



    Cron Job Generated (you may copy & paste it to your crontab):
    0 * * * * ls >/dev/null 2>&1
    Your cron job will be run at: (5 times displayed)
    2018-06-25 09:00:00 UTC
    2018-06-25 10:00:00 UTC
    2018-06-25 11:00:00 UTC
    2018-06-25 12:00:00 UTC
    2018-06-25 13:00:00 UTC
    ...
    BOYPT
        4
    BOYPT  
       2018-06-25 16:55:24 +08:00
    脑子里的坑(
    ThirdFlame
        5
    ThirdFlame  
       2018-06-25 16:56:11 +08:00
    楼主自己没有理解对。 并不是坑
    dante3imin
        6
    dante3imin  
    OP
       2018-06-25 16:58:35 +08:00
    @ThirdFlame 恩,一直理解错了
    murusu
        7
    murusu  
       2018-06-25 16:59:19 +08:00
    还以为是有什么没留意的 bug,结果是楼主自己没弄懂
    dorothyREN
        8
    dorothyREN  
       2018-06-25 16:59:45 +08:00
    这真不是坑。
    exalex
        9
    exalex  
       2018-06-25 16:59:58 +08:00
    @lihongjie0209 你们都是怎么找到这些偷懒方法的

    收藏了
    alexzhou
        10
    alexzhou  
       2018-06-25 17:00:01 +08:00
    题主想用“/”来表示每*执行一次的操作 ,如果没记错的话应该这样写 0 */1 * * *
    即使是每小时执行一次也应该指明在一个小时内的哪一分钟执行
    feiyuanqiu
        11
    feiyuanqiu  
       2018-06-25 17:00:08 +08:00
    https://crontab.guru/
    nullen
        12
    nullen  
       2018-06-25 17:04:12 +08:00
    不是坑。
    openbsd
        13
    openbsd  
       2018-06-25 17:18:22 +08:00
    这个是没看手册导致的吧 ?
    loryyang
        14
    loryyang  
       2018-06-25 17:24:35 +08:00
    这个其实是挺容易用错的,我也用错过,不过说实话,你搞两把就知道这个坑了,也不算是什么大坑
    loryyang
        15
    loryyang  
       2018-06-25 17:25:04 +08:00
    另外*/1 和*没差别,主要是 0 和*的问题,有时候容易忘记把*改成 0
    zanjie1999
        16
    zanjie1999  
       2018-06-25 17:34:06 +08:00
    怕是看了 strtus 的定时器写法来写 Linux 的吧
    chanssl
        17
    chanssl  
       2018-06-25 18:31:30 +08:00
    以后写完还是先校验一下再写进 Crontab 吧
    https://tool.lu/crontab/
    shijingshijing
        18
    shijingshijing  
       2018-06-25 18:43:09 +08:00
    RTFM
    Tyanboot
        19
    Tyanboot  
       2018-06-26 00:37:14 +08:00 via Android
    自从用了 systemd 的 timer 之后,每分钟执行只需要
    OnCalendar=minutely,每小时只需要 OnCalendar=hourly。可以说是方便了不少。
    lieh222
        20
    lieh222  
       2018-06-26 09:51:21 +08:00
    楼主每两个小时执行一次你认为该怎么写
    50vip
        21
    50vip  
       2018-06-26 09:53:31 +08:00
    不是坑,你需要一个这个: https://atool.vip/crontab
    dante3imin
        22
    dante3imin  
    OP
       2018-06-26 09:57:03 +08:00
    @lieh222 现在知道了应该是指定具体的在哪一分执行,不然就是每两小时没分钟执行一次。
    dante3imin
        23
    dante3imin  
    OP
       2018-06-26 09:58:32 +08:00
    @50vip 3Q,收藏了
    artandlol
        24
    artandlol  
       2018-06-26 13:19:38 +08:00
    系统自带的 crontab 坑比较多,还是用 webcrontab
    linux:
    github.com/lisijie/webcron
    windows:
    https://jingslunt.com/#/user/blog/details/d53fb58f2c9a00f9f17ca6baf44d592f
    zzj0311
        26
    zzj0311  
       2018-06-26 16:34:45 +08:00 via Android
    哦,你说的都对
    liwl
        27
    liwl  
       2019-02-14 17:37:30 +08:00
    @lihongjie0209 我都是手写的,然后用工具验证一遍
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1419 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 23:57 · PVG 07:57 · LAX 15:57 · JFK 18:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.