Linux 定时任务日志有记录,实际未执行,什么情况?

2021-09-15 15:25:24 +08:00
 s609926202

日志记录如下:

Sep 15 15:19:01 VM-16-17-centos CROND[831690]: (root) CMD (/data/wwwroot/scripts/cron.sh 100200  > /dev/null 2>&1)
Sep 15 15:19:01 VM-16-17-centos CROND[831689]: (root) CMD (/data/wwwroot/scripts/cron.sh 300 > /dev/null 2>&1)

其中 /data/wwwroot/scripts/cron.sh 100200 > /dev/null 2>$1 这一条没有执行。

初步怀疑是脚本有问题,遂单独在命令行执行 /data/wwwroot/scripts/cron.sh 100200 > /dev/null 2>$1,可以正常执行,说明脚本没问题。

那应该是 crontab 本身的问题?由于同一时间 15:19:01 连续请求 2 次请求,造成冲突导致的?

求解、

1345 次点击
所在节点    Linux
7 条回复
lcdtyph
2021-09-15 15:29:14 +08:00
别重定向到 /dev/null,重定向到文件看看有啥输出呗
s609926202
2021-09-15 15:30:43 +08:00
脚本是这样写的:
```
#!/bin/bash

if [ "$1" -eq 100200 ]; then
curl 'xxx'
elif [ "$1" -eq 300 ]; then
curl 'xxx'
fi
```

定时器规则:
```
15 10 1 * * /data/wwwroot/scripts/cron.sh 300 > /dev/null 2>$1 &
19 15 * * 3 /data/wwwroot/scripts/cron.sh 100200 > /dev/null 2>$1 &
```
s609926202
2021-09-15 15:34:23 +08:00
@lcdtyph 重定向到新建的 log.txt 反而成功了
ddrobot
2021-09-15 15:45:17 +08:00
不是 /dev/null 2>&1 吗?
MartinWu
2021-09-15 15:45:59 +08:00
@s609926202 是你命令就写错了。 是&1 不是 $1
s609926202
2021-09-15 15:58:47 +08:00
@ddrobot 是的
s609926202
2021-09-15 16:00:53 +08:00
@MartinWu 还真是写错了、、

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

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

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

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

© 2021 V2EX