如何配置crontab以运行ec2-automate-backup.sh脚本

时间:2016-07-08 05:40:47

标签: amazon-ec2 ubuntu-14.04 crontab

大家好我正在尝试为亚马逊上的ec2卷自动备份快照。我正在关注Collin Johnson的ec2-automate-backup脚本 如果在命令行上运行命令,则创建快照(工作):

ubuntu@linuxserver:/usr/local/ec2/scripts$ sudo ./ec2-automate-backup.sh -s tag -t "Backup,Values=true" -c ./cron-primer.sh -r "eu-west-1"

为了测试目的,如果我创建一个crontab它不工作

0 10  * * *  ubuntu /usr/local/ec2/scripts/ec2-automate-backup.sh -s tag -t "Backup,Values=true" -c /usr/local/ec2/scripts/cron-primer.sh -r "eu-west-1"

我的问题出在哪里,我在ubuntu 14.04上运行脚本 - 亚马逊?

2 个答案:

答案 0 :(得分:0)

有两种可能性:

  1. 您需要root权限才能运行该脚本。您可以通过修改root的crontab来解决这个问题:

    sudo crontab -e

  2. 请参阅How to run a cron job using the sudo command

    1. 您需要与脚本位于同一目录中才能执行

      0 10 * * * ubuntu cd /usr/local/ec2/scripts && ./ec2-automate-backup.sh -s tag -t "Backup,Values=true" -c ./cron-primer.sh -r "eu-west-1"

    2. 请参阅What is the 'working directory' when cron executes a job

答案 1 :(得分:0)

crontab文件中,要执行shell脚本,您可以使用以下方法之一:

<强> 1。直接调用shell脚本,即

0 10 * * * /path/to/script.sh

其中script.sh应该是可执行的。

<强> 2。通过sh实用程序执行脚本,即

0 10 * * * sh /path/to/script.sh

这里不需要将script.sh设为可执行文件。

现在,如果您需要转到特定路径然后执行脚本,那么:

  • 直接在crontab文件中提供脚本的完整路径,或
  • 将执行命令包含在其他shell文件中,并从cron执行封闭文件。