Sei que sua pergunta é sobre o rsync, mas isso pode ser útil em relação a backups. É mais ou menos assim que faço meus backups externos.
Alternativa baseada em Rsync Rdiff-backup
Rdiff-backup pode valer a pena tentar.
Ele usa rsync
(ou librsync
) sob a água e lida com toda a magia sobre permissões e atributos para você, mesmo quando o sistema de arquivos de destino não suporta. Isso é possível porque ele armazena isso em seu próprio formato e funciona também em plataformas cruzadas.
Como bônus, também fornece backups diferenciais, para que você possa voltar no tempo. No entanto, o rdiff-backup pode ser executado mais devagar devido à natureza dos backups diferenciais.
Sobre chaves SSH e segurança
How am I supposed to be doing this? Should I have a passwordless
private key on A that logs into root on B? That seem's super
dangerous.
Se você está com medo disso, o que é sensato estar aqui, o seguinte pode ser útil. Prefira o seguinte em uma linha com a chave pública que você configura na máquina que deseja fazer backup ( /root/.ssh/authorized_keys
):
command="rdiff-backup --server --restrict-read-only /",from="hostname.or.ip.address.to.allow",no-port-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAA.... and the rest of your key in the same line.
Este é um exemplo usando uma chave RSA. Mude para as suas necessidades.
Opcionalmente, configure o daemon SSH para aceitar apenas as chaves com forced-commands
para root
. Em sshd_config
set PermitRootLogin forced-commands-only
.
Isso fornece bastante segurança:
- Login de comando forçado apenas para o root, neste caso executando o rdiff-backup no modo de servidor somente leitura.
- Apenas autoriza se a conexão for feita a partir de uma determinada fonte (host).
- Nenhuma porta TCP e encaminhamentos X permitidos.
- Nenhum pty atribuído.
No entanto,
- Possíveis falhas de segurança no Rdiff-backup podem ser exploradas.
- Guarde suas chaves em um lugar seguro, sempre. (Exclua-os do seu backup, por exemplo!)