ルートファイルシステム全体を/ mntにバックアップするとき、rsyncに/ mnt / procなどを除外するように要求すると、除外は無視されます。

ルートファイルシステム全体を/ mntにバックアップするとき、rsyncに/ mnt / procなどを除外するように要求すると、除外は無視されます。

私はさまざまな種類の星座でさまざまなrsyncコマンドを使用しようとしてきました。これはアーチページにあります。私のLinuxシステムをSMBリポジトリにバックアップします。

これには次のバージョンが含まれます。

  1. rsync -aAXv --exclude=/dev/ --exclude=/proc --exclude=/sys/* --exclude=/tmp/* --exclude=/run/* --exclude=/mnt/* --exclude=/media/* --exclude=/cdrom/* --exclude=/lost+found / /mnt/mounted_smb_storage

  2. rsync -aAXHv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /mnt/mounted_smb_storage

  3. rsync -aAXHv --exclude-from=/path/to/excludelist.txt / /mnt/mounted_smb_storage

引用符があるかどうか...

ルートディレクトリをソースとして使用する限り、常に--excludeコマンドを無視しているようです。ソース/mntを使用して使用する--exclude /mnt/*と、ディレクトリは無視されます。

私はDebian 11とrsyncバージョン3.2.3プロトコルバージョン31を使用しています。

答え1

rsyncを削除してこの問題を解決しましたapt purge rsync

rsyncmaria-db削除時のパッケージへの奇妙な依存関係

別々に再インストールした後、rsyncコマンドは期待どおりに機能しました。

答え2

次のように書くことをお勧めします。

rsync -aAXv --exclude=/dev/ --exclude=/proc/ --exclude=/sys/ --exclude=/tmp/ --exclude=/run/ --exclude=/mnt/ --exclude=/media/ --exclude=/cdrom/ --exclude=lost+found/ / /mnt/mounted_smb_storage

または、中括弧の拡張を理解するシェルを使用します。

rsync -aAXv --exclude=/{dev,proc,sys,tmp,run,mnt,media,cdrom}/ --exclude=lost+found/ / /mnt/mounted_smb_storage

各除外項目の終わりは、その項目がディレクトリであることを/示します。rsyncリーダーは/それぞれをソースパスの上部に接続します。除外されたディレクトリ自体もコピーから省略されます。

より良いことは、SMBストレージサーバーで実行できる場合は、rsyncネットワークコピーを使用して後続のコピーをより効率的に作成できることです。例えば、

 rsync -aAXv --exclude=/{dev,proc,sys,tmp,run,mnt,media,cdrom}/ --exclude=lost+found/ / user@storageServer:/mnt/mounted_smb_storage

-M--fake-superこれらのターゲットの非ルートアカウントの場合は、メタデータプロパティ(所有権など)が各ターゲットファイルに書き込まれるようにバックアップと復元を追加できます。

関連情報