terça-feira, 9 de agosto de 2011

Backup seletivo

  Um dos serviços que funciona na minha máquina é o backup. Através deste script é feita uma compactação dos arquivos importantes combinado com o crontab, responsável por agendar certas tarefas de acordo com a sua programação.
  O primeiro comando, o cp copia meus favoritos para dentro do diretório text. Foi decidido que o nome do arquivo contém a data do dia do backup. Como não é incremental, posso recuperar arquivo com até 30 dias. Os nomes dos arquivos são backup_01.tar.gz, backup_02.tar.gz e assim por diante.
  Abaixo do comando tar estão os diretório e nomes de arquivos (indicados pela extensão ou mesmo por "*") que devem ser compactados. É importante usar o backslash (\) no final de cada linha para que o tar entenda que a instrução não acabou na primeira linha.
  Por fim, é feita uma verificação se o HD externo está montado no sistema operacional. O comando df serve para listar partições e dispositivos montados. Caso a resposta do if seja igual a 0 (zero), ou seja, verdadeiro, o cp copia para um diretório específico do HD externo. Caso negativo, responde que não está montado.
  Recomendo uma lida na man page do comando date para entender como obter determinados valores como mes, ano, hora, minuto entre muitas outras. Talvez criar 30 arquivos seja incômodo demais dependendo do volume que cada compactação ocupe. Então pode usar, por exemplo, um para cada dia da semana gerando apenas 7 arquivos.

#!/bin/bash

# copy my bookmarks from firefox to text directory
cp -v `ls -1tr ~/.mozilla/firefox/s9fan4kw.default/bookmarkbackups/*.json | tail -n 1` ~/text/bookmark.html

data=`date +%d`

tar cvfz /dados/backup/backup_$data.tar.gz \
~/documents/geocities/*.html \
~/documents/geocities/*.txt \
~/programas/* \
~/text/* \
~/documents/*.ldif \
~/documents/CV*


df -h /media/FUJITA250/
if [ `echo $?` = 0 ]
  then
   cp -v /dados/backup/backup_$data.tar.gz /media/FUJITA250/backup/
  else
   echo not mounted
fi

  Não deixe para o seu backup para amanhã. Saiba automatizá-lo para evitar momentos desagradáveis depois da perda.

Nenhum comentário:

Postar um comentário