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/etcdan 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 -HXazsaya pikir itu pilihan yang baik untuk kita? The-zobv 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 --excludebendera.
Atau ada ide yang lebih baik, terutama yang ramah FOSS?
cp -r -aakan mempertahankan atribut file sebanyak mungkin saat menyalin file (berdasarkan apa yang didukung oleh sistem file target). The -abendera menginstruksikan cpuntuk melestarikan atribut. Untuk menyalin melalui jaringan atau melalui sistem file yang tidak mendukung atribut yang diperlukan, tar -cselalu bekerja untuk saya walaupun saya percaya ada beberapa kasus tepi yang tidak tercakup dan khususnya saya percaya tarsecara default tergantung pada nama pengguna yang cocok dengan kedua sistem. Yang mengatakan, saya telah menyalin seluruh sistem Linux (tidak terpasang) menggunakan tartanpa masalah yang jelas.