Pertama, Anda harus membaca sedikit tentang sintaks include/exclude rsync. Saya merasa bahwa apa yang ingin Anda lakukan lebih baik dilakukan menggunakan **
gumpalan dari *
gumpalan. (**
memperluas ke sejumlah entri, sedangkan *
memperluas hanya ke satu entri yang mungkin cocok dengan beberapa direktori entri. Detailnya ada di man rsync
di bawah Sertakan/Kecualikan Aturan Pola .)
Yang mengatakan, jika Anda ingin dapat memulihkan sistem ke kondisi kerja yang diketahui dari cadangan dengan sedikit kerumitan, Anda harus berhati-hati dengan mengecualikan file atau direktori. Saya menggunakan rsnapshot sendiri dan sebenarnya mengambil pendekatan sebaliknya:sertakan semuanya kecuali beberapa direktori yang dipilih dengan cermat.
Jadi rsnapshot.conf saya sebenarnya menyatakan (dengan tab untuk membuat parser file konfigurasi rsnapshot senang):
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 lainnya. Ya, itu berarti saya mungkin menyalin sedikit lebih banyak dari yang benar-benar dibutuhkan, tetapi ini memastikan bahwa apa pun yang tidak dimaksudkan sebagai ephermal akan disalin. Karena rsnapshot menggunakan perilaku hardlink-to-deduplicate rsync, satu-satunya biaya nyata untuk ini adalah selama proses pertama; setelah itu, dengan asumsi Anda memiliki lokasi target pencadangan dengan ukuran yang wajar (dibandingkan dengan ukuran kumpulan data total), dibutuhkan sangat sedikit tambahan waktu atau ruang disk. Saya mengecualikan konten /backup karena di situlah saya me-mount sistem file target cadangan; tidak mengecualikannya akan menyebabkan situasi menyalin cadangan ke dirinya sendiri. Namun, untuk kemudahan jika saya perlu memulihkan ke logam polos, saya ingin mempertahankan titik pemasangan!
Dalam kasus saya, saya juga tidak dapat menggunakan one_fs 1
secara wajar; Saya menjalankan ZFS dengan ~40 sistem file saat ini. Mencantumkan semua itu secara eksplisit akan menjadi mimpi buruk pemeliharaan dan membuat bekerja dengan sistem file ZFS jauh lebih rumit daripada yang seharusnya.
Hampir semua hal yang ingin Anda kecualikan di atas dan di luar hal di atas akan bergantung pada distribusi, jadi hampir tidak mungkin untuk memberikan jawaban yang umum. Artinya, Anda mungkin akan menemukan beberapa kandidat di bawah /var.
Sebagian besar dari apa yang Anda coba lakukan mungkin dapat diselesaikan hanya dengan menggunakan one_fs
pengaturan. Tetapkan sistem file yang ingin Anda sertakan dalam cadangan Anda, lalu gunakan pengaturan tersebut untuk mengabaikan sisanya (proc
, sys
, dev
, dll.). Saya akan menyertakan /lost+found
karena direktori itu harus selalu kosong kecuali Anda telah mencadangkan sistem file yang rusak, dalam hal ini Anda mungkin ingin mencadangkan apa pun yang fsck
pulih. Juga, .pyc
dan .pyo
seharusnya tidak benar-benar berada di direktori root, jadi saya akan menghapus baris itu juga. /tmp
dan /var/tmp
adalah tentang satu-satunya jalur yang tersisa pada sistem "generik" yang berisi data yang dapat dikecualikan secara andal dari pencadangan. Jadi mungkin coba sesuatu seperti:
one_fs 1
exclude /tmp/
exclude /var/tmp/