2014-12-22 117 views
1

目標是獲取連接到EC2的bash腳本以下載異地備份。我有這個,但是我必須手動從終端運行它們,因爲它們在crontab失敗時出現錯誤「Permission denied(publickey)」,所以密鑰顯然無法添加。連接到EC2的Bash shell cron腳本 - ssh-add失敗

我的理解顯然有一個漏洞。我一直在修補Google幾個小時,但仍然無法正常工作。我在讓腳本自己添加密鑰方面做錯了什麼?

#!/bin/sh 
# Add the client key so we can SSH in 
eval "$(ssh-agent)" 
ssh-add ec2-key.pem 

# Download the web file backup. 
# Example file web1_2013-06-30_00-30.tar.gz 
WEBDATE=`date +"%Y-%m-%d"`; 
echo $(date) " - Web Backup >> Running secure copy: scp {user}@{ip}:/var/backup/web1/web1_$WEBDATE* site-files/" 
scp {user}@{ip}:/var/backup/web1/web1_$WEBDATE* site-files/ 
... etc ... 
+0

你認爲那個腳本是從哪裏運行的?什麼工作目錄?那個'ec2-key.pem'文件在哪裏? –

+0

shell腳本和密鑰文件都位於/ data/backups/{client_dir_here}中。所以他們在同一個目錄中。 – JamesNZ

+1

腳本中的相對路徑不會相對於腳本目錄解析,而是解析爲從中運行腳本的目錄。確保你從'/ data/backups/{client_dir_here}'運行腳本。 –

回答