【问题标题】:How to copy the latest folder from my aws ec2 instance to my local machine?如何将最新文件夹从我的 aws ec2 实例复制到我的本地计算机?
【发布时间】:2016-10-13 23:24:48
【问题描述】:

如何将最新的子目录从我的 aws ec2 实例复制到我的本地计算机?

我的 aws ec2 实例中有一个目录转储。 我的目录的路径是/home/ubuntu/dumps

我的转储目录有基于时间戳的子目录..例如-20160613120500、20160613170545 等。如何将最新的子目录从我的转储文件夹复制到我的本地机器??

我使用的命令是-

   scp -r -i amanaws.pem ubuntu@ec2-instance:~/dumps $local_target_directory

如何修改?

【问题讨论】:

  • 您希望多久运行一次此命令或复制昨天创建的目录?
  • 就像我每天在本地机器的转储目录中创建 4-5 个数据库转储一样。因此,每次我从本地计算机运行 scp 命令时,我都想复制转储文件夹中的最新转储。
  • 我不确定..我可能会经常运行它,也可能每天运行一次。我跑步的时间重要吗?
  • 有一种方法可以复制昨天创建的目录
  • 您可以创建这样的脚本“for i in f/home/ubuntu/dumps f -ctime -1 do scp -r -i amanaws.pem ubuntu@ec2-instance:~/dumps $local_target_directory done”

标签: amazon-web-services amazon-ec2 scp


【解决方案1】:

像这样传输数据的最佳方式是rsync。您可以将它指向存储转储的文件夹,它会复制新文件或已更改的文件,跳过两台机器上已经存在的文件。

Rsync 可以通过 ssh 运行,所以你可以这样做:

rsync -a --progress -e "ssh -i amanaws.pem" ubuntu@ec2-instance:~/dumps $local_target_directory

要仅复制最新文件,请尝试以下操作:

scp -i amanaws.pem ubuntu@ec2-instance:~/dumps/$(ssh -i amanaws.pem ubuntu@ec2-instance 'ls -t dumps | head -1') .

这将 scp 与远程运行短脚本 ls -t dumps | head -1 的结果结合起来。

【讨论】:

  • 谢谢您,先生!但是,这不是我真正想做的。假设每天有 5 次转储,每 2-3 天之后,所以我只想将最新的转储从远程 ec2 实例复制到本地机器。
  • 好的,已更新为仅复制一个最新文件的替代方法。
猜你喜欢
  • 1970-01-01
  • 2014-03-18
  • 2016-08-25
  • 2020-12-13
  • 2012-03-08
  • 1970-01-01
  • 2014-05-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多