Tenho backups de hora em hora, diariamente, semanalmente, etc. de um banco de dados mysql executado por rsnapshot. Eles estão funcionando regularmente, mas no cronograma errado.
Aqui está o conteúdo de /etc/cron.d/rsnapshot
:
5 * * * * root /usr/bin/rsnapshot hourly
30 0 * * * root /usr/bin/rsnapshot daily
35 12 * * 0 root /usr/bin/rsnapshot weekly
40 13 1 * * root /usr/bin/rsnapshot monthly
45 0 1 1 * root /usr/bin/rsnapshot yearly
No entanto, quando verifico os arquivos resultantes, parece que os instantâneos estão sendo tirados de acordo com a programação 'de hora em hora'. Por exemplo, o backup daily.0 tem o nome: /backups/daily.0/mysql/2021-01-02_22h05m01s_UTC-db_dump.sql.gz
Você pode ver que esse arquivo foi criado 5 minutos depois da hora.
Por que o trabalho diário, que deveria ser executado às 00h30 todos os dias, é executado 5 minutos depois da hora?
De relevância pode ser esta parte do meu /etc/rsnapshot.conf
:
retain hourly 3
retain daily 7
retain weekly 4
retain monthly 12
retain yearly 100
Responder1
Dos documentos:
Ao configurar [os intervalos de retenção em
/etc/rsnapshot.conf
], observe que o primeiro da lista será o único que realmente faz backup dos arquivos do sistema de arquivos E alterna seus próprios backups anteriores. O restante irá SOMENTE rotacionar os backups anteriores, criando seu backup mais recente a partir do backup mais antigo criado pelo item anterior da lista. Portanto, a ordem em que estão listados no arquivo de configuração é muito importante.
Por esta razão, os dumps reais de backup do banco de dados serão apenas aqueles criados no intervalo mais frequente, neste caso 'de hora em hora'. Como no seu exemplo o cron job é executado 'de hora em hora' cinco minutos após a hora, todos os intervalos maiores (mesmo mensais) acabarão retendo backups que foram criados cinco minutos após a hora.