LinuxでSSH経由でファイルサーバーからrsyncバックアップを取る方法




はじめに

サーバー運用やWeb制作の現場では、「リモートのファイルをローカルに安全にコピーしたい」という場面がよくあります。

そんなときに活躍するのが rsync コマンドです。(アールシンクと読みます)

今回は、実際にSSH経由でファイルサーバーに接続し、rsync -avh でローカルにバックアップを取る方法を紹介します。
一度覚えれば、サーバー間の同期やバックアップ作業が一気に楽になります!


コードスクリプト

コードスクリプトの概要

今回実行したコマンドはとてもシンプルです。
SSHを使ってサーバーに接続し、ファイルをミラーリング(同期)する形でローカルにコピーします。

rsync -avh -e ssh username@remote-server:/path/to/remote_dir/ /path/to/local_dir/

オプションの意味

オプション 内容
-a アーカイブモード(パーミッションやタイムスタンプも保持)
-v 詳細表示(どのファイルを転送しているか表示)
-h サイズを人間に読みやすい形式で表示(例:1K, 234M)
-e ssh SSH経由で転送することを指定

実行結果(例)

receiving incremental file list
www/images/logo.png
www/css/style.css
www/index.htmlsent 5.23K bytes received 48.76K bytes 7.13K bytes/sec
total size is 52.00K speedup is 0.98

SSH経由で安全に転送され、ログとして転送ファイル一覧も確認できるのがポイントです。


コード解説

この方法の良い点は、ファイルを安全にバックアップできること です。
rsync は「差分コピー」が可能なので、次回以降の実行時には変更されたファイルだけを転送します。
たとえばWebサイトの更新作業で、差分だけをローカルに反映したいときにも便利です。

また、ssh 経由のため、パスワードや通信内容が暗号化される のも安心です。
もしパスワード入力を毎回省略したい場合は、SSH鍵認証を設定しておくとより効率的です。


注意点

  • rsync のパスの最後に / を付けるかどうかで挙動が変わる

    • /path/to/dir/ → ディレクトリの中身だけコピー

    • /path/to/dir → ディレクトリごとコピー

  • 転送元や転送先のディレクトリが存在しないとエラーになる

  • ファイルサイズが大きい場合、転送に時間がかかるので -z オプション(圧縮)を付けるのもおすすめ




まとめ

今回は、SSH経由でファイルサーバーからローカルへバックアップを取る方法を紹介しました。
rsync はサーバー運用の基本ツールの一つであり、バックアップ、同期、ミラーリング に幅広く使えます。
特に「安全」「効率的」「簡単」の3拍子がそろっているため、Linuxユーザーなら必須コマンドといっても過言ではありません。

コメント

タイトルとURLをコピーしました