如何在 centos 中使用 crontab 执行 bash 脚本?

如何在 centos 中使用 crontab 执行 bash 脚本?

我的 bash 文件不是由以 root 身份创建的 cronjob 执行的。cronjob 设置如下所示

0 0 * * * mysql_backup.sh

是否需要使用 bash 命令进行声明0 0 * * * bash mysql_backup.sh?如果我手动执行我的 bash 脚本,sudo bash mysql_backup.sh它就可以正常工作。

我一直在使用创建 cronjob sudo crontab u root -e,并且 bash 文件位于 centos 的根目录中

答案1

首先,您需要使用完整路径,例如:

0 0 * * * /path/to/mysql_backup.sh

其次,您需要确保您的脚本具有执行权限,或者您可以使用以下命令调用它:

0 0 * * * /bin/bash /path/to/mysql_backup.sh

第三,您需要确保您以足够的权限执行您的 cron 作业。

答案2

您还可以在脚本的第一行添加以下命令:

#!/bin/bash

(假设 bash 位于 /bin/bash)。这将使您的脚本即使直接调用也会由 bash 运行,而不是作为 bash 的参数。

您可以添加一些日志并检查您的 crontab 日志,看看是否存在可以引导您找到解决方案的错误。

相关内容