はじめに
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
終わりに
とりあえずこの対応が一番簡単かなと思うのですが、もしもっと効率の良い方法があればどなたかご教示お願いします。