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

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

  •  
  •   aocif23 · 2021-10-01 01:55:26 +08:00 · 3193 次点击
    这是一个创建于 1183 天前的主题,其中的信息可能已经有所发展或是发生改变。

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


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

    楼主的问题应该检查一下 cron 的日志输出
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5488 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 08:51 · PVG 16:51 · LAX 00:51 · JFK 03:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.