【问题标题】:How to configure crontab to run ec2-automate-backup.sh script如何配置 crontab 以运行 ec2-automate-backup.sh 脚本
【发布时间】:2016-07-08 05:40:46
【问题描述】:

大家好,我正在尝试自动备份我在 Amazon 上的 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 - Amazon 上运行脚本时我的问题在哪里?

【问题讨论】:

    标签: amazon-ec2 ubuntu-14.04 crontab


    【解决方案1】:

    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执行封装文件。

    【讨论】:

    • 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" :我提供了您所说的路径,但仍然无法正常工作。
    • 你添加了额外的“.”在脚本路径的前面。它应该是普通路径,即/path/to/script.sh
    【解决方案2】:

    有两种可能:

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

      sudo crontab -e

    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"

    What is the 'working directory' when cron executes a job

    【讨论】:

    • 我已经尝试过您的建议,但无济于事。我不知道做错了什么。我设置为可执行模式的所有 2 个脚本 sudo chmod +x ec2-automate-backup.sh cron-primer.sh
    猜你喜欢
    • 2021-05-24
    • 2021-11-03
    • 2019-11-16
    • 2016-06-03
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 2020-06-19
    • 2015-10-05
    相关资源
    最近更新 更多