Solusi 1:
Jadi Anda ingin mencadangkan semua drive Anda tanpa semua kesalahan buruk itu dan juga memfilter semua /proc dan folder sementara lainnya?
Opsinya adalah memasang folder root ke folder lain di dalam sistem file, seperti ini:
$ cd /mnt
$ mkdir drive
$ mount --bind / drive
Ini akan memberi Anda semua file yang ada di drive Anda yang tidak dianggap sementara (seperti folder /proc atau /sys).
Sekarang setelah Anda memiliki tampilan yang bersih dari folder akar, Anda dapat menyalinnya ke drive cadangan menggunakan cp
standar atau rsync
. Sesuatu seperti:
cp -R /mnt/drive /mnt/backupdrive
Ini menyelesaikan kedua masalah yang Anda sebutkan:
- Anda tidak melakukan rekursi, karena disk cadangan tidak dipasang di dalam drive (sudut pandang)
- Anda tidak melewatkan file penting apa pun, karena Anda mengambil semuanya
Lihat juga:man mount(8)
Solusi 2:
Di Linux semuanya adalah file. Itu mungkin melalui rsync, tetapi ada hal-hal yang harus diperhatikan, yang (paling-paling) sulit untuk dilakukan.
Anda harus memikirkan replikasi terlebih dahulu, terutama untuk database. Ini juga merupakan ide bagus untuk menyiapkan proxy / load balancer di depan server utama Anda, sehingga Anda dapat dengan mudah beralih bolak-balik dengan server utama dan cermin selama transisi.
Pada tingkat perangkat keras, situasi terbaik adalah memiliki server seperti cermin di sisi lain, dengan jumlah port ethernet yang sama, tata letak hdd yang sama, dan seterusnya. Segala sesuatu yang berbeda menyiratkan perlunya perubahan konfigurasi sistem.
yaitu jika Anda memiliki dua port eth, Anda ingin memastikan bahwa konfigurasi jaringan, firewall, dan seterusnya cocok dengan nama antarmuka di kedua server, dan jika berbeda, Anda perlu mengubah konfigurasi setelah rsync atau mengubah nama perangkat pada yang kedua (tujuan) server.
Sama dengan tata letak partisi. Anda harus membuat partisi yang sama seperti pada server utama Anda, tetapi jika Anda membuatnya dari awal, Anda akan berakhir dengan UUID yang berbeda, jadi Anda perlu mengubah fstab, grub, mdadm (jika soft-raid terlibat), dan seterusnya .
Namun, ada juga banyak hal yang mungkin salah, seperti database, yang bisa menjadi tidak konsisten jika tidak dihentikan sebelumnya (sebelum melakukan rsync).
Strategi terbaik adalah menyiapkan perangkat keras dan sistem file (partisi) terlebih dahulu - agar sesuai dengan konfigurasi server utama. Kemudian pasang partisi kosong melalui sistem perantara (seperti live CD dengan ssh-server diinstal sementara). Anda membuat /proc, /dev, /sys kosong dan kemudian rsync sisanya, seperti:
rsync -avz -H --delete /etc /bin (...and so on) destserver:/mnt/yourrootfs/
Maka Anda perlu menginstal grub pada perangkat dan mengerjakan konfigurasi, untuk membuatnya dapat di-boot, mengubah konfigurasi jaringan, fstab, dan hal-hal lain yang disebutkan sebelumnya.
Anda juga dapat mencoba menginstal sistem baru (dengan versi yang sama dengan yang Anda gunakan di server utama), lalu matikan, pasang melalui sistem sementara lainnya (seperti live cd), lalu ganti apa pun selain / proc, / sys, /dev dan /boot dengan rsync.
Tapi itu hanya ide umum. Hal-hal mungkin menjadi rumit tergantung pada apa yang sebenarnya Anda miliki di server ini, apa konfigurasi Anda, pengaturan jaringan dan perangkat keras. Dan pada akhirnya, ini mungkin sangat sulit atau tidak mungkin dilakukan tanpa waktu henti yang nyata.
Solusi 3:
Apa yang sebenarnya Anda inginkan adalah mengembalikan. Apa pun yang Anda lakukan, Anda harus mengujinya secara teratur.
Linode memiliki layanan cadangan. Snapshot dapat diambil pada jadwal terbatas yang ditentukan sebelumnya atau dengan API.
Keuntungan dari pencadangan berbasis snapshot adalah mereka menawarkan titik waktu yang tajam, karena data tidak berubah saat salinan dibuat. Snapshot juga dapat dengan mudah dikembalikan ke host lain, Linode baru dalam hal ini.