rsyncコピー後のファイルデータの損失

rsyncコピー後のファイルデータの損失

私はrsync -aPv source/ destエラーメッセージを出力せず、失敗状態を返さずに最後まで進みます。それはすべてのファイルsourceをにコピーしますdest。またはそう思いました。

問題は、ソースディレクトリのルートにあるファイルのみが正しくコピーされ、開いて使用できることです。残りのファイルとディレクトリが何らかの方法で破損し、エラーが発生します。

~/Pictures $ cd Screenshots/
cd: Permission denied: “Screenshots/”
~/Pictures $ ls -l Screenshots/
ls: cannot access 'Screenshots/2016-05-02-23:11:15.png': Permission denied
ls: cannot access 'Screenshots/2015-08-07-17-26-33.png': Permission denied
ls: cannot access 'Screenshots/screenshot_2019-05-27_20-41-55_665836194.png': Permission denied
ls: cannot access 'Screenshots/screenshot_2019-05-05_23-17-16_571047883.png': Permission denied
...
total 0
-????????? ? ? ? ?                ? 2015-03-22-03-49-39.png
-????????? ? ? ? ?                ? 2015-04-03-20-17-31.png
-????????? ? ? ? ?                ? 2015-05-18-22-09-39.png
-????????? ? ? ? ?                ? 2015-08-07-17-26-33.png
...

一部のファイルマネージャを使用してこのディレクトリにアクセスできます(PCManFMを試しましたが、レンジャーは機能しません)。ファイルが破損し、指定されたネイティブプログラム(画像の場合はqimgv、ビデオの場合はmpv)で開くことができないというメッセージが表示されます。

この問題により、ファイルやディレクトリが破損し、実際のコンテンツにアクセスできなくなりますが、まだ存在する可能性があるか、メタデータが破損しているか(ほとんどのJPGおよびPNGファイル)はわかりません。これらのファイルとそのコンテンツへのアクセスをどのように復元しますか?

ベストアンサー1

出力は、許可ビットが欠落しているディレクトリを一覧表示しようとしたときに得られるxものとまったく同じです。

以下は、この状況を再現する方法の例です。

$ cd /tmp
$ mkdir dirperms
$ cd dirperms
$ touch foo bar baz
$ mkdir zot
$ cd ..
$ chmod a-x dirperms
$ cd dirperms
bash: cd: dirperms: Permission denied
$ ls -l dirperms
ls: cannot access 'dirperms/baz': Permission denied
ls: cannot access 'dirperms/bar': Permission denied
ls: cannot access 'dirperms/foo': Permission denied
ls: cannot access 'dirperms/zot': Permission denied
total 0
-????????? ? ? ? ?            ? bar
-????????? ? ? ? ?            ? baz
-????????? ? ? ? ?            ? foo
d????????? ? ? ? ?            ? zot/

したがって、使用するのはtestdisk少し過剰になる可能性があります。Screenshots単に。chmod -R u+X Screenshots

権限エラーの根本的な原因は、元のソースファイルシステムがUnixスタイルの権限をサポートしていないファイルシステムである可能性があるため、POSIX互換性のためにファイルシステムドライバによって報告された権限がドライバの実際のアクセス権と一致しないためです。許可しますrsync。そのため、rsync偽の権限がターゲットファイルシステムにコピーされ、実際の実際の権限設定として使用され、問題が発生します。

おすすめ記事