【发布时间】:2026-01-21 01:30:02
【问题描述】:
目标是获得一个连接到 EC2 以下载异地备份的 bash 脚本。我有这个,但我必须继续从终端手动运行它们,因为它们从 crontab 失败并出现错误“权限被拒绝(公钥)”,所以密钥显然无法添加。
我的理解显然存在漏洞。我已经在谷歌搜索了几个小时,但仍然无法正常工作。在让脚本自己添加密钥方面我做错了什么?
#!/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} 中。所以它们在同一个目录中。
-
脚本中的相对路径不相对于脚本目录,而是相对于您运行脚本的目录。确保从
/data/backups/{client_dir_here}运行脚本。
标签: bash amazon-ec2 cron crontab ssh-keys