Como posso armazenar backups de todos os meus servidores em outro servidor?

Como posso armazenar backups de todos os meus servidores em outro servidor?

Tenho um novo servidor que pretendo usar para backup. Neste servidor quero armazenar os gzipedbancos de dados de todos os meus outros 13 servidores. Qual é a melhor forma de fazer um backup a cada hora de cada servidor e armazená-lo no servidor de backup?

Servidores SO Linux Centos
Todos os 13 servidores possuem WHM/Cpanel
O servidor de backup possui Centos 7.7 Somente (Sem painel de controle)
Não consegui fazer os backups com cpanel porque o cpanel não permite backups de hora em hora.

Responder1

Você pode conseguir isso com rsynce cron.

Em cada servidor crie o arquivo backup.sh com a seguinte linha:

#!/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

Verificar comdocumentação mysqlpara opções de dump (ou use seu método preferido de dump do banco de dados). <server-name>deve ser algum tipo de identificador do servidor de onde vem o backup.

Coloque o arquivo em /etc/cron.hourly. Se quiser um tempo diferente, você pode verificar outras /etc/cron.*pastas ou usargerador crontabe use o comando crontab -e.

Certifique-se de que /etc/backups(ou seu equivalente) exista ou crie-o ( mkdir).

Algumas dicas comuns:

  1. certifique-se de configurar chaves ssh em cada servidor para rsyncpoder conectar-se ao servidor de backup e/ou separar usuários com privilégios limitados. Depende do tipo de segurança que você procura.

  2. certifique-se de que o backup.shscript seja executável.

  3. se você colocar backup.shna /etc/cron.*pasta, ele será executado com privilégios de root. Se por algum motivo você não quiser isso, use crontab -ea opção como usuário desejado.

informação relacionada