Kami ingin mengambil cadangan semua yang ada di server Debian kami, yang berjalan jarak jauh di sisi lain dunia (di-host oleh Linode), tanpa mematikannya.
Sistem ini menjalankan shell, email, XMPP / prosody dan web, dengan beberapa pengaturan nginx sederhana.
Kami ingin membuat cadangan file yang terkait dengan hal-hal itu agar aman. Misalnya, file yang disimpan pengguna di direktori home mereka.
Kita tidak perlu secara tepat menyalin pengaturan setup yang ada setiap file / etc; alih-alih, alasan kami melakukan back up di tempat pertama adalah agar kami dapat memindahkan semuanya ke pengaturan baru (versi terbaru dari Debian masih menggunakan Linode).
Saya melihat bahwa Linode menawarkan layanan cadangan. Tetapi dalam jangka panjang kita juga membutuhkan cadangan kita sendiri, di sini, jika mereka jatuh atau sesuatu yang aneh terjadi.
Alasan pertanyaan ini ada adalah ketika saya mencoba membuat cadangan di masa lalu saya terus membuat salah satu dari dua kesalahan ini:
- Saya telah pergi "OK, saya hanya akan menyalin
/
dan semua yang ada di bawahnya" dan kemudian terjebak dalam beberapa loop aneh tak terbatas baik karena drive saya menyalin ke dipasang di / media / backup dan itu menyalin sendiri secara rekursif [obv masalah khusus itu tidak berlaku di sini karena kita akan melakukan backup melalui rsync atau yang serupa] atau macet ketika mencoba menyalin beberapa hal "hidup" di / proc atau / var atau apa pun, seperti mencoba mengikuti log yang selalu berubah, atau - Saya telah pergi "OK, saya hanya akan mengambil minimal apa yang kita butuhkan ... hmm, direktori home semua orang, dan direktori server web kami (semuanya di bawah
/var
) dan mari kita ambil salinan/etc
dan semua email lama di bawah / var / vmail "dan kemudian saya selalu mengacaukan izin file atau cap waktu (akan memastikan saya tidak mencadangkan file unix ke drive FAT kali ini) atau lupa sesuatu (" oh, tembak, saya punya beberapa skrip khusus di / usr / lokal / bin yang tidak pernah saya simpan di tempat lain, saya lupa mendapatkannya, kira sudah hilang ").
Jadi, menyalin semua drive secara langsung telah menyebabkan jebakan dan menyalin direktori secara selektif telah menyebabkan jebakan. Saya ingin tahu bagaimana melakukannya dengan benar.
Pertanyaan Kesalahan Server Apa yang dibutuhkan untuk sistem cadangan lengkap? mencakup filosofi dan praktik yang baik, tetapi saya mencari detail yang lebih spesifik dari:
- Direktori mana yang harus saya salin dan yang harus saya kecualikan (mengingat bahwa itu adalah sistem yang saat ini menjalankan & dan melayani wiki, obrolan XMPP, email - dengan pesan baru masuk saat pekerjaan salin sedang berjalan)
- Atribut file apa seperti stempel waktu & pemilik & grup yang perlu saya sajikan dan bagaimana saya melakukannya? ← Saya pikir saya bisa menjawab sendiri setengah dari pertanyaan ini dengan sesuatu seperti ... um ...
rsync -HXaz
saya pikir itu pilihan yang baik untuk kita? The-z
obv tidak benar-benar terkait dengan pertanyaan yang "apa yang harus saya melestarikan"
Banyak saran cadangan yang saya lihat, seperti menggunakan dd
, tampaknya mengandaikan bahwa drive tidak di-mount dan tidak digunakan. Tapi aku tidak seharusnya mengecualikan "hidup" direktori seperti / proc dan beberapa subdirektori di bawah / var (Namun, beberapa hal di bawah / var Aku tahu kita pasti lakukan perlu untuk menjaga) dan / mount? Apa lagi yang perlu saya pikirkan dalam situasi ini? Maka saya kira saya hanya bisa snarf dengan rsync dan menggunakan banyak --exclude
bendera.
Atau ada ide yang lebih baik, terutama yang ramah FOSS?
cp -r -a
akan mempertahankan atribut file sebanyak mungkin saat menyalin file (berdasarkan apa yang didukung oleh sistem file target). The -a
bendera menginstruksikan cp
untuk melestarikan atribut. Untuk menyalin melalui jaringan atau melalui sistem file yang tidak mendukung atribut yang diperlukan, tar -c
selalu bekerja untuk saya walaupun saya percaya ada beberapa kasus tepi yang tidak tercakup dan khususnya saya percaya tar
secara default tergantung pada nama pengguna yang cocok dengan kedua sistem. Yang mengatakan, saya telah menyalin seluruh sistem Linux (tidak terpasang) menggunakan tar
tanpa masalah yang jelas.