rsyncを使用してマイコンピュータにデータを復元することはできません。

rsyncを使用してマイコンピュータにデータを復元することはできません。

私の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 beTOSHIBA -EXT orCRUCIALX6-2` 外部ドライブがいくつかあるので、これが基本構文です。これは素晴らしい作品です。新しいローカルファイルと変更/変更/更新されたローカルファイルが外部ドライブにバックアップされるため、外部ドライブは常に最新の状態に保たれ、ローカルから削除されたすべてのエントリは外部ドライブから削除されます。これが私が望む行動です。

最近、以下を試してみました。外部ドライブからローカルストレージにrsync -ac --delete --keep-dirlinks --exclude='GitHub' /media/user/TOSHIBA-EXT /home/user自分のデータ(含まれていない)を復元しようとしています。最新情報ではないことを知って失望しました。/GitHubTOSHIBA-EXT/home/user/Documents

その結果、、、、および/home/user/TOSHIBA-EXTディレクトリを含むが生成されます。だからrsyncのマニュアルページを開きました。DownloadsDesktopDocumentsPicturesVideos

これらは機能しません:

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ディレクトリを作成し、次のようにする必要があります。DesktopDocuments

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

関連情報