Bagaimana cara membersihkan setelah gagal rsync?

12

Saya membunuh proses "rsync -ah" lokal.
Itu meninggalkan file sampah seperti ".abc.vmdk.zxivMN" di direktori target.
File sampah tidak bisa dihapus pada menjalankan "rsync -ah" berturut-turut.

Detail:
Saya menjalankan diff pada kedua folder yang saya sinkronkan dan melaporkan: "Hanya di / mnt / archive1 / dokumen / umum: .abc.vmdk.zxivMN"

Apa cara terbaik untuk membersihkan file rsync sementara?

pengguna27465
sumber

Jawaban:

12

Katakan rsyncuntuk menghapus file bukan pada sumbernya, dengan --delete-duringatau --delete-after. Hati-hati dan gunakan opsi ini hanya jika Anda tidak memiliki file yang sah pada target yang tidak ada pada sumbernya.

Lihat man rsync.

Tentu saja, Anda selalu dapat menghapus secara manual file yang Anda deteksi dengan diff...

Sven
sumber
Ini tidak baik ketika Anda melakukan salinan daripada memindahkan.
Sridhar Sarnobat
6

Saya melakukannya menggunakan

find -type f -iname ".*.*.??????" -ls

untuk ujian dan

find -type f -iname ".*.*.??????" -delete

untuk jelas

Andrés R. Gard
sumber
-1

Saya menemukan perintah berikut berfungsi untuk saya ketika mencoba untuk menghapus file temp yang ditinggalkan oleh rsync setelah transfer gagal.

find vod-content/ -path '*/.*' -print0 | xargs -0 -r rm -v

Apa yang dilakukan adalah menemukan semua file "tersembunyi" (file yang dimulai dengan karakter ".") Dan meneruskannya ke perintah "rm" untuk menghapusnya.

Masalah yang jelas diketahui tentang kode di atas adalah jika konten Anda mengandung file tersembunyi maka perintah ini juga akan menghapusnya.

arrayown
sumber
-2

Saya mencari solusi yang lebih baik, tetapi satu-satunya yang dapat saya pikirkan adalah memindahkan semua emptyfile mulai dengan ., dan memiliki dua titik lebih lanjut di dalamnya, ke folder tempat sampah (menggunakan rmagak berisiko):

find -type f -empty -iname ".*.*.*" | xargs -n 1 -d'\n' mv -v -t /tmp/

Tidak berarti sangat mudah.

Sridhar Sarnobat
sumber
Diturunkan tanpa penjelasan
Sridhar Sarnobat