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

Debian 为啥设置好了 crontab 每日执行一次脚本,结果服务器不执行脚本呀?

  •  
  •   OwO233 · 2022-02-07 03:09:36 +08:00 · 2428 次点击
    这是一个创建于 1054 天前的主题,其中的信息可能已经有所发展或是发生改变。

    0 4 * * * /usr/local/pagermaid/bilibili.sh 就弄了个脚本,也不执行,也没有看见“/var/log”里有日志生成,有仁兄知道这是什么情况吗?

    20 条回复    2022-02-13 00:46:20 +08:00
    msg7086
        1
    msg7086  
       2022-02-07 03:23:41 +08:00
    cron 服务启动了吗?看看 journal 里 cron 的日志。
    OwO233
        2
    OwO233  
    OP
       2022-02-07 03:29:41 +08:00
    @msg7086 #1 感谢您的回复呀,这边看了 journal 的日志,没有看见有关 crontab 的日志内容。我在昨天刚刚重启过 crontab 。OwQ
    msg7086
        3
    msg7086  
       2022-02-07 03:35:00 +08:00
    journalctl -u cron
    什么都没有么?
    OwO233
        4
    OwO233  
    OP
       2022-02-07 03:40:50 +08:00
    @msg7086 #3 我的问题,我打错了。
    OwO233
        5
    OwO233  
    OP
       2022-02-07 03:44:06 +08:00
    cron 正常运行的。
    Livid
        6
    Livid  
    MOD
       2022-02-07 04:25:41 +08:00
    可能性很多,比如你脚本里引用的其他脚本可能不在 PATH 里?因为 cron 执行时候的 PATH 和你当前用户的不一定一样。如果有这种问题,最好是都用绝对路径。
    singerll
        7
    singerll  
       2022-02-07 05:32:23 +08:00 via Android
    大部分都是权限问题。。
    harwck
        8
    harwck  
       2022-02-07 08:16:51 +08:00
    楼上说的对,要么脚本第 2 行加上你的 PATH=,要么绝对路径,不然会出现各种问题:结果不对,不运行等
    plko345
        9
    plko345  
       2022-02-07 09:05:24 +08:00 via Android
    看日志
    Ayahuasec
        10
    Ayahuasec  
       2022-02-07 09:29:16 +08:00 via Android
    看下脚本是不是没给可执行权限?不然应该不会什么日志都没有。
    sagaxu
        11
    sagaxu  
       2022-02-07 09:36:08 +08:00 via Android
    cron 不执行,80%以上是环境变量或时区问题
    xuboying
        12
    xuboying  
       2022-02-07 09:40:31 +08:00
    我记得出错都会出现在 mail 里,查看对应用户的系统邮箱可能会有包含错误信息的邮件。
    makelove
        13
    makelove  
       2022-02-07 10:07:17 +08:00
    有些小众 VPS 水平不行 os 模板里瞎搞,比如 akkocloud.com ,我一装好也是发现 cron 没有运行。且瞎搞 journalctl 配置把内存 /run 目录都被日志占满无法运行 cron
    subpo
        14
    subpo  
       2022-02-07 10:20:06 +08:00
    所以有没有现代的 crontab 工具?
    Argon
        15
    Argon  
       2022-02-07 10:40:29 +08:00 via Android
    @subpo systemd-timer
    yaleyu
        16
    yaleyu  
       2022-02-08 09:33:59 +08:00
    我遇到过脚本只加 PATH 不能正常运行,加 PATH 和 SHELL 才能正常运行的情况,好奇怪。
    julyclyde
        17
    julyclyde  
       2022-02-08 16:38:10 +08:00
    看看 crond 自己的日志
    另外,你用的是用户级 crontab 还是系统级?这俩的格式可是不一样的
    OwO233
        18
    OwO233  
    OP
       2022-02-12 03:43:37 +08:00
    @Livid #6 嗯呢,感谢您的回复。这边改成了绝对路径,但是还是运行失败了。OwQ ,看日志的时候,那段时间的日志不显示。
    @singerll #7 感谢您的回复,我使用 root 跑的那个脚本。
    @harwck #8 感谢您的回复,我使用的是绝对路径。
    @plko345 #9 感谢您的回复,服务器不知道怎么回事,看不到那段时间的日志。QAQ
    @Ayahuasec #10 感谢您的回复,我看一下。
    @sagaxu #11 感谢您的回复,您所说的时区问题指的是?
    @xuboying #12 感谢您的回复,我去看看。
    @makelove #13 感谢您的回复,我买的是 OVH 的 VDS 。
    @subpo #14 感谢您的回复,不是很理解您的意思。
    @Argon #15 感谢您的回复。
    @yaleyu #16 感谢您的回复,您能详细描述一下您的情况吗?
    @julyclyde #17 感谢您的回复,我使用 root 用户执行的 crontab -e ,然后直接编辑他的文件来添加任务的。OwO
    yaleyu
        19
    yaleyu  
       2022-02-12 10:32:33 +08:00
    @OwO233
    我的情况是,命令行执行 /usr/bin/python3 /home/yaleyu/autosign.py 一切正常,但是 crontab -e 一定要添加 SHELL 和 PATH ,比如下面三行才能正常执行

    SHELL=/bin/bash
    PATH=/usr/local/bin:/usr/bin:/usr/sbin
    0 1 * * * /usr/bin/python3 /home/yaleyu/autosign.py
    OwO233
        20
    OwO233  
    OP
       2022-02-13 00:46:20 +08:00
    @yaleyu #19 非常感谢您解答我的问题,我这边看了一下日志,一开始有时间对不上的问题,这次修正了这个问题之后,脚本执行了,但是我并没有收到机器人的反馈,但是直接在命令行执行脚本就会得到机器人的反馈提示,我添加一下这两行代码试试,很感谢您的帮助。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2187 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 16:12 · PVG 00:12 · LAX 08:12 · JFK 11:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.