Como fazer o backup de um servidor Centos completo?

23

Eu mudei há algumas semanas de um servidor dedicado para um VPS. Agora que tudo está funcionando bem no VPS, gostaria de desligar o servidor dedicado e fechar minha conta com a empresa de hospedagem.

Para tranquilidade e para ser mais seguro, gostaria de fazer um backup completo do servidor antes de pará-lo.

O melhor seria um backup que eu pudesse procurar se descobrisse que preciso de algo no backup.

Qual seria a melhor solução na linha de comando?

Atualização:

Médio: Rede

    
por benjisail 08.03.2010 / 19:30

5 respostas

26

A melhor ferramenta para usar é provavelmente o dump, que é uma ferramenta padrão do Linux e lhe dará todo o sistema de arquivos. Eu faria algo assim:

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

Isto irá fazer um dump do sistema de arquivos de / (certifique-se de que você não precisa descarregar quaisquer outras montagens!), compactá-lo com gzip e ssh para um servidor remoto (backupserver.example.com), armazenando-o em /cópia de segurança/. Se depois você precisar navegar pelo backup, use restore:

restore -i

Outra opção, se você não tem acesso ao dump, é usar o tar e fazer algo como

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

Mas o tar também não manipula alterações no sistema de arquivos.

    
por 08.03.2010 / 19:42
8

Se você quiser fazer o backup do Linux para o Linux, não usarei o despejo, pois é inconveniente quando você precisa acessar algo dentro do arquivo de backup. Apenas usar rsync sobre SSH para fazer um backup completo do sistema deve ficar bem na maioria dos casos:

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

Isso manterá tudo importante e permitindo que você navegue pelo backup sem etapas adicionais.

You may want to add rsync's --delete option if you are running this multiple times to the same backup folder. In this case make sure that the source path does not end with /*, or this option will only have effect on the files inside the subdirectories of the source directory, but it will have no effect on the files residing directly inside the source directory.

    
por 31.07.2015 / 19:34
3

Em que mídia você armazenará o backup? Se você estiver fazendo backup pela rede, eu colocaria o sshfs / nfs em meu destino no servidor de origem e executaria algo como:

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

Note que não foi testado, apenas o meu pensamento geral que você pode querer excluir mais ou menos do que isso.

    
por 08.03.2010 / 19:41
3

Eu uso o comando descrito acima do pehrs, mas modificado para uso do ftp. Amostra 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 contém credenciais de ftp e regras para upload:

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 pode causar alto uso da CPU quando o destino está inacessível tentando se reconectar. Como muitos VPSs de hospedagem podem ser redefinidos nesses casos, sugiro monitorar a carga da CPU para interromper o processo de lftp impedindo que o servidor seja desligado pelo proprietário do host. Um exemplo de média de carregamento > 1,33 para processos lftp (e dropbox). Infelizmente, não me lembro da fonte do código inicial, graças a alguém:

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

Observação 2: o utilitário de despejo pode não funcionar no OpenVZ VPS ou em alguns outros servidores virtuais.

    
por 15.11.2014 / 21:39
2

você já ouviu falar de Bacula ?

Bacula is a set of Open Source, enterprise ready, computer programs that permit you (or the system administrator) to manage backup, recovery, and verification of computer data across a network of computers of different kinds. Bacula is relatively easy to use and efficient, while offering many advanced storage management features that make it easy to find and recover lost or damaged files. In technical terms, it is an Open Source, enterprise ready, network based backup program.

    
por 12.03.2010 / 19:47