我使用本教程创建了一个 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
。
这可能从终端手动工作,因为您位于精确的目录中,可以正确解释相对路径。