Apacheのアクセスログ/etc/httpd/logs/ssl_access_logを、元ファイルはそのまま残した状態でホームディレクトリにコピー・圧縮し、ローカルPCへ転送するまでの手順をまとめます。

なぜこの手順を踏むのか

/etc/httpd/logs/配下のログファイルを直接編集・移動・削除すると、Apacheの動作やログローテーションに影響が出る可能性があります。そのため、必ずコピーを作成してから作業するのが基本です。元ファイルには一切触れません。

リモートサーバーにSSH接続

ssh -i ~/.ssh/key ユーザー名@リモートホスト

リモート側でログを確認・コピー・圧縮

# ログファイルの確認
sudo ls -la /etc/httpd/logs/
 
# ホームディレクトリへコピー(元ファイルはそのまま)
sudo cp /etc/httpd/logs/ssl_access_log ~/ssl_access_log-20260705
 
# ホームディレクトリへ移動して圧縮(元の無圧縮コピーは残す)
cd ~
gzip -c ssl_access_log-20260705 > ssl_access_log-20260705.gz

これで、リモートの~/ssl_access_log-20260705.gzが作成されます。/etc/httpd/logs/ssl_access_logは無変更のままです。

リモートから切断

exit

ローカルにダウンロード(scp)

scp -i ~/.ssh/key ユーザー名@リモートホスト:~/ssl_access_log-20260705.gz ~/Downloads/

コマンド・オプション解説

コマンド/オプション意味
sudo管理者権限で実行。/etc/httpd/logs/ は所有者がroot等のため、通常ユーザーでは読み取り・書き込みができない場合が多い
cpファイルコピー。元ファイルは変更されない
gzip -c圧縮結果を標準出力に出す。リダイレクト(>)でファイルに保存することで、元ファイル(無圧縮)を消さずに残せる
scp -i秘密鍵を指定してSCP転送する。-i はローカル側の鍵ファイルのパス
scp -P接続ポートを指定(大文字)。ssh -p(小文字)とオプションの大文字・小文字が異なるので注意

注意点

/etc/httpd/logs/を直接いじらない

ログファイルはApache自身が書き込み中のファイルです。直接移動・削除・rotateの手動操作を行うと、Apacheがログを書き込めなくなったり、ログローテーションの仕組みと競合したりする可能性があります。作業は必ずコピーに対して行います。

sudoの注意点

/etc/配下のファイルは所有者がroot等になっていることが多く、一般ユーザー権限ではPermission deniedになるケースがあります。

ls -l /etc/httpd/logs/ssl_access_log

で所有者・パーミッションを事前に確認し、必要に応じてsudoを使います。本番サーバーでのsudo操作は、組織によっては申請や担当者への確認が必要な場合があるため、事前にルールを確認しておくと安全です。

gzipの上書き・削除挙動

gzipはオプションの有無で挙動が変わります。

  • gzip ファイル名→ 圧縮した.gzファイルを作り、元ファイルは削除される
  • gzip -c ファイル名 > 新ファイル名.gz→ 圧縮結果を標準出力に流すため、元ファイルは削除されず残る 元ファイル(コピーしたログ)を消さずに残したい場合は、必ず-cオプション付きで実行し、リダイレクト先のファイル名を打ち間違えないよう注意します。打ち間違えると意図しないファイルへの上書きや空ファイル生成につながります。

まとめ(コマンド全体)

# --- リモートにSSH接続 ---
ssh -i ~/.ssh/key ユーザー名@リモートホスト
 
# --- リモート側での操作 ---
sudo ls -la /etc/httpd/logs/
sudo cp /etc/httpd/logs/ssl_access_log ~/ssl_access_log-20260705
cd ~
gzip -c ssl_access_log-20260705 > ssl_access_log-20260705.gz
 
# --- リモートから抜ける ---
exit
 
# --- ローカルでの操作 ---
scp -i ~/.ssh/key ユーザー名@リモートホスト:~/ssl_access_log-20260705.gz ~/Downloads/

ユーザー名@リモートホストの部分は実際の接続情報に置き換えてください。ポート番号が22以外の場合はssh -p ポート番号scp -P ポート番号(大文字)を追加します。



関連記事