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

2022-02-07 03:09:36 +08:00
 OwO233

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

2135 次点击
所在节点    Debian
20 条回复
msg7086
2022-02-07 03:23:41 +08:00
cron 服务启动了吗?看看 journal 里 cron 的日志。
OwO233
2022-02-07 03:29:41 +08:00
@msg7086 #1 感谢您的回复呀,这边看了 journal 的日志,没有看见有关 crontab 的日志内容。我在昨天刚刚重启过 crontab 。OwQ
msg7086
2022-02-07 03:35:00 +08:00
journalctl -u cron
什么都没有么?
OwO233
2022-02-07 03:40:50 +08:00
@msg7086 #3 我的问题,我打错了。
OwO233
2022-02-07 03:44:06 +08:00
cron 正常运行的。
Livid
2022-02-07 04:25:41 +08:00
可能性很多,比如你脚本里引用的其他脚本可能不在 PATH 里?因为 cron 执行时候的 PATH 和你当前用户的不一定一样。如果有这种问题,最好是都用绝对路径。
singerll
2022-02-07 05:32:23 +08:00
大部分都是权限问题。。
harwck
2022-02-07 08:16:51 +08:00
楼上说的对,要么脚本第 2 行加上你的 PATH=,要么绝对路径,不然会出现各种问题:结果不对,不运行等
plko345
2022-02-07 09:05:24 +08:00
看日志
Ayahuasec
2022-02-07 09:29:16 +08:00
看下脚本是不是没给可执行权限?不然应该不会什么日志都没有。
sagaxu
2022-02-07 09:36:08 +08:00
cron 不执行,80%以上是环境变量或时区问题
xuboying
2022-02-07 09:40:31 +08:00
我记得出错都会出现在 mail 里,查看对应用户的系统邮箱可能会有包含错误信息的邮件。
makelove
2022-02-07 10:07:17 +08:00
有些小众 VPS 水平不行 os 模板里瞎搞,比如 akkocloud.com ,我一装好也是发现 cron 没有运行。且瞎搞 journalctl 配置把内存 /run 目录都被日志占满无法运行 cron
subpo
2022-02-07 10:20:06 +08:00
所以有没有现代的 crontab 工具?
Argon
2022-02-07 10:40:29 +08:00
@subpo systemd-timer
yaleyu
2022-02-08 09:33:59 +08:00
我遇到过脚本只加 PATH 不能正常运行,加 PATH 和 SHELL 才能正常运行的情况,好奇怪。
julyclyde
2022-02-08 16:38:10 +08:00
看看 crond 自己的日志
另外,你用的是用户级 crontab 还是系统级?这俩的格式可是不一样的
OwO233
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
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
2022-02-13 00:46:20 +08:00
@yaleyu #19 非常感谢您解答我的问题,我这边看了一下日志,一开始有时间对不上的问题,这次修正了这个问题之后,脚本执行了,但是我并没有收到机器人的反馈,但是直接在命令行执行脚本就会得到机器人的反馈提示,我添加一下这两行代码试试,很感谢您的帮助。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/832142

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX