私のLinux Mint 20.2システムは、次のデータに設定されました。
/home/user/Desktop
/home/user/Documents
/home/user/Pictures
/home/user/Videos
/home/user/Downloads
/home/user/GitHub
私は以下を使用してこのデータをバックアップしますrsync -ac --info=progress2 --delete --keep-dirlinks /home/user/{Downloads,Desktop,Documents,GitHub,Pictures,Videos} /media/user/<DRIVE-NAME>
。<DRIVE-NAME> might be
TOSHIBA -EXT or
CRUCIALX6-2` 外部ドライブがいくつかあるので、これが基本構文です。これは素晴らしい作品です。新しいローカルファイルと変更/変更/更新されたローカルファイルが外部ドライブにバックアップされるため、外部ドライブは常に最新の状態に保たれ、ローカルから削除されたすべてのエントリは外部ドライブから削除されます。これが私が望む行動です。
最近、以下を試してみました。外部ドライブからローカルストレージにrsync -ac --delete --keep-dirlinks --exclude='GitHub' /media/user/TOSHIBA-EXT /home/user
自分のデータ(含まれていない)を復元しようとしています。最新情報ではないことを知って失望しました。/GitHub
TOSHIBA-EXT
/home/user/Documents
その結果、、、、および/home/user/TOSHIBA-EXT
ディレクトリを含むが生成されます。だからrsyncのマニュアルページを開きました。Downloads
Desktop
Documents
Pictures
Videos
これらは機能しません:
rsync -ac --delete --keep-dirlinks --exclude='GitHub' /media/user/TOSHIBA-EXT/{Downloads, Desktop, Documents, Pictures, Videos} /home/user/{Downloads, Desktop, Documents, Pictures, Videos}
- ダウンしていると思います。
rsync -ac --delete --keep-dirlinks --exclude='GitHub' /media/user/TOSHIBA-EXT/{Downloads, Desktop, Documents, Pictures, Videos} /home/user/
- ダウンしていると思います。
rsync -ac --delete --keep-dirlinks --exclude='GitHub' /media/user/TOSHIBA-EXT/ /home/user/{Downloads, Desktop, Documents, Pictures, Videos}
- ダウンしていると思います。
rsync -ac --delete --keep-dirlinks --exclude='GitHub' /media/user/TOSHIBA-EXT/ /home/user/
- 次のエラーで失敗しますcannot delete non-empty directory: .local/shore/Trash/files/Videos}/TOSHIBA-EXT
。他のエラーも同様です。
rsync -acr --delete --keep-dirlinks --exclude='GitHub' /media/user/TOSHIBA-EXT/ /home/user/
- 返されたエラーは上記と似ています。
rsync -acr --delete --keep-dirlinks --exclude='GitHub' /media/user/TOSHIBA-EXT/ /home/user/
- 作る/home/user/TOSHIBA-EXT
。
私が求めている行動は次のとおりです。
このディレクトリの内容をコピーしてください。 | 再開: |
---|---|
/media/user/TOSHIBA-EXT/Desktop |
/home/user/Desktop |
/media/user/TOSHIBA-EXT/Documents |
/home/user/Documents |
/media/user/TOSHIBA-EXT/Pictures |
/home/user/Pictures |
/media/user/TOSHIBA-EXT/Videos |
/home/user/Videos |
/media/user/TOSHIBA-EXT/Downloads |
/home/user/Downloads |
rsyncのマニュアルページとduckduckgoの結果を読みましたが、助けが必要なようです。
上記の回復動作を実行するには、回復コマンドをどのように変更する必要がありますか?
答え1
回復のために、ソースパスに末尾のスラッシュがありません。ドキュメント(man rsync
)には次のように記載されていますが、ページが長くて見逃しやすいです。
/
ソースの末尾を「名前によるディレクトリのコピー」ではなく「このディレクトリの内容のコピー」と考えることができますが、どちらの場合も、インクルードディレクトリの属性がターゲットのインクルードディレクトリに送信されます。
-c
()フラグも削除する必要があります--checksum
。これには何の価値も追加されず、バックアップ速度が大幅に遅くなります。
したがって、バックアップはターゲットになどのDownloads
ディレクトリを作成し、次のようにする必要があります。Desktop
Documents
rsync -avi --delete /home/user/{Downloads,Desktop,Documents,GitHub,Pictures,Videos} /media/user/<DRIVE-NAME>
対応する完全な復元は次のとおりです。ターゲットから最新のファイルを更新しないようにu
()を追加し、バックアップされていないディレクトリとファイルを削除しないように削除しました。--update
--delete
rsync -auvi /media/user/<DRIVE-NAME>/ /home/user/
答え2
誰かがこのような記事を投稿しました。私はあなたが余分な/で終わったと思います。
末尾のスラッシュが重要です。ソースの末尾に「/」を使用すると、rsync は最後のフォルダの内容をコピーします。ソースの末尾に「/」が使用されていない場合、rsyncは最後のフォルダとその内容をコピーします。注:ソースディレクトリの末尾のスラッシュ(/)はrsyncコマンドの動作を変更します。
ただし、まだスクリプトを実行して動作していることを確認する必要があることがよくあります。私のデータは/mnt/dataにマウントされているパーティションにあり、ドキュメント、音楽などのすべてのフォルダが含まれています。フラッシュドライブは通常、パーティションラベルがdata256なので、/media/fred/data256に自動的にマウントされます。
これが私の回復です:
rsync -aruvP /media/fred/data256/Documents /mnt/data
以下は、256 GBのフラッシュドライブにコピーしたコピーです。
rsync -aruvlP --delete /mnt/data /media/fred/data256
すべてのフォルダをコピーするために128GBのフラッシュドライブを使用することはありません。
rsync -aruvP --delete /media/fred/data128/Documents /mnt/data
rsync -aruvP --delete /mnt/data/Documents /media/fred/data128