Saya memiliki pohon direktori yang ingin saya buat cadangannya ke cakram optik. Sayangnya, ukurannya melebihi ukuran disk apa pun (sekitar 60GB). Saya mencari skrip yang akan membagi pohon ini menjadi potongan-potongan berukuran tepat dengan tautan keras atau yang lainnya (membiarkan dokumen asli tidak tersentuh). Saya kemudian bisa memberi makan pohon ukuran gigitan ini ke dalam proses pencadangan (tambahkan PAR2 redundansi, dll.).
Ini bukan skrip mewah, tapi sepertinya sudah dilakukan. Saran?
(Mencentang dan menulis dalam satu langkah adalah jalan karena saya ingin melakukan lebih banyak hal sebelum file dibakar.)
backup
disk-usage
split
burning
Reid
sumber
sumber
par2
perlindungan.Jawaban:
Ada aplikasi yang dirancang untuk ini:
dirsplit
Biasanya tinggal
cdrkit
ataudirsplit
paket.Itu dapat membuat folder yang siap digunakan dengan tautan untuk dengan mudah membuat DVD dengan K3b atau perangkat lunak GUI lainnya
sumber
genisoimage
paket.Anda juga dapat mencoba fpart , alat yang saya tulis (berlisensi BSD): https://sourceforge.net/projects/fpart/
sumber
Saya pernah membuat naskah jelek untuk tujuan yang sama. Itu hanya kludge, tetapi ketika saya menulisnya, saya tidak peduli dengan waktu eksekusi atau kecantikan. Saya yakin ada lebih banyak versi "produk" dari konsep yang sama, tetapi jika Anda ingin mendapatkan beberapa ide atau sesuatu untuk memulai peretasan, begini (melakukannya pada tahun 2008, jadi gunakan dengan risiko Anda sendiri!): - )
Saya pikir saya memiliki hasil yang dibagikan melalui samba ke host windows yang membakar disk dari itu. Jika Anda menggunakan hal di atas yang tidak diubah, Anda mungkin ingin menggunakan
mkisofs
atau pengarsip lain yang menyelesaikan symlink.sumber
\[?*
). Bacaan yang disarankan: jangan parsing output dari ls , $ VAR vs $ {VAR} dan mengutip atau tidak mengutip . Perhatikan bahwa saya belum menguji skrip yang dihasilkan. Jika Anda tidak mengerti satu perubahan saya, jangan ragu untuk bertanya.[
bertentangan dengantest
) ...Saya pernah menulis skrip untuk memecahkan masalah yang sama - saya menyebutnya "sebarkan" (Anda dapat membaca kode utama skrip atau file dengan pesan bantuan , atau mengunduhnya sebagai paket ); dari deskripsinya :
Itu melakukan seluruh proses dalam beberapa tahap: pada satu tahap, ia menciptakan "layout" furure disk dengan menggunakan symlink ke file asli - sehingga Anda dapat melakukan intervensi dan mengubah pohon disk masa depan.
Rincian tentang penggunaannya dapat dibaca dalam pesan bantuan yang dicetak oleh skrip (atau dengan melihat ke kode sumber).
Itu ditulis dengan kasus penggunaan yang lebih rumit dalam pikiran (mengeluarkan pembaruan sebagai "diff" - kumpulan file baru yang ditambahkan - ke kumpulan file yang awalnya direkam), sehingga mencakup satu tahap awal tambahan, yaitu, "memperbaiki "Keadaan saat pengumpulan file (untuk kesederhanaan, ia melakukan ini dengan mereplikasi koleksi file asli dengan menggunakan symlink, di tempat kerja khusus untuk menyimpan keadaan koleksi; kemudian, beberapa waktu di masa depan, itu akan dapat membuat perbedaan antara keadaan saat ini dari koleksi file dan keadaan tersimpan ini). Jadi, meskipun Anda mungkin tidak membutuhkan fitur ini, Anda tidak dapat melewati tahap awal ini, AFAIR.
Juga, saya tidak yakin sekarang (saya menulisnya beberapa tahun yang lalu) apakah itu memperlakukan pohon yang kompleks dengan baik, atau seharusnya hanya membagi direktori file (satu level) biasa. (Silakan melihat ke dalam pesan bantuan atau kode sumber untuk memastikan; Saya akan mencari ini juga, sedikit kemudian, ketika saya akan punya waktu.)
Hal-hal yang berhubungan dengan APT adalah opsional, jadi jangan perhatikan bahwa hal itu dapat menyiapkan koleksi paket untuk digunakan oleh APT jika Anda tidak membutuhkannya.
Jika Anda tertarik, tentu saja, silakan menulis ulang sesuai kebutuhan Anda atau menyarankan peningkatan.
(Harap perhatikan bahwa paket menyertakan tambalan berguna tambahan yang tidak diterapkan dalam daftar kode yang disajikan di repo Git yang tertaut di atas!)
sumber
distribute
yang menyelesaikan tugas penting yang ditanyakan di sini.Kita tidak boleh lupa bahwa esensi dari tugas itu memang cukup sederhana; seperti yang dimasukkan dalam tutorial tentang Haskell (yang ditulis sekitar penyelesaian solusi untuk tugas ini, secara bertahap disempurnakan)
(dari panduan Hitchhikers ke Haskell, Bab 1 )
(Tambahan lagi, dalam pertanyaan Anda, Anda ingin dapat mengubah (mengedit) tata letak disk yang dihasilkan, dan kemudian menggunakan alat untuk membakarnya.)
Anda dapat menggunakan kembali (mengadaptasi dan menggunakan kembali) varian sederhana dari program dari tutorial Haskell untuk memisahkan koleksi file Anda.
Sayangnya, di dalam
distribute
alat yang saya sebutkan di sini dalam jawaban lain , kesederhanaan tugas membelah penting tidak diimbangi dengan kompleksitas dan kembung dari antarmuka penggunadistribute
(karena ditulis untuk menggabungkan beberapa tugas, walaupun dilakukan secara bertahap, tetapi masih dikombinasikan tidak dengan cara terbersih yang bisa saya pikirkan sekarang).Untuk membantu Anda menggunakan kodenya, berikut adalah kutipan dari bash-code
distribute
(pada baris 380 ) yang berfungsi untuk melakukan tugas "esensial" ini yaitu memecah kumpulan file:( baca selengkapnya setelah baris 454 )
Perhatikan bahwa
eatFiles
fungsi menyiapkan tata letak disk masa depan sebagai pohon di mana daunnya adalah symlink ke file nyata. Jadi, ini memenuhi persyaratan Anda bahwa Anda harus dapat mengedit tata letak sebelum membakar. Themkisofs
utilitas memiliki opsi untuk mengikuti symlink, yang memang digunakan dalam kode sayamkiso
fungsi .Skrip yang disajikan (yang dapat Anda ambil dan tulis ulang sesuai kebutuhan Anda, tentu saja!) Mengikuti ide yang paling sederhana: untuk menjumlahkan ukuran file (atau, lebih tepatnya, paket dalam hal
distribute
) hanya dalam urutan yang terdaftar, jangan dapat melakukan pengaturan ulang."Hitchhikers guide to Haskell" menangani masalah pengoptimalan dengan lebih serius dan menyarankan varian program yang akan mencoba mengatur ulang file dengan cerdas, agar mereka lebih pas di disk (dan membutuhkan lebih sedikit disk):
(baca lebih lanjut di Bab 3 dan lebih lanjut.)
Alat pintar lainnya
Saya telah diberitahu juga bahwa Debian menggunakan alat untuk membuat CD distro-nya yang lebih pintar daripada
distribute
koleksi paket wrt saya : hasilnya lebih baik karena peduli dengan ketergantungan antar paket dan akan mencoba membuat kumpulan paket yang berjalan disk pertama ditutup di bawah dependensi, yaitu, tidak ada paket dari disk ke-1 yang memerlukan paket dari disk lain (atau setidaknya, menurut saya, jumlah dependensi seperti itu harus diminimalkan).sumber
backup2l dapat melakukan banyak pekerjaan ini. Bahkan jika Anda tidak menggunakan paket secara langsung, Anda mungkin mendapatkan beberapa ide skrip darinya.
sumber
The
rar
Pengarsip dapat diinstruksikan untuk secara otomatis membagi arsip itu menciptakan menjadi potongan dari ukuran tertentu dengan-vsize
bendera.Pengarsipan pohon direktori yang dinamai
foo
menjadi potongan, katakanlah, 500 megabyte masing-masing yang Anda tentukanrar a backup.rar -v500m foo/
sumber
rar
, kecuali jika Anda membongkar setiap "bagian" lagi ke direktori sendiri, yang tentu saja tidak akan berfungsi, karena bagian-bagiannya tidak dirancang seperti itu, dan tidak terpecah pada batas-batas file.tar
+split
, maka ada juga dar ; inilah catatan tentang fitur yang relevan: "(SLICES) dirancang untuk dapat membagi arsip menjadi beberapa media yang dapat dilepas berapa pun jumlahnya dan berapa pun ukurannya". Dibandingkan dengantar
+split
, saya berasumsi, ini memungkinkan beberapa cara lebih mudah untuk mengakses file yang diarsipkan. (BTW, ia juga memiliki fitur yang menyerupaidistribute
: "CADANGAN DIFERENSIAL" & "DIRECTORY TREE SNAPSHOT", tetapi orang mungkin tidak suka bahwa hasilnya adalah format khusus, bukan ISO dengan pohon dir.)