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?

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...


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


-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.


-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.


Diturunkan tanpa penjelasan
Sridhar Sarnobat
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.