Estoy haciendo una copia de seguridad de un servidor Linux y almacenándolo en otro servidor.
Comencé con un simple
rsync -aPh --del server.example.com:/ /mnt/backup
Entonces alguien señaló que no debería hacer una copia de seguridad /proc
, ya que no desea restaurar el /proc
de un servidor en otro.
¿Hay algo más que debería / no debería incluir?
Por ejemplo, ¿qué pasa /sys
?
/boot
completo; es posible que deba comparar la configuración de arranque anterior con la configuración de arranque nueva. Solo asegúrese de no restaurar,/boot
excepto manualmente.Tanto
/proc
y/sys
son los sistemas de ficheros virtuales que reflejan el estado del sistema, y le permiten cambiar varios parámetros de ejecución (y, a veces haces cosas más peligrosas, como escribir directamente en la memoria o en un dispositivo). Nunca debe hacer una copia de seguridad o restaurarlos.En la mayoría de las distribuciones modernas,
/dev
se crea dinámicamente en el arranque (es un sistema de archivos de memoria lleno deudev
amigos). No tiene sentido respaldarlo, e intentar restaurarlo es inútil. Sin embargo, si su distribución está configurada para usar una estática/dev
, esto no aplica (verifique/proc/mounts
, si/dev
es untmpfs
es un sistema de archivos de memoria).Hay otros sistemas de archivos que no debe respaldar;
usbfs
(por lo general en/proc/bus/usb
, si se monta en absoluto),debugfs
(se supone que en el/sys/kernel/debug
caso de montaje en absoluto, pero algunas personas ponerlo en otro lugar; es probable que no tenga éste),devpts
(montado en/dev/pts
), otrostmpfs
casos (a menudo se encuentran en/dev/shm
,/var/run
,/var/lock
y otros lugares; hacer una copia de seguridad de ellos y restaurarlos debe ser inofensivo pero inútil, ya que su contenido se pierde al apagarlo, y cualquier sistema de archivos remoto o directorios mágicos de montadores automáticos (intentar respaldarlos o restaurarlos podría terminar en un desastre, como podría ser terminar haciendo copias de seguridad / restaurando a una máquina diferente ). También debes tener cuidado con/media
y/mnt
, ya que los dispositivos externos (como un CD que olvidó en la unidad) podrían encontrarse allí, pero también podría haberlos utilizado a propósito para montar algo que debería ser respaldado.Tenga en cuenta que, aparte de su mayoría inofensivas
tmpfs
casos, los sistemas de archivos de red / automounters y medios extraíbles, los sistemas de archivos que no se debe salvaguardar son todos descendientes de/dev
,/proc
o/sys
. Si no tiene sistemas de archivos de red (o automounters), y no hay medios extraíbles, excluyendo/sys
e/proc
y reiniciar después de una restauración (para limpiar lostmpfs
casos) debería ser suficiente.fuente
Ver The Tao Of Backup , capítulo 1.
fuente
Algunos de los archivos especiales en / proc y / sys confunden rsync. Por lo general, tampoco desea realizar una copia de seguridad de los sistemas de archivos de red montados. Los archivos dispersos también pueden causar problemas.
Agregue -x para limitarlo a un sistema de archivos. Eso evita todos los sistemas de archivos de red y / proc, etc. Sin embargo, debe ejecutar un rsync para cada sistema de archivos que haya montado.
Agregue -S para manejar archivos dispersos con sensatez.
fuente
/ boot, / dev y / proc son bastante inútiles para hacer copias de seguridad; sin embargo, si sabe lo que está haciendo, puede hacer una copia de seguridad / boot.
Tampoco haría copia de seguridad / lib, / media, / mnt, / sbin, / bin, / srv, / sys o / tmp.
/ usr es opcional, dependiendo de si tiene algo en / usr que valga la pena hacer una copia de seguridad. Si yo fuera usted, me preocuparía más hacer una copia de seguridad de $ HOMEs del usuario, / var y / etc (para archivos de configuración).
Sin embargo, de nuevo, todo esto realmente depende del tipo de copia de seguridad que desee hacer. ¿Es este un servidor web? ¿Es esta una computadora personal? ¿Es este un servidor shell con toneladas de directorios en / home?
fuente
rsync
usted no solo copie solo lo que ha usado, sino que también habilite la sincronización futura, para que pueda ejecutar de forma segura un trabajo cron para ello.Puede lograr una copia de seguridad total usando sfdisk y dd.
Para hacer una copia de seguridad del esquema de partición de cada disco duro, usaría sfdisk así:
Para hacer una copia de seguridad de cada partición, puede usar dd, así:
Dónde
/dev/sda1
está desmontado, como con un arranque de CD en vivo.(tenga en cuenta que necesitará tener mucho espacio libre para escribir este archivo; por lo tanto, puede escribirlo en un medio externo) Haga eso para cada partición, una a la vez, y haga una copia de seguridad de todo.
Luego, para restaurar en otra computadora, puede hacer:
fuente
dd if=/dev/urandom of=/dev/sdb bs=512 count=12
borrar la tabla de particiones y MBR de la unidad de destino.En lugar de excluir, generalmente solo hago una copia de seguridad de lo que quiero. Incluyendo:
/home
/etc
/var
(excepto/var/log
)fuente
Básicamente, los pseudo-sistemas de archivos (/ proc, / sys, / dev / shm ...) no necesitan copia de seguridad.
fuente
Como lo señaló esta gran comunidad:
/ dev / proc / sys / tmp / run / media / lost + found / boot (/ boot es opcional ver otros comentarios)
Como referencia, mi comando rsync final (en Arch con medios externos montados en '/ run / media / fred / INTENSO /' y haciendo una copia de seguridad en una carpeta llamada 'fred') es:
$ sudo rsync -Pazhmxv --exclude / run / media --exclude / dev --exclude / lost + found --exclude / tmp --exclude / proc --exclude / boot --exclude / sys / / run / media / Fred / INTENSO / Fred /.
(los archivos excluidos también se pueden especificar con llaves (--exclude = {/ dev, / proc}) en Bash o con un archivo de texto (--exclude-from = 'excude.txt')).
-P: muestra el progreso -a: modo de archivo -z: comprime durante la transferencia -h: números de salida en un formato legible por humanos -m: poda directorios vacíos -x: límite a un sistema de archivos -v: detallado
fuente
Estoy en una máquina Ubuntu 18.04 y tengo estos excluidos:
Además, específicamente para mi configuración, excluyo estos:
fuente
Generalmente tengo la costumbre de hacer copias de seguridad de todo en un sistema, incluso las cosas que sé con certeza son inútiles para hacer copias de seguridad. Es más sencillo de configurar y puede estar 100% seguro de que obtendrá todo lo que necesita incluido en la copia de seguridad.
fuente
/proc
y/dev
no confundir a los pobresrsync
.Estoy usando un Linux linux box como servidor de prueba para el desarrollo de sitios web y para alojar un wiki de documentación. Cada noche, un crontab descarga la base de datos MySQL en / var / www, y luego todo / var / www se comprime y se replica en el servidor de respaldo. No es ideal, pero es suficiente. Tuve que reconstruir el servidor en un momento, y todo lo que realmente extrañé fueron los archivos de configuración de Apache y Samba.
fuente
Supongo que no tienes Linux en una máquina virtual. Si es posible, instaría a considerar pasar a la virtualización. Las copias de seguridad en el nivel vm son un nivel completamente nuevo de consistencia y facilidad de uso. Existen herramientas de virtualización gratuitas, por lo que no necesariamente tiene que invertir en VmWare u otra herramienta monstruosa costosa.
fuente
Pregunta: ¿Qué directorios debo excluir al hacer una copia de seguridad de un servidor?
Aquí hay un script que uso con frecuencia, desde una computadora portátil Ubuntu 16.04 LTS a un servidor Ubuntu 16.04 LTS. Muestra claramente qué directorios deben omitirse al hacer una copia de seguridad completa:
Tenga en cuenta la exclusión de
/mnt
, que es donde cada sistema Ubuntu tiene una unidad de copia de seguridad de tiempo completo montada pararsync
copias de seguridad basadas en cron 4 veces al día. Estas unidades están montadas por entradas enfstab
y siempre están presentes. Incluirlos en una copia de seguridad de otro sistema sería duplicativo.Del mismo modo,
/media
es donde se montan las unidades USB. Están respaldados por separado.fuente