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}'运行脚本。 –