Saya mencadangkan server Linux dan menyimpannya di server lain.
Saya mulai dengan yang sederhana
rsync -aPh --del server.example.com:/ /mnt/backup
Lalu seseorang menunjukkan bahwa saya tidak boleh membuat cadangan /proc
, karena Anda tidak ingin mengembalikan /proc
server yang satu.
Apakah ada hal lain yang harus saya / tidak seharusnya sertakan?
Misalnya, bagaimana dengan /sys
?
/boot
sama sekali - Anda mungkin perlu membandingkan konfigurasi boot lama dengan konfigurasi boot baru. Pastikan untuk tidak mengembalikan/boot
kecuali secara manual.Keduanya
/proc
dan/sys
merupakan sistem file virtual yang mencerminkan keadaan sistem, dan memungkinkan Anda mengubah beberapa parameter runtime (dan terkadang melakukan hal-hal yang lebih berbahaya, seperti langsung menulis ke memori atau ke perangkat). Anda seharusnya tidak pernah membuat cadangan atau memulihkannya.Di sebagian besar distribusi modern,
/dev
dibuat secara dinamis saat boot (ini adalah sistem file memori yang diisi olehudev
dan teman-teman). Tidak ada gunanya mencadangkannya, dan berusaha mengembalikannya sia-sia. Namun, jika distribusi Anda dikonfigurasi untuk menggunakan statis/dev
, ini tidak berlaku (cek/proc/mounts
, jika/dev
adalahtmpfs
itu adalah filesystem memori).Ada sistem file lain yang tidak boleh Anda cadangkan;
usbfs
(biasanya pada/proc/bus/usb
, jika dipasang sama sekali),debugfs
(seharusnya berada di/sys/kernel/debug
jika dipasang sama sekali, tetapi beberapa orang meletakkannya di tempat lain, Anda mungkin tidak memiliki satu ini),devpts
(dipasang di/dev/pts
), laintmpfs
contoh (sering ditemukan di/dev/shm
,/var/run
,/var/lock
, dan tempat-tempat lain; membackupnya dan mengembalikannya seharusnya tidak berbahaya tetapi tidak ada gunanya, karena isinya hilang pada saat shutdown), dan semua sistem file jarak jauh atau direktori automounter ajaib (berusaha untuk membuat cadangan atau mengembalikannya dapat berakhir dengan bencana, seperti yang Anda bisa lakukan akhirnya mencadangkan / mengembalikan ke mesin yang berbeda ). Anda juga harus berhati-hati dengan/media
dan/mnt
, karena perangkat eksternal (seperti CD yang Anda lupa di drive) dapat ditemukan di sana, tetapi Anda mungkin juga menggunakannya dengan sengaja untuk memasang sesuatu yang harus dicadangkan.Perhatikan bahwa, selain sebagian besar tidak berbahaya
tmpfs
contoh, filesystem jaringan / automounters, dan removable media, filesystem Anda tidak harus kembali semua keturunan/dev
,/proc
atau/sys
. Jika Anda tidak memiliki sistem file jaringan (atau automounters), dan tidak ada media yang dapat dilepas, singkirkan/sys
dan/proc
dan boot ulang setelah pemulihan (untuk menghapustmpfs
instans) cukup.sumber
Lihat The Tao Of Backup , bab 1.
sumber
Beberapa file khusus di / proc dan / sys membingungkan rsync. Anda juga tidak ingin mencadangkan sistem file jaringan yang terpasang. File yang jarang juga dapat menyebabkan masalah.
Tambahkan -x untuk membatasinya ke satu sistem file. Itu menghindari semua sistem file jaringan dan / proc dll. Namun Anda kemudian perlu menjalankan satu rsync untuk setiap sistem file yang telah Anda mount.
Tambahkan -S untuk menangani file jarang secara masuk akal.
sumber
/ boot, / dev dan / proc tidak berguna untuk cadangan - meskipun, jika Anda tahu apa yang Anda lakukan, Anda dapat membuat cadangan / boot.
Saya juga tidak akan mencadangkan / lib, / media, / mnt, / sbin, / bin, / srv, / sys, atau / tmp.
/ usr adalah opsional, tergantung pada apakah Anda memiliki sesuatu di / usr yang layak dicadangkan. Jika saya jadi Anda, saya akan paling khawatir tentang membuat cadangan $ HOMEs, / var, dan / etc pengguna (untuk file konfigurasi).
Sekali lagi, ini benar-benar semua tergantung pada jenis cadangan yang ingin Anda lakukan. Apakah ini server web? Apakah ini komputer pribadi? Apakah ini server shell dengan banyak direktori di bawah / home?
sumber
rsync
Anda tidak hanya menyalin apa yang telah Anda gunakan, tetapi juga mengaktifkan sinkronisasi di masa depan, sehingga Anda dapat dengan aman menjalankan tugas cron untuk itu.Anda dapat mencapai total cadangan menggunakan sfdisk dan dd.
Untuk mencadangkan skema partisi dari setiap hard drive, Anda akan menggunakan sfdisk seperti ini:
Untuk mencadangkan setiap partisi Anda dapat menggunakan dd, seperti:
Di mana
/dev/sda1
tidak di-mount, seperti dengan boot live-CD.(perlu diingat bahwa Anda perlu memiliki banyak ruang kosong untuk menulis file ini; jadi Anda mungkin ingin menulisnya ke media eksternal) Lakukan itu untuk setiap partisi, satu per satu, dan buat cadangan semuanya.
Kemudian, untuk mengembalikan pada komputer lain yang bisa Anda lakukan:
sumber
dd if=/dev/urandom of=/dev/sdb bs=512 count=12
menghapus MBR dan tabel partisi drive target.Alih-alih mengecualikan, saya biasanya hanya membuat cadangan apa yang saya inginkan. Termasuk:
/home
/etc
/var
(kecuali/var/log
)sumber
Pada dasarnya, pseudo-filesystems (/ proc, / sys, / dev / shm ...) tidak perlu dicadangkan.
sumber
Seperti yang ditunjukkan oleh komunitas hebat ini:
/ dev / proc / sys / tmp / run / media / hilang + ditemukan / boot (/ boot adalah opsional, lihat komentar lain)
Untuk referensi perintah rsync terakhir saya (di bawah Arch dengan media eksternal yang dipasang di '/ run / media / fred / INTENSO /' dan mencadangkan ke folder bernama 'fred') adalah:
$ sudo rsync -Pazhmxv --exclude / run / media --exclude / dev --exclude / hilang + ditemukan --exclude / tmp --exclude / proc --exclude / boot --exclude / sys / / run / media / fred / INTENSO / fred /.
(file yang dikecualikan juga dapat ditentukan dengan kurung keriting (--exclude = {/ dev, / proc}) di bawah Bash atau dengan file teks (--exclude-from = 'excude.txt')).
-P: tampilkan progres -a: mode arsip -z: kompres saat transfer -h: angka keluaran dalam format yang dapat dibaca manusia -m: pangkas direktori kosong -x: batas ke satu file-sistem -v: verbose
sumber
Saya menggunakan mesin Ubuntu 18.04 dan saya tidak menyertakan ini:
Juga, khusus untuk pengaturan saya, saya mengecualikan ini:
sumber
Saya biasanya membiasakan mencadangkan semuanya pada sistem, bahkan hal-hal yang saya tahu pasti tidak berguna untuk dicadangkan. Ini lebih mudah untuk diatur dan Anda dapat 100% yakin bahwa Anda akan mendapatkan semua yang Anda butuhkan termasuk dalam cadangan.
sumber
/proc
dan/dev
agar tidak membingungkan sedikit orang miskinrsync
.Saya menggunakan kotak linux Ubuntu sebagai server pengujian untuk pengembangan situs web, dan untuk hosting wiki dokumentasi. Setiap malam sebuah crontab membuang database MySQL ke / var / www, dan kemudian semua / var / www di-zip dan direplikasi ke server cadangan. Ini tidak ideal, tetapi cukup. Saya harus membangun kembali server pada satu titik, dan semua saya benar-benar ketinggalan adalah file konfigurasi Apache dan Samba.
sumber
Saya berasumsi Anda tidak memiliki Linux di mesin virtual. Jika memungkinkan, saya akan mendesak mempertimbangkan pindah ke virtualisasi. Cadangan pada tingkat vm adalah tingkat konsistensi dan kemudahan penggunaan yang sama sekali baru. Ada alat virtualisasi gratis, jadi Anda tidak perlu berinvestasi ke VmWare atau alat monster mahal lainnya.
sumber
Pertanyaan: Direktori mana yang harus saya kecualikan saat membuat cadangan server?
Berikut ini adalah skrip yang sering saya gunakan, dari laptop Ubuntu 16.04 LTS ke server Ubuntu 16.04 LTS. Itu jelas menunjukkan direktori mana yang harus dilewati saat membuat cadangan penuh:
Perhatikan pengecualian
/mnt
- yang mana setiap sistem Ubuntu memiliki drive cadangan penuh waktu yang dipasang untukrsync
backup mandiri berbasis cron 4 kali sehari. Drive ini dipasang oleh entrifstab
dan selalu ada. Untuk memasukkan mereka dalam cadangan ke sistem lain akan menjadi duplikasi.Demikian pula, di
/media
mana drive USB dipasang. Mereka didukung secara terpisah.sumber