cron 脚本未使用 root crontab 运行

问题描述 投票:0回答:1

我正在我的服务器(Debian 12)中测试 cron 脚本。测试一个非常简单的测试脚本,它会回显文件中的一行:

如果我使用

crontab -e
,脚本可以在我的用户中正常运行。但实际的脚本需要以 root 身份运行,所以我尝试使用
sudo crontab -e
安装测试脚本。在这种情况下,脚本永远不会运行。 我也尝试将脚本放入
/etc/cron.d
中,但仍然不起作用。也尝试过
sudo crontab -e -u root
,但不起作用。没有错误,没有登录
/var/log

我发现的唯一日志是在日志上,但它们毫无用处:

Jan 26 09:45:01 server-1 cron[607]: (root) RELOAD (crontabs/root)
Jan 26 09:45:01 server-1 CRON[15437]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Jan 26 09:45:01 server-1 CRON[15441]: (root) CMD (/bin/bash -c "/tmp/test.sh")
Jan 26 09:45:01 server-1 CRON[15439]: (CRON) info (No MTA installed, discarding output)
Jan 26 09:45:01 server-1 CRON[15439]: pam_unix(cron:session): session closed for user root
linux cron debian
1个回答
0
投票

通过在 cron 脚本中添加

> /tmp/test.log 2>&1
,可以将脚本输出打印到文件中。

* * * * * /bin/bash -c "/tmp/test.sh" > /tmp/test.log 2>&1

这使得调试变得更加容易。在这种情况下,root 用户无法找到可执行文件,因为它不在

PATH
中。

© www.soinside.com 2019 - 2024. All rights reserved.