ログファイルをリモート端末から取得
開発をしていると、リモートの開発環境でログを確認したい場面がよくある。
そこで今回は、セキュアにログファイルを取得する基本的な流れをまとめました。
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サーバーを動かしている必要があります。
通常の開発環境ではあまり使われませんが、双方向でやりとりしたい場合には便利です。
まとめ
- ログはリモートで
tar
やgzip
でまとめておく - 転送は
scp
かsftp get
が簡単で安全 - GUIツールを使うならTera TermのSFTP機能が便利
- SSHサーバーを立てれば、リモートからローカルへpushも可能