私はさまざまな種類の星座でさまざまなrsyncコマンドを使用しようとしてきました。これはアーチページにあります。私のLinuxシステムをSMBリポジトリにバックアップします。
これには次のバージョンが含まれます。
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 -aAXHv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /mnt/mounted_smb_storage
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
。
rsync
maria-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
これらのターゲットの非ルートアカウントの場合は、メタデータプロパティ(所有権など)が各ターゲットファイルに書き込まれるようにバックアップと復元を追加できます。