O que diabos está acontecendo com meu agendador de cron? (rsnapshot)

1

CRONTABS

Estou usando o rsnapshot com o cron. Aqui está o que o sudo crontab -l me mostra.

0 */4           * * *   /usr/bin/rsnapshot hourly
30 3    * * *           /usr/bin/rsnapshot daily
0  3    * * 1           /usr/bin/rsnapshot weekly

OUTPUT

Eu fui verificar a pasta de backup para ver se tudo está funcionando corretamente, mas aqui está a saída classificada por hora:

elijah@degas:~$ ls -lt /media/backup/
total 0
drwxrwxrwx 1 root root 0 May 30 04:00 hourly.1
drwxrwxrwx 1 root root 0 May 23 04:00 hourly.2
drwxrwxrwx 1 root root 0 May 17 04:00 hourly.3
drwxrwxrwx 1 root root 0 May 14 04:00 hourly.4
drwxrwxrwx 1 root root 0 May 13 04:00 hourly.5
drwxrwxrwx 1 root root 0 May 12 04:00 daily.0
drwxrwxrwx 1 root root 0 May 10 04:00 daily.1
drwxrwxrwx 1 root root 0 May  7 04:00 daily.2
drwxrwxrwx 1 root root 0 May  4 04:00 daily.3
drwxrwxrwx 1 root root 0 Apr 29 16:00 daily.4
drwxrwxrwx 1 root root 0 Apr 28 20:00 daily.5
drwxrwxrwx 1 root root 0 Apr 28 16:04 hourly.0
drwxrwxrwx 1 root root 0 Apr 28 12:21 daily.6
drwxrwxrwx 1 root root 0 Apr 27 10:09 weekly.1
drwxrwxrwx 1 root root 0 Apr 25 07:23 weekly.3

A saída parece quase aleatória! Por que isso poderia estar acontecendo? Eu tenho o que eu pensei que era uma configuração idêntica em uma máquina diferente, e parece estar funcionando bem.

SYSLOG

elijah@degas:~$ cat /var/log/syslog.1 | grep cron
Jun 20 07:40:21 degas anacron[2795]: Job 'cron.daily' terminated
Jun 20 07:40:21 degas anacron[2795]: Normal exit (1 job run)
Jun 20 08:17:01 degas CRON[3144]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 20 09:17:01 degas CRON[3228]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 20 10:17:01 degas CRON[4893]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 20 11:17:01 degas CRON[8737]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 20 12:17:01 degas CRON[10192]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 20 13:17:01 degas CRON[11870]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 20 14:17:01 degas CRON[12829]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 20 15:17:01 degas CRON[13614]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 20 15:54:28 degas crontab[14446]: (root) BEGIN EDIT (root)
Jun 20 15:55:27 degas crontab[14446]: (root) END EDIT (root)
Jun 20 15:55:29 degas crontab[14460]: (root) LIST (root)
Jun 20 16:17:01 degas CRON[14770]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 20 16:44:04 degas crontab[14911]: (root) DELETE (root)
Jun 20 16:44:07 degas crontab[14913]: (root) LIST (root)
Jun 20 17:17:01 degas CRON[15713]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 20 18:17:01 degas CRON[15842]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 20 19:17:01 degas CRON[15928]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 20 20:17:01 degas CRON[16023]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 20 21:17:01 degas CRON[16110]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 20 22:17:01 degas CRON[16212]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 20 23:17:01 degas CRON[16300]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 21 00:00:01 degas CRON[16372]: (root) CMD (invoke-rc.d atop _cron)
Jun 21 00:17:01 degas CRON[16437]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 21 01:17:01 degas CRON[16525]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 21 02:17:01 degas CRON[16612]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 21 03:17:01 degas CRON[16701]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 21 04:17:01 degas CRON[16798]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 21 05:17:01 degas CRON[16886]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 21 06:17:01 degas CRON[16974]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 21 06:25:01 degas CRON[16988]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ))
Jun 21 07:17:01 degas CRON[17061]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 21 07:30:01 degas CRON[17083]: (root) CMD (start -q anacron || :)
Jun 21 07:30:01 degas anacron[17086]: Anacron 2.3 started on 2016-06-21
Jun 21 07:30:01 degas anacron[17086]: Will run job 'cron.daily' in 5 min.
Jun 21 07:30:01 degas anacron[17086]: Jobs will be executed sequentially
Jun 21 07:35:01 degas anacron[17086]: Job 'cron.daily' started
Jun 21 07:35:01 degas anacron[17099]: Updated timestamp for job 'cron.daily' to 2016-06-21

TESTE DE RASTOS

elijah@degas:~$ /usr/bin/rsnapshot -t hourly
echo 23633 > /var/run/rsnapshot.pid 
/bin/rm -rf /media/backup/hourly.5/ 
mv /media/backup/hourly.4/ /media/backup/hourly.5/ 
mv /media/backup/hourly.3/ /media/backup/hourly.4/ 
mv /media/backup/hourly.2/ /media/backup/hourly.3/ 
mv /media/backup/hourly.1/ /media/backup/hourly.2/ 
/bin/cp -al /media/backup/hourly.0 /media/backup/hourly.1 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    --exclude=/var/ --exclude=/space/ --exclude=/nfs/ --exclude=/media/ \
    --exclude=/proc/ --exclude=/sys/ --exclude=/dev/ --exclude=/tmp/ \
    --exclude=/cdrom/ --exclude=media/backup /. \
    /media/backup/hourly.0/Backup 
touch /media/backup/hourly.0/ 
    
por Elijah 20.06.2016 / 23:01

2 respostas

1

Após algumas discussão prolongada , parece que o sistema de arquivos pode estar corrompido. Por exemplo, rm -rf falha - como root - em uma árvore normal de arquivos.

Após desmontar o sistema de arquivos, fsck identificou-o como NTFS.

Frustrantemente, vi NTFS falhar em outras plataformas baseadas em Linux sob as cargas pesadas incorridas em rsnapshot . Não há nada suficientemente repetível com o qual um bug pode ser arquivado, mas uma semana de rsnapshots geralmente pode corromper o sistema de arquivos.

Minha recomendação é substituir o sistema de arquivos NTFS por algo nativo em um sistema baseado em Linux, como o ext4. Como um aparte, se os backups devem ser acessados a partir de uma plataforma Windows, eu tive um bom uso do o utilitário e driver Ext2FSD para sistemas de arquivos extN (também em sourceforge ).

    
por 21.06.2016 / 23:03
4

Este conselho original se aplica somente a distribuições baseadas no Debian :

Os dois segmentos crontab que você mostrou não são os mesmos crontab . Portanto, seus trabalhos estão sendo executados duas vezes (uma vez em /etc/cron.d/rsnapshot e uma vez em crontab -l ).

Remova um conjunto, por exemplo, com sudo crontab -r , e ele começará a funcionar corretamente.

A próxima sugestão é garantir que sync_first não esteja definido no arquivo /etc/rsnapshot.conf . (Ou se for, que é 0 .) Caso contrário, embora ocorra o ciclo de diretórios rsnapshot, nenhum backup será realmente obtido sem um comando explícito rsnapshot sync .

    
por 20.06.2016 / 23:12