¿Cómo puedo almacenar copias de seguridad de todos mis servidores en otro servidor?

¿Cómo puedo almacenar copias de seguridad de todos mis servidores en otro servidor?

Tengo un nuevo servidor que planeo usar como respaldo. En este servidor quiero almacenar las gzipedbases de datos de mis otros 13 servidores. ¿Cuál es la mejor manera de hacer una copia de seguridad cada hora desde cada servidor y almacenarla en el servidor de respaldo?

Servidores SO Linux Centos
Los 13 servidores tienen WHM/Cpanel
El servidor de respaldo tiene Centos 7.7 solamente (sin panel de control)
No pude hacer los respaldos con cpanel porque cpanel no permite respaldos cada hora.

Respuesta1

Puedes lograr esto con rsyncy cron.

En cada servidor cree el archivo backup.sh con la siguiente línea:

#!/bin/bash
mysqldump > /etc/backups/mysqldump.sql
rsync /etc/backups/mysqldump.sql -e ssh <username>@<ip-address-of-backup-server>:/<path-to your-backup-folder>/<server-name>/"$(date "+%Y-%m-%d-%H")"-backup.sql

Comprobar condocumentación mysqlpara opciones de volcado (o use su método preferido para volcar la base de datos). <server-name>Debería haber algún tipo de identificador para el servidor del que proviene la copia de seguridad.

Pon el archivo en /etc/cron.hourly. Si desea un tiempo diferente, puede consultar otras /etc/cron.*carpetas o usargenerador de crontabsy usar el comando crontab -e.

Asegúrese de que /etc/backups(o su equivalente) exista o créelo ( mkdir).

Algunas trampas comunes:

  1. asegúrese de configurar claves ssh en cada servidor para rsyncpoder conectarse al servidor de respaldo y/o separar usuarios con privilegios limitados. Depende de qué tipo de seguridad estés buscando.

  2. asegúrese de que el backup.shscript sea ejecutable.

  3. si lo coloca backup.shen /etc/cron.*una carpeta, se ejecutará con privilegios de root. Si por alguna razón no desea esto, use crontab -ela opción como usuario deseado.

información relacionada