オプション
-v:詳細
-r:データを再帰的にコピーします(データの転送中にタイムスタンプとパーミッションは保存されません)
-a:アーカイブモードでは、アーカイブモードでファイルを再帰的にコピーすることができます。シンボリックリンク、ファイルのパーミッション、ユーザとグループの所有権、タイムスタンプも保存されます
-z:ファイルデータを圧縮する
cp の代わりとして使う
rsync は cp
コマンドの上位互換として使うことができ、特に大きなファイルのコピーに役立ちます
rsync -P source destination
-P
オプションは --partial --progress
と同じで、一部ずつファイルを転送して、転送中にプログレスバーを表示します。
ディレクトリを再帰的にコピーしたいときは -r --recursive
オプションを使用し、相対パス名を使いたい時は -R
を使います (転送先のフォルダでフォルダ全体の階層を再生成します
バックアップユーティリティとして使う
rsync プロトコルは簡単なバックアップ用途に使うことができ、最後にバックアップした時から変更が入ったファイルだけを転送します
自動バックアップ
このサンプルを使うには、スクリプトを /etc/cron.daily
ディレクトリに作成して、インストール・設定がされている cron デーモンによって定期的にスクリプトは実行されます
vi /etc/cron.daily/backup
#!/bin/bash rsync -a --delete /folder/to/backup /location/of/backup &> /dev/null
-a
- ファイルをアーカイブする。ファイルの属性も保存 (ただし ACL やハードリンク、ケイパビリティなどの拡張属性は除外)
--delete
- バックアップ元で削除されたファイルはバックアップ先でも同じように削除する
ここで、/folder/to/backup
はバックアップしたいものに (例えば /home
)、/location/to/backup
はバックアップの保存先に変更します (例えば /media/disk
)。
最後に、スクリプトを実行可能にします:
chmod +x /etc/cron.daily/backup
SSH を使った自動バックアップ
SSH を使ってリモートホストにバックアップする場合
vi /etc/cron.daily/backup
#!/bin/bash
rsync -a –delete -e ssh /folder/to/backup remoteuser@remotehost:/location/to/backup &> /dev/null
-e ssh
rsync に SSH を使うことを教える
remoteuser
ホスト remotehost
のユーザー
-a
-rlptgoD
オプションと同義 (recursive, links, perms, times, group, owner, devices)
一週間ごとに差分バックアップ
完全なバックアップを作成して一週間ごとに差分バックアップを行う rsync のオプションです
vi /etc/cron.daily/backup #!/bin/bash DAY=$(date +%A) if [ -e /location/to/backup/incr/$DAY ] ; then rm -fr /location/to/backup/incr/$DAY fi rsync -a --delete --inplace --backup --backup-dir=/location/to/backup/incr/$DAY /folder/to/backup/ /location/to/backup/full/ &> /dev/null--inplace
--partial
で指定先のファイルを直接更新
コメント