Bagaimana cara membuat cadangan Server Centos penuh?

24

Saya beralih beberapa minggu yang lalu dari server khusus ke VPS. Sekarang semuanya bekerja dengan baik di VPS saya ingin mematikan server khusus dan menutup akun saya dengan perusahaan hosting.

Untuk ketenangan pikiran dan agar lebih aman saya ingin melakukan backup penuh dari server sebelum menghentikannya.

Yang terbaik adalah cadangan yang bisa saya telusuri jika saya menemukan sesuatu yang perlu di cadangan.

Apa yang akan menjadi solusi terbaik dari baris perintah?

Perbarui:

Medium: Jaringan

benjisail
sumber

Jawaban:

28

Alat terbaik untuk digunakan adalah dump, yang merupakan alat standar linux dan akan memberi Anda seluruh sistem file. Saya akan melakukan sesuatu seperti ini:

/sbin/dump -0uan -f - / | gzip -2 | ssh -c blowfish [email protected] dd of=/backup/server-full-backup-`date '+%d-%B-%Y'`.dump.gz

Ini akan melakukan dump sistem file dari / (pastikan Anda tidak perlu membuang mount lain!), Kompres dengan gzip dan ssh ke server jarak jauh (backupserver.example.com), simpan di / backup / . Jika nanti Anda perlu menelusuri cadangan yang Anda gunakan kembalikan:

restore -i

Opsi lain, jika Anda tidak memiliki akses ke dump adalah menggunakan tar dan melakukan sesuatu seperti

tar -zcvpf /backup/full-backup-`date '+%d-%B-%Y'`.tar.gz --directory / --exclude=mnt --exclude=proc --exclude=tmp .

Tetapi tar tidak menangani perubahan dalam sistem file juga.

pehrs
sumber
perintah dump ini menangani program yang diinstal juga kan? seperti nginx, dll.
Thale
Dump adalah salinan literal dari sistem file, dengan semua yang ada di sana. Selama Anda tidak memiliki lebih dari satu (periksa dengan menjalankan mount) itu saja yang Anda butuhkan.
Bill Weiss
Saya mendapatkan ini-bash: /sbin/dump: No such file or directory
Lucas Bustamante
@LucasB Anda mungkin perlu menginstal dump. Di Ubuntu Anda melakukan sesuatu sepertisudo apt-get install dump
pehrs
@pehrs, bagaimana Anda memulihkan menggunakan .gzfile? Bisakah Anda menambahkannya dalam jawaban Anda. Itu akan sangat membantu.
Botol Merah
10

Jika Anda ingin membuat cadangan dari Linux ke Linux saya tidak akan menggunakan dump, karena itu merepotkan ketika Anda perlu mengakses sesuatu di dalam file cadangan. Hanya menggunakan rsynclebih dari SSH untuk melakukan pencadangan sistem lengkap akan baik-baik saja dalam kebanyakan kasus:

rsync -aAXv --delete-after --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / user@server:backup-folder

Ini akan menjaga semua hal penting dan memungkinkan Anda menelusuri cadangan tanpa langkah tambahan.

Anda mungkin ingin menambahkan --deleteopsi rsync jika Anda menjalankan ini beberapa kali ke folder cadangan yang sama. Dalam hal ini pastikan bahwa jalur sumber tidak berakhir dengan /*, atau opsi ini hanya akan berpengaruh pada file di dalam subdirektori dari direktori sumber, tetapi tidak akan berpengaruh pada file yang berada langsung di dalam direktori sumber.

Rafael Bugajewski
sumber
3

Media apa yang Anda gunakan untuk menyimpan cadangan? Jika Anda mencadangkan melalui jaringan saya akan sshfs / nfs me-mount tujuan saya di server sumber dan menjalankan sesuatu seperti:

tar cvjf /<remote_mnt>/<point>/source-030810-full.tar.bz2 /* --exclude=/proc --exclude=/dev --exclude=/sys --exclude=/tmp --exclude=/<remote_mnt>

Catatan yang belum diuji, hanya pemikiran umum saya Anda mungkin ingin mengecualikan lebih atau kurang dari itu.

d34dh0r53
sumber
3

Saya menggunakan perintah yang dijelaskan di atas dari pehrs, tetapi dimodifikasi untuk penggunaan ftp. Sampel crontab:

30 3 1 * * sudo /sbin/dump -0uan -f server-full-backup-root-`date '+%d-%B-%Y'`.dump / && gzip -1 /<path_to_backup_file>/server-full-backup-root-`date '+%d-%B-%Y'`.dump
50 * * * * lftp -f upload.x

upload.x berisi kredensial dan aturan ftp untuk diunggah:

open -u user,password -p 21 192.168.1.1
mirror -c -e -R /<path_to_backup_folder> /<path_to_remote_folder_without_trailing_slash>
exit

Catatan 1: lftp dapat menyebabkan penggunaan CPU yang tinggi ketika tujuan tidak dapat dijangkau untuk mencoba menghubungkan kembali. Karena banyak hosting VPS mungkin diatur ulang dalam kasus seperti itu, saya sarankan untuk memantau beban CPU untuk membunuh proses lftp mencegah server Anda dimatikan oleh pemilik host. Contoh untuk rata-rata memuat> 1,33 untuk proses lftp (dan dropbox). Sayangnya, saya tidak ingat sumber kode awal, terima kasih kepada seseorang:

Crontab */5 * * * * /home/cms/cron/loadmon.sh

#!/bin/bash
FROM_EMAIL_ADDRESS=cms
  trigger=1.33
  load=`cat /proc/loadavg | awk '{print $1}'`
  response=`echo | awk -v T=$trigger -v L=$load 'BEGIN{if ( L > T){ print "greater"}}'`
if [[ $response = "greater" ]]
then
  killall dropbox lftp
  nice -n 19 sh /cms/.dropbox-dist/dropboxd
  sar -q | mailx -s "High load on server - [ $load ]" r***[email protected]
fi

Catatan 2: utilitas pembuangan mungkin tidak berfungsi pada OpenVZ VPS atau beberapa server virtual lainnya.

Rapekaz
sumber
2

Pernahkah Anda mendengar tentang Bacula ?

Bacula adalah serangkaian program komputer Open Source, siap perusahaan, yang memungkinkan Anda (atau administrator sistem) untuk mengelola cadangan, pemulihan, dan verifikasi data komputer di seluruh jaringan komputer dari berbagai jenis. Bacula relatif mudah digunakan dan efisien, sambil menawarkan banyak fitur manajemen penyimpanan canggih yang membuatnya mudah untuk menemukan dan memulihkan file yang hilang atau rusak. Dalam istilah teknis, ini adalah program cadangan berbasis jaringan Open Source, perusahaan siap pakai.

dani.jtk
sumber