Come eseguire il backup di un server Centos completo?


24

Sono passato alcune settimane fa da un server dedicato a un VPS. Ora che tutto funziona bene sul VPS, vorrei chiudere il server dedicato e chiudere il mio account con la società di hosting.

Per la massima tranquillità e per essere più sicuro, vorrei fare un backup completo del server prima di arrestarlo.

Il migliore sarebbe un backup che potrei navigare se trovo che ho bisogno di qualcosa nel backup.

Quale sarebbe la migliore soluzione dalla riga di comando?

Aggiornare :

Mezzo: rete

Risposte:


28

Lo strumento migliore da usare per questo è probabilmente il dump, che è uno strumento linux standard e ti darà l'intero filesystem. Vorrei fare qualcosa del genere:

/sbin/dump -0uan -f - / | gzip -2 | ssh -c blowfish user@backupserver.example.com dd of=/backup/server-full-backup-`date '+%d-%B-%Y'`.dump.gz

Questo eseguirà un dump del file system di / (assicurati di non aver bisogno di scaricare alcun altro mount!), Comprimilo con gzip e ssh su un server remoto (backupserver.example.com), memorizzandolo in / backup / . Se in seguito è necessario sfogliare il backup si utilizza il ripristino:

restore -i

Un'altra opzione, se non si ha accesso al dump, è usare tar e fare qualcosa di simile

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

Ma tar non gestisce anche le modifiche nel file system.


questo comando di dump si occupa anche dei programmi installati giusto? come nginx, ecc.
Thale il

Dump è una copia letterale del filesystem, con tutto dentro. Finché non ne hai più di uno (controlla eseguendo mount) questo è tutto ciò di cui hai bisogno.
Bill Weiss,

Ho capito-bash: /sbin/dump: No such file or directory
Lucas Bustamante,

@LucasB Potrebbe essere necessario installare il dump. Su Ubuntu fai qualcosa del generesudo apt-get install dump
pehrs

@pehrs come ripristini usando il .gzfile? Puoi per favore aggiungerlo nella tua risposta. Sarebbe davvero d'aiuto.
Bottiglia rossa

10

Se si desidera eseguire il backup da Linux a Linux non utilizzare il dump, perché è scomodo quando è necessario accedere a qualcosa all'interno del file di backup. Il solo utilizzo di rsyncSSH per eseguire un backup completo del sistema dovrebbe andare bene nella maggior parte dei casi:

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

Ciò manterrà tutto ciò che è importante e ti consentirà di sfogliare il backup senza ulteriori passaggi.

Potresti voler aggiungere l' --deleteopzione di rsync se lo stai eseguendo più volte nella stessa cartella di backup. In questo caso assicurati che il percorso di origine non finisca /*, altrimenti questa opzione avrà effetto solo sui file all'interno delle sottodirectory della directory di origine, ma non avrà alcun effetto sui file che risiedono direttamente nella directory di origine.


3

Su quale supporto memorizzerai il backup? Se si esegue il backup sulla rete, sshfs / nfs monterei la mia destinazione sul server di origine ed eseguirò qualcosa del tipo:

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

Nota che non è stato testato, solo il mio pensiero generale potresti voler escludere più o meno di quello.


3

Uso il comando sopra descritto da pehrs, ma modificato per l'uso ftp. Esempio di 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 contiene credenziali ftp e regole per il caricamento:

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

Nota 1: lftp può causare un elevato utilizzo della CPU quando la destinazione non è raggiungibile nel tentativo di riconnettersi. Poiché in questi casi molti VPS di hosting possono essere ripristinati, suggerisco di monitorare il carico della CPU per interrompere il processo lftp impedendo l'arresto del server da parte del proprietario dell'host. Un esempio per la media del carico> 1,33 per i processi lftp (e dropbox). Sfortunatamente, non ricordo l'origine del codice iniziale, grazie a qualcuno:

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***s@gmail.com
fi

Nota 2: l' utilità di dump potrebbe non funzionare su OpenVZ VPS o su altri server virtuali.


2

hai sentito parlare di Bacula ?

Bacula è un insieme di programmi per computer open source, pronti per l'impresa, che consentono all'utente (o all'amministratore di sistema) di gestire il backup, il ripristino e la verifica dei dati del computer attraverso una rete di computer di diverso tipo. Bacula è relativamente facile da usare ed efficiente, offrendo al contempo molte funzionalità avanzate di gestione della memoria che consentono di trovare e recuperare facilmente file persi o danneggiati. In termini tecnici, si tratta di un programma di backup basato su rete Open Source, pronto per l'azienda.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.