¿Cómo hacer una copia de seguridad de un servidor Centos completo?

24

Hace unas semanas cambié de un servidor dedicado a un VPS. Ahora que todo funciona bien en el VPS, me gustaría cerrar el servidor dedicado y cerrar mi cuenta con la empresa de hosting.

Para mayor tranquilidad y para estar más seguro, me gustaría hacer una copia de seguridad completa del servidor antes de detenerlo.

Lo mejor sería una copia de seguridad que podría examinar si descubro que necesito algo en la copia de seguridad.

¿Cuál sería la mejor solución desde la línea de comandos?

Actualización:

Medio: red

benjisail
fuente

Respuestas:

28

La mejor herramienta para usar es probablemente el volcado, que es una herramienta estándar de Linux y le dará todo el sistema de archivos. Haría algo como esto:

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

Esto hará un volcado del sistema de archivos de / (¡asegúrese de que no necesite volcar ningún otro montaje!), Comprímalo con gzip y ssh en un servidor remoto (backupserver.example.com), almacenándolo en / backup / . Si más tarde necesita explorar la copia de seguridad, use restaurar:

restore -i

Otra opción, si no tiene acceso al volcado, es usar tar y hacer algo como

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

Pero tar no maneja los cambios en el sistema de archivos también.

pehrs
fuente
este comando de volcado se encarga de los programas instalados también ¿verdad? como nginx, etc.
Thale
Dump es una copia literal del sistema de archivos, con todo lo que contiene. Siempre y cuando no tenga más de uno (verifique ejecutando mount) eso es todo lo que necesita.
Bill Weiss
Entiendo esto-bash: /sbin/dump: No such file or directory
Lucas Bustamante
@LucasB Puede que necesite instalar dump. En Ubuntu haces algo comosudo apt-get install dump
pehrs el
@pehrs ¿cómo se restaura usando el .gzarchivo? ¿Puede agregar eso en su respuesta? Realmente ayudaría.
Botella roja el
10

Si desea hacer una copia de seguridad de Linux a Linux, no usaría dump, porque es inconveniente cuando necesita acceder a algo dentro del archivo de copia de seguridad. Solo usar rsyncsobre SSH para hacer una copia de seguridad completa del sistema debería estar bien en la mayoría de los casos:

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

Esto mantendrá todo lo importante y le permitirá explorar la copia de seguridad sin pasos adicionales.

Es posible que desee agregar la --deleteopción rsync si está ejecutando esto varias veces en la misma carpeta de respaldo. En este caso, asegúrese de que la ruta de origen no termine /*, o esta opción solo tendrá efecto en los archivos dentro de los subdirectorios del directorio de origen, pero no tendrá ningún efecto en los archivos que residen directamente dentro del directorio de origen.

Rafael Bugajewski
fuente
3

¿En qué medio va a almacenar la copia de seguridad? Si realiza una copia de seguridad en la red, sshfs / nfs montaría mi destino en el servidor de origen y ejecutaría algo como:

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

Tenga en cuenta que no se ha probado, solo mi pensamiento general es posible que desee excluir más o menos que eso.

d34dh0r53
fuente
3

Yo uso el comando descrito anteriormente de pehrs, pero modificado para uso ftp. Muestra de 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 credenciales ftp y reglas para cargar:

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 puede causar un alto uso de la CPU cuando no se puede alcanzar el destino al intentar volver a conectarse. Debido a que muchos VPS de alojamiento se pueden restablecer en tales casos, sugiero monitorear la carga de la CPU para eliminar el proceso lftp e impedir que el servidor cierre el servidor. Un ejemplo para carga promedio> 1.33 para procesos lftp (y dropbox). Desafortunadamente, no recuerdo la fuente del código inicial, gracias a alguien:

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

Nota 2: la utilidad de volcado puede no funcionar en OpenVZ VPS o en otros servidores virtuales.

Rapekaz
fuente
2

¿Has oído hablar de Bacula ?

Bacula es un conjunto de programas informáticos de código abierto, listos para empresas, que le permiten a usted (o al administrador del sistema) administrar copias de seguridad, recuperación y verificación de datos informáticos en una red de computadoras de diferentes tipos. Bacula es relativamente fácil de usar y eficiente, al tiempo que ofrece muchas funciones avanzadas de administración de almacenamiento que facilitan la búsqueda y recuperación de archivos perdidos o dañados. En términos técnicos, es un programa de respaldo de código abierto, listo para la empresa, basado en la red.

dani.jtk
fuente