自动将文件从本地机器传输到 AWS jumphost

Automate File transfer to AWS jumphost from local machine

我正在尝试自动将文件从我的一个开发服务器备份到 EC2 实例。计划设置一个 cron 作业,每天 运行 脚本。

这就是我要实现的目标。

本地服务器 ---> JUMPHOST ----> EC2 实例

  1. Tar 在我的开发服务器(例如 dev-svr20)中找到目录。
  2. 将 tar 球文件从开发服务器复制到 AWS 跳转主机。
  3. 将tar球文件从跳转主机复制到AWS EC2实例。
  4. 在 AWS EC2 服务器中提取 tar 球。

我可以使用一个脚本完成所有这些任务吗?

我不确定我是否可以 运行 jumphost 上的单个脚本首先从 dev-svr20 获取文件然后移动到 EC2 实例。

我知道我们可以将文件从 AWS jumphost 下载到本地计算机或从本地计算机上传到 jumphost。但是,我们可以换一种方式吗?我的意思是 jumphost 可以从远程服务器 (dev-svr20) 获取文件吗?

当然,这是可能的。您需要编写一个在您的跳转服务器上执行的脚本。用户 运行 此脚本必须能够通过 SSH 连接到您的开发服务器和 EC2 实例,因为您需要通过 SSH 执行其中一些命令。

过程将类似于:

# Create the tarball on the dev server
ssh user@dev-svr20 tar cvf /tmp/my_files.tar /path/to/some/dir
# Copy the tarball to the jump server
scp user@dev-svr20:/tmp/my_files.tar /tmp/my_files.tar
# Copy the tarball to the EC2 instance
scp /tmp/my_files.tar user@ec2-instance:/tmp/my_files.tar
# Extract the tarball on the EC2 instance
ssh user@ec2-instance tar xvf /tmp/my_files.tar

Fabric这样的工具可以为您简化一些步骤,或者您可以在Bash中编写脚本。