2016-07-08 41 views
0

嗨,大家好,我試圖自動爲我的ec2卷的快照備份亞馬遜。我下面由科林·約翰遜 的EC2 - 自動備份腳本如果運行在命令行中它正在創建快照的命令(工作):如何配置crontab運行ec2-automate-backup.sh腳本

[email protected]:/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上運行腳本 - 亞馬遜?

回答

0

有兩種possibilites:

  1. 您需要root訪問權限才能運行該腳本。可以通過修改根的crontab解決這個問題:

    sudo crontab -e

參見How to run a cron job using the sudo command

  • 你需要是在相同的目錄中的腳本來執行它

    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

    +0

    我試過你的建議無濟於事。我不知道自己做錯了什麼。所有的2個腳本,我設置爲可執行模式sudo chmod + x ec2-automate-backup.sh cron-primer.sh – coolman

    0

    crontab文件,執行shell腳本,你可以用下面的辦法之一:

    1.調用shell腳本direcly,即

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

    哪裏script.sh應該是可執行的。

    2. sh實用執行該腳本,即

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

    這裏script.sh不需要進行可執行文件。

    現在,如果你的情況,你需要去一個特定的路徑,然後執行腳本,然後:

    • 要麼提供crontab文件直接或
    • 封閉腳本的完整路徑在其他shell文件中執行命令,並從cron執行封裝文件。
    +0

    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」:我提供了你所說的路徑,但它仍然沒有工作。 – coolman

    +0

    你正在額外增加「。「在腳本路徑前面,它應該是普通路徑,.i.e.'/path/to/script.sh' –