sh 脚本手动运行,但不能通过 cron 运行

sh 脚本手动运行,但不能通过 cron 运行

我使用本教程创建了一个 cronjob: http://www.matt-helps.com/automatic-backup-of-mysql-database-to-s3/

当我运行此命令时它有效sudo sh s3BucketBackupScript.sh

但在 Cron 中配置时无法正确运行。脚本已使用 +x 修改。

我使用 sudo crontab -e 进行了如下配置:

# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command

* * * * * /bin/sh /home/ubuntu/s3BucketBackupScript.sh

但没有结果。我认为 .sh 行后面有一个空行。如果我不使用 sudo 运行脚本,它不会产生任何结果,所以我将它添加到sudo crontab -e

如能得到任何提示我将非常感激。

答案1

请检查是否允许用户在文件中运行 cron 的权限/etc/cron.allow。如果服务器上没有,您可以创建并添加行:

## [root@test]# cat /etc/cron.allow
root
deploy

添加行 ok 后,你可以使用命令重新启动 crond:

[root@test test]# service crond restart

如果更改后仍未运行命令,也许您可​​以使用 root 用户并添加命令,示例如下crontab -e

* * * * * su - [user you must run command] -c "/bin/sh /home/ubuntu/s3BucketBackupScript.sh"

添加命令确定,您应该使用命令重新启动 crond [root@test test]# service crond restart:。

我认为它可能可以帮助您在 crontab 中运行命令。

答案2

请检查您的 s3BucketBackupScript.sh 脚本并确保没有给出相对路径。

单个用户的 CRON 将用户的主目录设置为PWD

这可能从终端手动工作,因为您位于精确的目录中,可以正确解释相对路径。

相关内容