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 ...
你認爲那個腳本是從哪裏運行的?什麼工作目錄?那個'ec2-key.pem'文件在哪裏? –
shell腳本和密鑰文件都位於/ data/backups/{client_dir_here}中。所以他們在同一個目錄中。 – JamesNZ
腳本中的相對路徑不會相對於腳本目錄解析,而是解析爲從中運行腳本的目錄。確保你從'/ data/backups/{client_dir_here}'運行腳本。 –