Sh 脚本不在 crontab 中运行,而是使用 ./ 手动运行

Sh 脚本不在 crontab 中运行,而是使用 ./ 手动运行

我有一个 .sh 脚本,已使用以下命令将其放入 crontab 中:

0 * * * * /root/Linux/lansare.sh

即使我将脚本设为可执行文件,它也不会运行。我查了一下,有x。我在脚本之前尝试编写:#!/bin/sh 但它仍然无法运行

如果我像./lansare.sh从它工作的文件夹中手动运行它一样。

你能帮我让它在 crontab 中工作吗?

谢谢

答案1

把它放在你的 crontab 中

0 * * * * /root/Linux/lansare.sh >> /root/Linux/lansare.log 2>&1

然后读取/root/Linux/lansare.log

这样,您将看到两个输出流(Stdout 和 Stderror),并且您将知道脚本中出了什么问题。

答案2

有两种不同的方法将其放入 crontab 中:

  1. 您是否运行了crontab -e在您输入的位置启动编辑器0 * * * * /root/Linux/lansare.sh?如果是这样,请确保运行crontab -e命令作为根用户因为你的脚本位于/root普通用户没有权限的地方。

  2. 你是把它放进去/etc/crontab还是放在一个文件里/etc/cron.d/?如果是这样,那么你有包括用户名您想用来运行该root行中的脚本(在您的情况下)。像这样:

    0 * * * * root /root/Linux/lansare.sh
    #         ^^^^----[here]
    

相关内容