Pertama, Anda harus membaca sedikit tentang rsync's sertakan / kecualikan sintaks. Saya merasa bahwa apa yang ingin Anda lakukan lebih baik dilakukan menggunakan **
gumpalan daripada *
gumpalan. ( **
memperluas ke sejumlah entri, sedangkan *
memperluas hanya ke satu entri yang mungkin cocok dengan beberapa entri direktori . Rinciannya berada di man rsync
bawah Sertakan / Kecualikan Aturan Pola .)
Yang mengatakan, jika Anda ingin dapat mengembalikan sistem ke kondisi kerja yang dikenal dari cadangan dengan kerumitan minimum, Anda harus berhati-hati dengan mengecualikan file atau direktori. Saya menggunakan rsnapshot sendiri dan telah mengambil pendekatan yang berlawanan: sertakan semuanya kecuali beberapa direktori yang dipilih dengan cermat.
Jadi rsnapshot.conf saya sebenarnya menyatakan (dengan tab untuk membuat parser file konfigurasi rsnapshot):
interval backup NNN # pick your poison
one_fs 0
exclude /backup/**
exclude /dev/**
exclude /proc/**
exclude /run/**
exclude /sys/**
exclude /tmp/**
backup / ./
dan sangat sedikit lagi. Ya, itu berarti saya mungkin menyalin sedikit lebih banyak dari apa yang benar-benar dibutuhkan, tetapi itu memastikan bahwa apa pun yang tidak dimaksudkan sebagai ephermal disalin. Karena rsnapshot menggunakan perilaku hardlink-to-deduplicate rsync, satu-satunya biaya nyata untuk ini adalah selama menjalankan pertama; setelah itu, dengan asumsi Anda memiliki lokasi target pencadangan ukuran yang cukup (dibandingkan dengan total ukuran data Anda), dibutuhkan waktu ekstra atau ruang disk yang sangat sedikit. Saya mengecualikan isi / cadangan karena di situlah saya memasang sistem file target cadangan; tidak termasuk itu akan menyebabkan situasi menyalin cadangan ke dalam dirinya sendiri. Namun, untuk kesederhanaan jika saya perlu mengembalikan ke bare metal, saya ingin tetap menggunakan mount point!
Dalam kasus saya, saya juga tidak dapat menggunakan secara wajar one_fs 1
; Saya menjalankan ZFS dengan ~ 40 sistem file saat ini. Mendaftar semua itu secara eksplisit akan menjadi mimpi buruk pemeliharaan dan membuat bekerja dengan sistem file ZFS jauh lebih terlibat daripada yang seharusnya.
Cukup banyak hal yang ingin Anda kecualikan di atas dan di luar yang akan tergantung pada distribusinya, jadi hampir tidak mungkin untuk memberikan jawaban umum. Yang mengatakan, Anda cenderung menemukan beberapa kandidat di bawah / var.
exclude /somepath/*
baik-baik saja dalam hal ini; tidak termasuk semua yang ada di dalamnya/somepath/
, seperti yang diharapkan. Anda tidak perlu**
karena tidak perlu melihat lebih dalam ketika semuanya/somepath/
sudah dikecualikan.exclude /somepath
dan abaikan direktori ini secara bersamaan - bukan hanya isinya.Sebagian besar dari apa yang Anda coba lakukan mungkin dapat dicapai hanya dengan menggunakan
one_fs
pengaturan. Mengatur filesystem yang ingin Anda sertakan dalam backup Anda, kemudian gunakan pengaturan yang mengabaikan sisanya (proc
,sys
,dev
, dll). Saya akan memasukkan/lost+found
karena direktori itu harus selalu kosong kecuali jika Anda telah membuat cadangan sistem file yang rusak, dalam hal ini Anda mungkin ingin cadangan apa pun yangfsck
dipulihkan. Juga,.pyc
dan.pyo
seharusnya tidak benar-benar berada di direktori root di tempat pertama, jadi saya akan menghapus baris itu juga./tmp
dan/var/tmp
tentang satu-satunya jalur yang tersisa pada sistem "generik" yang berisi data yang dapat secara andal dikeluarkan dari cadangan. Jadi mungkin coba sesuatu seperti:sumber
/*.pyc
dan/*.pyc
tetapi sistem yang luas*.pyc
dan*.pyo
, saya memperbaikinya. Saya tidak yakin apakahone_fs
diatur untuk1
mengecualikan apa pun yang saya inginkan.Saya merasa lebih baik memiliki daftar paket, isi / etc, / home, dan data pengguna / sistem dari / var dan di tempat lain. Biasanya lebih cepat untuk menginstal ulang paket dan menyalin kembali konfigurasi yang berfungsi.
sumber