Bagaimana melanjutkan proses menyalin file dengan aman dan andal $A
ke lokasi cadangan yang $B
dilakukan dengan pv "$A" > "$B"
atau cat "$A" > "$B"
?
(misalkan file $A
ini sangat besar, mis. file snapshot LVM2)
Apakah bisa dicapai dengan dd
?
Lebih disukai: solusi bash atau python (lebih disukai python3).
Skenario contoh: pv "$A" > "$B"
terputus setelah menyalin 90%. Bagaimana melanjutkannya, untuk menyelesaikan proses penyalinan tetapi tidak mengulangi seluruh pekerjaan lagi?
Jawaban:
Ya, Anda dapat menggunakan dd untuk melewati blok.
Parameter penting di sini adalah
skip
jugaseek
:skip
: lewati BLOCKS blok berukuran ibs pada awal inputseek
: lewati BLOCKS blok ukuran-obs pada awal outputsumber
Anda ingin
rsync
:sumber
--append
.--append
telah berubah sejak versi 3.0.0. Bisakah Anda memastikan saya jika saat ini--append
mengabaikan bagian yang sudah disalin, sementara--append-verify
membaca seluruh A untuk cek checksum? (sebelum versi 3.0.0.--append
berperilaku seperti--append-verify
-> Itulah alasan kesalahpahaman)--append
membuta menambahkan ke file.--append-verify
melakukan hal yang sama tetapi menjalankan checksum pada akhirnya, jika checksum tidak cocokrsync
tampaknya melakukan salinan baru.Apakah Anda mencoba
dd skip
dengan offset ukuran file nyata B (terlepas dari ukuran blok partisi)?Itu akan membuat Anda bagian yang hilang. Pada titik itu Anda bisa mengarahkan
cat
mereka bersama-sama ke file barucat "$B" "$A2" >> "$C"; #mv "$C" "$B"
(di mana$C
tentu saja bagian yang hilang di jalur dengan ruang yang cukup).cat
berfungsi dengan baik untuk menggabungkan binari juga dan dalam hal ini Anda tidak memiliki banyak header file yang akan mendahului penggabungan skrip sederhana. Ada kemungkinan ujung$B
rusak, tetapi dalam hal ini Anda bisa memotongnya dan membaca lebih banyak$A
pada langkah awal dd.sumber