web-dev-qa-db-ja.com

AmazonEC2サーバーからファイルをコピーする方法

AWS EC2マシンからいくつかのファイルを必死にコピーしようとしていますが、次のことに苦労しています。

  • 既存のフォルダから一部のファイルのみをコピーできます(すべてのファイルをローカルマシンに再帰的にコピーしたいのですが)
  • scprsyncは、ある場所に完全に新しいファイルを作成すると、パスが存在しないと文句を言います(たとえば、/home/ec2-user/a.txt

私が使用しているコマンドは

scp -rpi ~/.ssh/my-key.pem  [email protected]:/home/ec2-user/a.txt

Ec2-userの下にtouch a.txtを使用してファイルを作成したので、アクセス許可は問題ないはずです(それが重要な場合でも)。

コピーしたい元のフォルダの内容は

-rw-r--r--  1 webapp   webapp     90 17. úno  2015 cron.yaml
drw-r--r--  2 ec2-user ec2-user 4096  1. dub 13.09 db-backup
-rw-r--r--  1 webapp   webapp   2703 17. úno  2015 index.php
-rw-r--r--  1 webapp   webapp    189 17. úno  2015 logo_aws_reduced.gif
drwxrwxrwx 15 ec2-user ec2-user 4096  1. dub 17.35 martintour
drw-r--r-- 14 ec2-user ec2-user 4096 30. bře 20.52 master_martintour
-rw-r--r--  1 webapp   webapp    367 17. úno  2015 scheduled.php
-rw-r--r--  1 webapp   webapp   3490 17. úno  2015 styles.css

ただし、この部分のみがコピーされます

-rw-r--r-- 1 pmensik pmensik   90 úno 17  2015 cron.yaml
-rw-r--r-- 1 pmensik pmensik 2703 úno 17  2015 index.php
-rw-r--r-- 1 pmensik pmensik  189 úno 17  2015 logo_aws_reduced.gif
-rw-r--r-- 1 pmensik pmensik  367 úno 17  2015 scheduled.php
-rw-r--r-- 1 pmensik pmensik 3490 úno 17  2015 styles.css

したがって、-rオプションが機能していないようです。また、前述のように新しく作成したファイルやフォルダーをコピーできない理由についても説明していません。

これに使用したコマンドは

scp -rpi ~/.ssh/my-key.pem  [email protected]:/var/app/current . 

私はすでに権限の変更を試しましたが、完全に失われることはありません。

1
Petr Mensik

宛先ディレクトリがありません。

試してみてください:

scp -rp -i ~/.ssh/my-key.pem [email protected]:/home/ec2-user/a.txt /your/local/dir/

2
Algeriassic

宛先に加えて-アクセス許可は重要です。これは、rootではなくec2-userとしてscp/rsyncを使用してインスタンスにログインしているためです。それにもかかわらず、例えばcron.yamlは誰でも読むことができるので、転送されました。確認してください a.txt所有者は「ルート」ではありません。

試してみてください:

rsync -Hva --progress -e "ssh -i ~/.ssh/my-key.pem" [email protected]:/home/ec2-user/ ./

どこ ./はローカルの宛先ディレクトリです。両方のパスの終わりにある末尾のスラッシュに注意してください。

1
Putnik