リモート環境からログファイルを安全に持ってくる方法

ログファイルをリモート端末から取得

開発をしていると、リモートの開発環境でログを確認したい場面がよくある。
そこで今回は、セキュアにログファイルを取得する基本的な流れをまとめました。


1️⃣ リモート側でログをまとめる

まず、リモート環境でログを1つにまとめておくと後が楽です。
複数のログをまとめたり圧縮したりするには、以下のようなコマンドを使います。

# ログを1つのアーカイブにまとめる
tar czvf logs.tar.gz /var/log/app/

または分けて実行する場合:

tar cvf logs.tar /var/log/app/
gzip logs.tar

これで logs.tar.gz ができあがります。
このファイルをローカル端末に持ってくるのが次のステップです。


2️⃣ ファイルを送る・受け取る方法

💡 一番簡単:ターミナルソフトのSFTP機能を使う

もし Tera Term などを使っている場合は、SFTP機能から直接ファイルをダウンロードできます。
GUIで操作できるので、コマンドに慣れていない人にはこれが一番手軽です。


🧑‍💻 コマンドでやる場合:scp または sftp

リモート端末にSSHで接続できるなら、ローカル端末から次のように**scpコマンド**を使うだけでOKです。

scp user@remote.example.com:/home/user/logs.tar.gz .

この場合、ファイルはリモートからローカルへpullしてくる形になります。
もしsftpを使いたい場合は、以下のようにします。

sftp user@remote.example.com
sftp> get logs.tar.gz
sftp> bye

どちらも安全な転送方法です。


3️⃣ (上級編)ローカル側にSSHサーバーがある場合

少し高度な方法ですが、ローカル側にSSHサーバーを立てておけば、
リモート端末からローカルへ送信(push) することも可能です。

sftp> put logs.tar.gz

ただし、この方法はローカル側でSSHサーバーを動かしている必要があります。
通常の開発環境ではあまり使われませんが、双方向でやりとりしたい場合には便利です。


まとめ

  • ログはリモートでtargzipでまとめておく
  • 転送は scpsftp get が簡単で安全
  • GUIツールを使うならTera TermのSFTP機能が便利
  • SSHサーバーを立てれば、リモートからローカルへpushも可能