otimizar espaço rdiff-backup

2

Oi tudo em meu servidor linux com Ubuntu10 em etc / crontab Eu tenho isso:

0 0 * * * user rdiff-backup -v9 [email protected]::/var/www/ /mnt/server1/www
0 1 * * * user rdiff-backup -v9 [email protected]::/var/www/ /mnt/server2/www
0 2 * * * user rdiff-backup -v9 [email protected]::/var/www/ /mnt/server3/www

O servidor tem um disco rígido de 2Tb por exemplo e com o meu backup eu tenho ocupado 1Tb.
Eu fiz o backup todas as noites, agora, se por um ano ou mais este trabalho de backup o espaço do meu disco rígido, acho que diminuir, porque rdiff-backup fazer histórico de arquivo alterado.
É possível limitar meu crontab para limitar o histórico e manter controlado o espaço do disco rígido? Algo como: "após 30 versão cancelar o mais antigo". é possível fazer isso no meu arquivo crontab?

    
por Alessandro Minoccheri 26.03.2013 / 09:07

3 respostas

4

Como as tarefas do cron são executadas todos os dias e você deseja manter 30 versões, isso é o mesmo que excluir todos os backups incrementais com mais de 30 dias.

Isso é possível com o rdiff-backup usando a --remove-older-than da opção specifiying 30D ou 1M . Você não pode combinar --remove-older-than com o backup ou a restauração de dados em um único comando. Você precisará adicionar linhas ao seu crontab.

Outra ressalva é que --remove-older-than se recusa a excluir vários incrementos ao mesmo tempo, a menos que você especifique a opção --force . Você pode tentar executá-lo uma vez manualmente com --force e, em seguida, deixar que as tarefas agendadas excluam um incremento a cada dia. Isso pode causar problemas se as tarefas agendadas não forem executadas por qualquer motivo (como o servidor estar inativo). Eu incluiria a opção --force nos trabalhos agendados.

Seu novo crontab poderia ser algo assim:

0 0 * * * user rdiff-backup -v9 [email protected]::/var/www/ /mnt/server1/www
0 1 * * * user rdiff-backup -v9 [email protected]::/var/www/ /mnt/server2/www
0 2 * * * user rdiff-backup -v9 [email protected]::/var/www/ /mnt/server3/www
0 3 * * * user rdiff-backup -v9 --remove-older-than 1M --force /mnt/server1/www
20 3 * * * user rdiff-backup -v9 --remove-older-than 1M --force /mnt/server2/www
40 3 * * * user rdiff-backup -v9 --remove-older-than 1M --force /mnt/server3/www

Se você exclui ou não os incrementos antigos antes de criar o novo backup ou quando você executa qual trabalho é algo que deve decidir.

Para ser claro: somente as informações necessárias para restaurar em um estado de backup incremental anterior a 30 dias serão removidas, não os dados antigos que ainda estão presentes no momento ou em um backup incremental mais recente.

Para mais informações sobre a opção --remove-older-than , você pode ler a página do manual :

--remove-older-than time_spec
          Remove the incremental backup  information  in  the  destination
          directory  that  has  been  around  longer  than the given time.
          time_spec can be either an absolute time, like "2002-01-04",  or
          a  time  interval.   The time interval is an integer followed by
          the character s, m, h, D, W, M, or Y, indicating  seconds,  min-
          utes,  hours,  days,  weeks, months, or years respectively, or a
          number of these concatenated.  For example, 32m  means  32  min-
          utes,  and 3W2D10h7s means 3 weeks, 2 days, 10 hours, and 7 sec-
          onds.  In this context, a month means 30 days,  a  year  is  365
          days, and a day is always 86400 seconds.

          rdiff-backup  cannot remove-older-than and back up or restore in
          a single session.  In order  to  both  backup  a  directory  and
          remove old files in it, you must run rdiff-backup twice.

          By  default,  rdiff-backup will only delete information from one
          session at a time.  To remove two or more sessions at  the  same
          time,  supply  the --force option (rdiff-backup will tell you if
          --force is required).

          Note that snapshots of deleted files are covered by this  opera-
          tion.  Thus if you deleted a file two weeks ago, backed up imme-
          diately afterwards, and then  ran  rdiff-backup  with  --remove-
          older-than  10D  today,  no  trace  of  that  file would remain.
          Finally, file selection options such as --include and  --exclude
          don't affect --remove-older-than.
    
por 03.04.2013 / 10:05
1

Você poderia tentar

rdiff-backup --remove-older-than 1M /mnt/server1/www
    
por 26.03.2013 / 09:43
1

Você precisa adicionar outra linha ao seu crontab para informar ao rdiff-backup para remover os arquivos.

De link :

This section assumes that rdiff-backup has been used in the past to back up to host.net::/remote-dir, but all commands would work locally too, if the hostname were ommitted.

This commands deletes all information concerning file versions which have not been current for 2 weeks:

rdiff-backup --remove-older-than 2W host.net::/remote-dir Note that an existing file which hasn't changed for a year will still be preserved. But a file which was deleted 15 days ago cannot be restored after this command is run. As when restoring, there are a variety of ways to specify the time. The 20B below tells rdiff-backup to only preserve information from the last 20 rdiff-backup sessions. (nnB syntax is only available in versions after 0.13.1.)

rdiff-backup --remove-older-than 20B host.net::/remote-dir

    
por 30.03.2013 / 11:47