V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gastrodia
V2EX  ›  macOS

Mac 下如何使用 crontab

  •  
  •   gastrodia · 2015-05-05 10:42:20 +08:00 · 10060 次点击
    这是一个创建于 3289 天前的主题,其中的信息可能已经有所发展或是发生改变。

    crontab -e编辑了

    crontab -l

    */60 * * * * echo "on the minute" >> ~/1.txt
    

    任务也存在,但还是执行不了呢? 是不是crontab服务没启动~?

    10 条回复    2017-12-07 09:17:24 +08:00
    icestraw
        1
    icestraw  
       2015-05-05 10:50:39 +08:00
    虽然不理解具体情况,但是你的命令是每小时的意思,而不是每分钟
    yangg
        2
    yangg  
       2015-05-05 10:56:53 +08:00
    ~/1.txt 这个路径不一定能解析的了,试试全路径
    wy315700
        3
    wy315700  
       2015-05-05 11:02:25 +08:00
    crontab里不支持环境变量的,要用全路径
    abelyao
        4
    abelyao  
       2015-05-05 11:43:11 +08:00
    @icestraw 貌似不会出现第 60 分钟的情况,只有 0 - 59 分钟,第 60 分钟的时候已经变成下一个小时的 0 分了… 所以这个任务永远执行不了吧…

    提醒楼主:crontab 中没有按秒触发的,最低单位(也就是左数第一位)是分钟,你要每分钟都触发,直接用 * 就好。
    gastrodia
        5
    gastrodia  
    OP
       2015-05-05 16:35:42 +08:00
    感谢回答,的确是我脚本写错了,是按小时执行的这个- -
    wzqcongcong
        6
    wzqcongcong  
       2015-05-05 21:06:40 +08:00
    mac 下可以使用 LaunchAgent 或者 LaunchDaemon ~~
    icestraw
        7
    icestraw  
       2015-05-06 16:18:55 +08:00
    @abelyao 这个命令的意思是"每60分钟",而不是"第60分钟"
    abelyao
        8
    abelyao  
       2015-05-06 16:37:33 +08:00 via iPhone
    @icestraw 准确点的话应该理解为,当分钟能被60整除的时候吧,但时钟最多只走到59分59秒,不会走到60分0秒,所以不管是第60分钟,还是每60分钟,都不会触发
    icestraw
        9
    icestraw  
       2015-05-06 22:14:53 +08:00
    @abelyao ( ̄▽ ̄)这个意思啊,谢啦~
    tmdbug
        10
    tmdbug  
       2017-12-07 09:17:24 +08:00
    hi,
    @gastrodia
    @icestraw
    @yangg
    @wy315700
    @abelyao
    请问楼主,还有各位,你们的 Mac 的 cron 可以停掉吗?停掉的命令又是什么?
    ( Mac 下 cron 停不掉? https://www.v2ex.com/t/412435
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2961 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 15:01 · PVG 23:01 · LAX 08:01 · JFK 11:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.