はじめに
サーバー運用やWeb制作の現場では、「リモートのファイルをローカルに安全にコピーしたい」という場面がよくあります。
そんなときに活躍するのが rsync
コマンドです。(アールシンクと読みます)
今回は、実際にSSH経由でファイルサーバーに接続し、rsync -avh
でローカルにバックアップを取る方法を紹介します。
一度覚えれば、サーバー間の同期やバックアップ作業が一気に楽になります!
コードスクリプト
コードスクリプトの概要
今回実行したコマンドはとてもシンプルです。
SSHを使ってサーバーに接続し、ファイルをミラーリング(同期)する形でローカルにコピーします。
オプションの意味
オプション | 内容 |
---|---|
-a |
アーカイブモード(パーミッションやタイムスタンプも保持) |
-v |
詳細表示(どのファイルを転送しているか表示) |
-h |
サイズを人間に読みやすい形式で表示(例:1K, 234M) |
-e ssh |
SSH経由で転送することを指定 |
実行結果(例)
SSH経由で安全に転送され、ログとして転送ファイル一覧も確認できるのがポイントです。
コード解説
この方法の良い点は、ファイルを安全にバックアップできること です。rsync
は「差分コピー」が可能なので、次回以降の実行時には変更されたファイルだけを転送します。
たとえばWebサイトの更新作業で、差分だけをローカルに反映したいときにも便利です。
また、ssh
経由のため、パスワードや通信内容が暗号化される のも安心です。
もしパスワード入力を毎回省略したい場合は、SSH鍵認証を設定しておくとより効率的です。
注意点
-
rsync
のパスの最後に/
を付けるかどうかで挙動が変わる-
/path/to/dir/
→ ディレクトリの中身だけコピー -
/path/to/dir
→ ディレクトリごとコピー
-
-
転送元や転送先のディレクトリが存在しないとエラーになる
-
ファイルサイズが大きい場合、転送に時間がかかるので
-z
オプション(圧縮)を付けるのもおすすめ
まとめ
今回は、SSH経由でファイルサーバーからローカルへバックアップを取る方法を紹介しました。rsync
はサーバー運用の基本ツールの一つであり、バックアップ、同期、ミラーリング に幅広く使えます。
特に「安全」「効率的」「簡単」の3拍子がそろっているため、Linuxユーザーなら必須コマンドといっても過言ではありません。
コメント