Tenho um novo servidor que pretendo usar para backup. Neste servidor quero armazenar os gziped
bancos 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 rsync
e 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:
certifique-se de configurar chaves ssh em cada servidor para
rsync
poder conectar-se ao servidor de backup e/ou separar usuários com privilégios limitados. Depende do tipo de segurança que você procura.certifique-se de que o
backup.sh
script seja executável.se você colocar
backup.sh
na/etc/cron.*
pasta, ele será executado com privilégios de root. Se por algum motivo você não quiser isso, usecrontab -e
a opção como usuário desejado.