11
6

More than 3 years have passed since last update.

SCPコマンドで、EC2インスタンスにあるファイルのダウンロード/アップロードを秒で対応するために

Posted at

はじめに

EC2サーバーのファイルをローカルへダウンロードする時に、実行コマンドなんだったっけ....?となったので、今後秒で対応できるように備忘録として残しておきます。

ダウンロード(EC2インスタンス → ローカル)

EC2サーバーにあるファイルをローカルのデスクトップへダウンロードする場合、以下コマンドを実行します。

scp -i [秘密鍵のパス] [ユーザー名]@[パブリックIP]:[EC2のダウンロード元のパス] [ローカルのダウンロード先のパス]

例えば、EC2インスタンスのApacheのログをデスクトップへダウンロードする場合は、以下のコマンドとなります。

ターミナル.
$ scp -i ~/.ssh/hoge-hoge.pem ec2-user@1.234.567.89:/home/ec2-user/access_log-2020xxxx ~/Desktop
access_log-2020xxxx      100% 4820KB   1.5MB/s   00:03     

以下のようにエラーではじかれることもあります。これはダウンロード(アップロード)先とダウンロード(アップロード)元のディレクトリの権限が影響しているようです。

scp: /var/log/httpd/access_log-2020xxxx: Permission denied

ディレクトリの権限を777に変更するなどして対応できるようですが、私は以下の方法で実行します。ダウンロードしたいファイルを一旦EC2サーバーのHomeへ移動させてからローカルへダウンロードします。

ターミナル.
$ ssh -i hoge-hoge.pem ec2-user@1.234.567.89
$ sudo -i
$ cp /var/log/httpd/access_log-2020xxxx /home/ec2-user/access_log-2020xxxx
$ ll
-rw-r--r-- 1 root     root      4936035 12月 11 14:38 access_log-2020xxxx
$ exit
$ exit
$ scp -i ~/.ssh/hoge-hoge.pem ec2-user@1.234.567.89:/home/ec2-user/access_log-2020xxxx ~/Desktop
access_log-2020xxxx                   100% 4820KB   1.5MB/s   00:03 

アップロード(ローカル → EC2インスタンス)

以下コマンドでEC2サーバーにファイルをアップロードできます。

scp -i [秘密鍵のパス] [ローカルのアップロード元のパス] [ユーザー名]@[パブリックIP]

ターミナル.
scp -i ~/.ssh/hoge-hoge.pem /Desktop/access_log-2020xxxx ec2-user@1.234.567.89:/home/ec2-user/

ディレクトリをアップロードする場合は以下コマンドになります。

scp -r -i [秘密鍵のパス] [ローカルのアップロード元のパス] [ユーザー名]@[パブリック

ターミナル.
scp -r -i ~/.ssh/hoge-hoge.pem /Desktop/access_log-2020xxxx ec2-user@1.234.567.89:/home

終わりに

とりあえずこの対応が一番簡単かなと思うのですが、もしもっと効率の良い方法があればどなたかご教示お願いします。

11
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
6