Você precisa chamar rsnapshot sync
antes de chamar rsnapshot <level>
.
Eu configurei o rsnapshot com a configuração abaixo e parece funcionar bem. No entanto, se eu entendi o que li corretamente, nos documentos do rsnapshot e em outros tutoriais, a operação seria mais robusta com essas opções adicionadas:
link_dest 1
sync_first 1
use_lazy_deletes 1
No entanto, quando eu os habilitei, particularmente sync_first, parece que não funciona corretamente. Não há erros, mas nada parece acontecer (veja o último bloco de código abaixo). O Configtest é bem sucedido. Eu suspeito que estou perdendo alguma coisa sobre como o sync_first deve ser usado. Gostaria de saber primeiro se essas três opções são de fato benéficas quando usadas juntas (sem conflitos) e, em segundo lugar, há uma diferença na maneira como devo chamar o rsnapshot no cron depois de ativar o sync_first?
Isso é instalado no Ubuntu 14.04 com o rsnapshot 1.3.1 e o rsync tem a opção link_dest. Obrigado por qualquer direção sobre isso, os documentos oficiais estão um pouco secos.
Conf
config_version 1.2
snapshot_root /srv/rsnapshot/
no_create_root 0
cmd_cp /bin/cp
cmd_rm /bin/rm
cmd_rsync /usr/bin/rsync
cmd_ssh /usr/bin/ssh
cmd_logger /usr/bin/logger
cmd_du /usr/bin/du
cmd_rsnapshot_diff /usr/bin/rsnapshot-diff
retain HoursAgo 6
retain DaysAgo 7
retain WeeksAgo 4
#retain monthly 3
verbose 5
loglevel 3
logfile /var/log/rsnapshot.log
lockfile /var/run/rsnapshot.pid
rsync_long_args --stats --delete --numeric-ids --relative --delete-excluded
ssh_args -p 22
# host.mydomain.net
backup [email protected]:/etc/ host.mydomain.net/
backup [email protected]:/srv/www/ host.mydomain.net/
backup_script /usr/bin/ssh [email protected] "rm -rf /var/local/mysqlbak/" unused/
backup_script /usr/bin/ssh [email protected] "/usr/local/bin/mysql_bak.sh" unused1/
backup [email protected]:/var/local/mysqlbak/ host.mydomain.net/mysql/
Cron
0 */4 * * * root /usr/bin/rsnapshot hourly 2>&1 | \/usr/local/bin/rsnapreport.pl | mail -s "Hourly Backup" [email protected]
30 3 * * * root /usr/bin/rsnapshot daily 2>&1 | \/usr/local/bin/rsnapreport.pl | mail -s "Daily Backup" [email protected]
0 3 * * 1 root /usr/bin/rsnapshot weekly 2>&1 | \/usr/local/bin/rsnapreport.pl | mail -s "Weekly Backup" [email protected]
Resultados da execução com todas as três opções extras ativadas:
root@backup:~# rsnapshot HoursAgo
require Lchown
Lchown module loaded successfully
Setting locale to POSIX "C"
echo 3567 > /var/run/rsnapshot.pid
mv /srv/rsnapshot/HoursAgo.3/ /srv/rsnapshot/HoursAgo.4/
mv /srv/rsnapshot/HoursAgo.2/ /srv/rsnapshot/HoursAgo.3/
mv /srv/rsnapshot/HoursAgo.1/ /srv/rsnapshot/HoursAgo.2/
mv /srv/rsnapshot/HoursAgo.0/ /srv/rsnapshot/HoursAgo.1/
No directory to delete: /srv/rsnapshot/_delete.3567
rm -f /var/run/rsnapshot.pid
/usr/bin/logger -i -p user.info -t rsnapshot /usr/bin/rsnapshot HoursAgo: \
completed successfully
Isso acontece instantaneamente, sem conexão com o controle remoto e sem tempo para verificar os arquivos alterados.
Update: Encontrei algumas informações adicionais em sync_first nas páginas do Ubuntu no rsnapshot. Eu editei meu cron adicionando rsnapshot sync &&
na frente da linha hourly
:
0 */4 * * * root /usr/bin/rsnapshot sync && /usr/bin/rsnapshot hourly 2>&1 | \/usr/local/bin/rsnapreport.pl | mail -s "Hourly Backup" [email protected]
Isso parece funcionar quando eu o executei manualmente.
Eu ainda gostaria de saber: Essas três opções extras são vantajosas usadas juntas?
Eu também posso despejar as estatísticas, então eu só recebo um e-mail em caso de erro.
Você precisa chamar rsnapshot sync
antes de chamar rsnapshot <level>
.