我在 Amazon EC2 上托管了一个 Ubuntu 服务器。我需要创建一个自动备份方案,因此我在本地网络上创建了另一个托管在虚拟环境中的 Ubuntu 实例。
我设法使用 rsync 命令在同一网络上的两台机器之间传输必要的文件:
rsync -azvv -e ssh /home/path/folder1/ [email protected]:/home/path/folder2
我如何做同样的事情,但将文件从我的亚马逊服务器传输到我的本地服务器? 有没有办法通过端口转发、VPN 或其他方式实现这一点?
不一定非要使用 rsync。如果您知道更好的方法,请告诉我。
答案1
只需交换两个位置:
rsync PARAMETER REMOTE LOCAL
因此,对于您来说,可以执行以下操作:
rsync -azvv -e ssh [email protected]:/home/path/folder2 /home/path/folder1/
答案2
所以您想在本地服务器和亚马逊托管服务器之间设置自动备份?
配置本地服务器和亚马逊服务器之间的 ssh 密钥。
foo@local-server $ ssh-keygen foo@local-server $ scp ~/.ssh/id_rsa.pub amazon-server:~/id_rsa.pub foo@amazon-server $ cat ~/id_rsa.pub >> .ssh/authorized_keys
您应该能够从本地服务器 ssh 到远程服务器而无需密码。确保 .ssh 目录和 authorized_keys 文件的权限分别为 700 和 600。
从本地服务器运行 rsync 命令
foo@local-server $ rsync -azvv amazon-server:folder2 ~/folder1/
你可能希望将其设置为从本地服务器运行的 cronjob
foo@local-server $ crontab -e
将类似以下内容添加到您的 crontab。这将在每晚午夜运行备份。
* 0 * * * rsync -azvv amazon-server:folder2 ~/folder1/