ファイルのバックアップ、コピーをする時に cp コマンドを使うと思いますが、
コピーし忘れたり、同じディレクトリ、ファイルをコピーしたため上書き確認のメッセージが大量に出たりなどの経験はないでしょうか?
rsync は、ファイル、ディレクトリを「同期(sync)」するコマンドです。
ローカルディレクトリ<->ローカルディレクトリ、ローカルディレクトリ<->USBメモリ、ローカルディレクトリ<->リモートディレクトリ間で使用でき
変更があった分だけ更新する」という機能があるので、ディレクトリ単位のバックアップで特に便利に使えます。
USBにコピーして外出したが古いバージョンのファイルをコピーしていた、バックアップしていたと思っていたがコピー対象から外れていたなどミスを防ぐことができます。
rsync コマンドは以下のように実行します。
$ rsync -auzv 同期元ディレクトリ 同期先ディレクトリ
リモートのディレクトリに同期する場合は ssh を使い以下のように行います。
$ rsync -auzv -e "ssh" 同期元ディレクトリ ユーザ名@リモートのIPアドレス:同期先ディレクトリ
-a オプションを指定すると以下のオプションが全て有効になります。有効にしたいオプションがある場合は、-a を外して個別に -rlp など指定します。
-a
-r : ディレクトリを再帰的に処理する
-l : シンボリックリンクをシンボリックリンクのままコピーする
-p : パーミッションを保持する
-t : タイムスタンプを保持する
-o : 所有者をそのまま保持する
-g : 所有グループをそのまま保持する
-D : デバイスファイルや特殊ファイルを保持する
-u : 追加・更新されたファイル・ディレクトリのみをコピーする
-z : 転送中のデータを圧縮する
-v : 詳細を表示
-e : コマンドラインオプション
–exclude ‘*~’ とすると~付のファイルを除外して同期してくれます。複数指定したい場合は、–exclude を複数回記述します。