一部のデータディレクトリにアクセスできない場合、rsyncは現在所有しているファイルを上書きしますか?
rsync -amHAXxzvR --update --numeric-ids --progress --include='*/' --include=*.sas7bdat --exclude='*.old/' --exclude=* -e [email protected]:/XXX/ /mnt/z/XXX/.
私のデータへのアクセスは、機関のデータベースアクセスに応じて毎年変わることがあります。たとえば、一部のファイルでは、アクセス権がないと、次のエラーが発生します。 「XXXX」を開けませんでした:権限が拒否されました(13)。
それでは、上記のコマンドを実行すると、rsyncがダウンロードしたがアクセスできない現在のファイルを上書きして削除しますか?
では、どうすれば回避できますか?ありがとうございます。
ベストアンサー1
指定しなかった--delete
ため、ターゲットからファイルは削除されません。権限を直接簡単にテストできます。
想像する
mkdir -p 739797/src 739797/dst
cd 739797
echo first try | tee src/file1 >src/file2 # Create two files
rsync -av src/ dst/ # Copy everything
これで、以下を使用して同じコンテンツが含まれていることをls -l
確認できます。dst/
src/
echo second attempt | tee src/file1 >src/file2 # Update the two files
chmod u= src/file2 # Remove permission from file2
rsync -av src/ dst/ # Attempt to copy everything
rsync
許可拒否失敗が表示されますfile2
。それを使用すると、更新されたがまだ更新されていないことがls -l dst
わかります。また、まだ(正しく)更新されていません。file1
file2
file
-rw-r--r-- 1 roaima roaima 15 Mar 15 13:09 file1
-rw-r--r-- 1 roaima roaima 10 Mar 15 13:04 file2
追加のガイドライン
- データベースまたは他のファイルをバックアップする場合は、コピー中に
rsync
ソースファイルをロックせず、コピーがすぐには行われないことに注意してください。コピー中にソースファイルがrsync
変更されると、ターゲットファイルが検出されない破損で終了する可能性があります。バックアップスナップショットまたはアイドルコピー - シェルがファイルシステムのファイルとディレクトリと一致しようとしないように、
--include
常にワイルドカードパターンを引用してください。書く--exclude
代わりに--exclude=*
--exclude='*'