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

脚本添加的 cron 任务不执行,要运行 crontab -e 保存一次才行。

  •  
  •   aocif23 · 2021 年 10 月 1 日 · 3569 次点击
    这是一个创建于 1582 天前的主题,其中的信息可能已经有所发展或是发生改变。

    脚本添加 cron 内容如下,用户名为 test

    #!/bin/bash
    
    USER=test
    
    sudo tee -a /var/spool/cron/crontabs/$USER >/dev/null <<'EOF'
    */5 * * * * echo a >> /tmp/test.txt
    
    EOF
    
    sudo chown -R $USER:crontab "/var/spool/cron/crontabs/$USER"
    

    这里添加后即使 cron 服务已经启动,但还是不执行,要用户运行 crontab -e 保存一次才行

    是添加的方法不对吗?

    第 1 条附言  ·  2021 年 10 月 2 日
    4 楼提供的方法可行。
    7 条回复    2021-10-05 20:02:50 +08:00
    amrnxcdt
        1
    amrnxcdt  
       2021 年 10 月 1 日 via Android
    更新配置文件后需要通知 crond 重载配置
    wd
        2
    wd  
       2021 年 10 月 1 日 via iPhone
    不要改这个文件 你去看看 /etc/cron.d 下面的东西
    FurN1
        3
    FurN1  
       2021 年 10 月 1 日
    @wd 这是 root 的 cron 文件,crontab -e 是改当前用户的
    ThirdFlame
        4
    ThirdFlame  
       2021 年 10 月 1 日   ❤️ 2
    (crontab -l;printf "* * * * * /bin/touch /dev/shm/test; \r\n")|crontab -
    aocif23
        5
    aocif23  
    OP
       2021 年 10 月 2 日
    @ThirdFlame
    这样子添加 cron 任务能正常执行。
    julyclyde
        6
    julyclyde  
       2021 年 10 月 5 日
    @amrnxcdt 应该并不存在所谓“通知 crond”重载配置这个事。具体行为可以看 cron 的日志和 strace 跟踪


    @wd 的做法是比较好的。建议不要用“用户级”crontab,因为容易加不易删。用 cron.d 比较容易将来删除干净
    amrnxcdt
        7
    amrnxcdt  
       2021 年 10 月 5 日 via Android
    @julyclyde 感谢指出,重新检索一下网络,的确不需要显式 reload,crond 会每分钟检查所有配置文件看看有没有任务需要执行。
    参考: https://stackoverflow.com/questions/10193788/restarting-cron-after-changing-crontab-file

    楼主的问题应该检查一下 cron 的日志输出
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2162 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 14:24 · PVG 22:24 · LAX 06:24 · JFK 09:24
    ♥ Do have faith in what you're doing.