rsync
コマンドラインツールすべての Linux ディストリビューション
rsyncはディレクトリ間やコンピュータ間でファイルをコピーし、変更された部分のみを転送するため、繰り返しコピーやバックアップを高速に行えます。ローカルまたはSSH経由で動作し、アーカイブオプション -a を使用することで権限、時刻、リンクを保持します。
1一般的なオプション
-a (archive) は権限、時刻、所有者、シンボリックリンクを保持し、再帰的にコピーします。-v は各ファイルを表示し、-h はサイズを読みやすく表示し、-z はネットワーク経由で圧縮し、--progress は進捗状況を表示します。
2末尾のスラッシュ
rsync -a src/ dest/ は src の中身を dest にコピーします。rsync -a src dest/ はディレクトリ自体をコピーし、dest/src を作成します。これを間違えるのが rsync で最も一般的なミスです。
3--delete と --dry-run
--delete はソースに存在しなくなったファイルを送信先から削除し、完全なミラーを作成します。--dry-run (-n) は何も変更せずに何が起こるかを表示するため、--delete を使用する際は必ず最初に実行してください。
フォルダをサーバーにバックアップする方法
- 最初にテスト:
rsync -avhn --delete ~/Documents/ user@server:/backup/Documents/ - コピーまたは削除されるファイルのリストを確認します。
- 実際に実行:
rsync -avh --delete ~/Documents/ user@server:/backup/Documents/ - 後で同じコマンドを繰り返すと、変更された部分のみが転送されます。
注意点
--deleteを使用する場合、ソースパスを間違えると送信先が空になる可能性があるため、必ず最初に -n を付けて実行してください。- ミラーはバックアップ履歴ではありません。削除または破損したファイルも同様にミラーリングされます。
関連記事
- SSH キーSSH キー認証の仕組み、ssh-keygen を使用したキーの作成方法、サーバーへのインストール方法、および保護方法について解説します。
- findコマンドで大容量ファイルや古いファイルを検索するLinuxでfindコマンドを使用して大容量ファイルや古いファイルを一覧表示し、安全にプレビューした上で確認済みのファイルのみを削除する方法を解説します。
- cron と crontabcron がどのようにスケジュールされたジョブを実行するか、crontab の5つの時間フィールド、システム cron ファイルの場所、および systemd タイマーとの比較について解説します。
出典
- rsync(1) マニュアルページ download.samba.org
- rsync プロジェクトページ rsync.samba.org
最終確認: