Um guia para os iniciantes no mundo do FreeBSD
Utilizando o dump/restore para fazer backups no FreeBSD.
Voce pode utilizar o utilitario dump para fazer backups em seu servidor FreeBSD.
Com o dump voce pode fazer backups de discos locais ou remotos, o que pode facilitar muito sua
vida :-).
Antes de utilizar o dump voce precisa ter em maos as seguintes especificacoes
da fita que vai utilizar para o backup:
Densidade da fita em BPI (default 1600 BPI).
Comprimento da fita em pes (default 2300 pes).
A sintaxe do dump e:
dump [opcoes] [argumentos] [filesystem]
Supondo que eu possua um tape SCSI que utilize fitas de 8 mm com capacidade de 2.3 GB
( 54000 BPI, 6000 pes , blocos de 126 KB ) e deseja-se fazer backup do meu /var
a sintaxe do dump ficaria assim:
# /sbin/dump 0udsbf 54000 6000 126 /dev/rst0 /dev/wd0s1e
Onde as opcoes utilizadas significam:
| 0 | Realiza um backup de todo o sistema de arquivos. Voce pode usar de 0 a 9 , se usar de 1 a 9 o backup sera incremental. |
| u | Informa ao dump que ele deve atualizar o arquivo /etc/dumpdates apos concluir com sucesso sua execucao. |
| d | Informa ao dump a densidade da fita, argumento correspondente 54000 BPI . |
| s | Informa ao dump o comprimento da fita, argumento correspondente 6000 pes. |
| b | Informa ao dump o numero Kb por bloco, argumento correspondente 126 Kb. |
| f | Informa ao dump onde gravar o backup, argumento correspondente /dev/rst0 . |
| /dev/wd0s1e | Sistema de arquivos correspondente ao /var ( verifique a correspondencia em /etc/fstab). |
Ao executar o comando acima, voce observaria em seu monitor, algo como:
DUMP: Date of this level 0 dump: Sun Feb 15 00:20:01 1998
DUMP: Date of last level 0 dump: Sun Feb 7 12:10:23 1998
DUMP: Dumping /dev/wd0s1e (/var) to /dev/rst0
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 66208 blocks (32.33MB) on 0.02 tape(s).
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
DUMP: level 0 dump on Sun Fev 15 00:20:01 1998
DUMP: Tape rewinding
DUMP: 66178 blocks (32.31MB) on 1 volume
DUMP: DUMP IS DONE
Para fazer o backup de um disco em uma maquina FreeBSD remota, por exemplo
de /var da maquina omega, a sintaxe do dump deveria ser algo como:
# /sbin/dump 0udsbf 54000 6000 126 /dev/rst0 omega:/dev/wd0s1e
Veja que apenas acrescentamos omega: ao filesystem. Para poder
utilizar o dump para esta funcao, o servidor omega deve ter seu /etc/hosts.equiv
configurado adequadamente. Consulte, hosts.equiv, no manual online do FreeBSD para
maiores informacoes sobre como faze-lo.
Voce deve observar que fornecer corretamente os dados como densidade, comprimento e
Kb por bloco, sao fundamentais para o sucesso do seu backup, pois e com base nestes dados que o dump ira
determinar se sera necessaria mais de um volume (fita) para o backup, alem e claro
de afetar diretamente a velocidade do backup.
O dump pode realizar um backup do tipo total ou incremental. Quando voce utiliza a
opcao 0 o dump faz o backup de todos os arquivos, as demais opcoes de 1 a 9 indicam
que o dump deve fazer um backup incremental, ou seja se voce executar o dump
por exemplo com a opcao 1 , ele ira fazer backup apenas dos arquivos que
foram alterados desde o ultimo backup realizado. O primeiro backup deve ser sempre feito
usando o nivel 0. Uma boa opcao e efetuar uma vez por semana um backup no nivel 0 e
nos demais dias da semana um backup incremental no nivel 1 , isso pode garantir
que voce possui sempre um backup atualizado.
Como foi utilizada a opcao u na sintaxe do dump,
se sua execucao for concluida con sucesso, ele ira editar o arquivo
/etc/dumpdates e gerar/atualizar a linha referente ao backup deste sistema
de arquivos, no nivel utilizado para o backup (no exemplo , nivel 0):
/dev/wd0s1e 1 Sat Feb 14 00:20:01 1998
/dev/wd0s1e 0 Sun Feb 15 00:20:01 1998
Uma boa ideia seria manter seus usuarios informados sobre as datas em que
foram realizados os backups de seus dados. Isso pode ser feito modificando
periodicamente o arquivo /etc/motd , esta alteracao pode ser feita de
maneira automatica utilizando-se de um pequeno script:
#!/bin/csh
#
/bin/cat /etc/motd | /usr/local/bin/grep -v "Ultimo" > /tmp/motd.$$
set TOTAL='grep "/dev/wd0s1e 0" /etc/dumpdates | awk '{print $3,$4,$5,$6,$7}''
set PARCIAL='grep "/dev/wd0s1e 1" /etc/dumpdates | awk '{print $3,$4,$5,$6,$7}''
echo "Ultimo backup integral realizado em: " $TOTAL >> /tmp/motd.$$
echo "Ultimo backup incremental realizado em: " $PARCIAL >> /tmp/motd.$$
mv /tmp/motd.$$ /etc/motd
#
#fim
Este script deve ser ativado pelo cron sempre apos o termino da execucao do dump,
e de modo a alterar de forma automatica a data do ultimo backup.
FreeBSD 2.2.5 (alfa.pro-unix.org) #12: Sun Feb 15 00:54:26 EDT 1998
bla bla bla bla
bla bla bla bla
bla bla bla bla
bla bla bla bla
bla bla bla bla
************************************************************************
Lembre-se esta msg e altera sempre apos as 2:00 Am
************************************************************************
*
Ultimo backup integral realizado em: Sun Feb 15 00:20:01 1998
Ultimo backup incremental realizado em: Sat Feb 14 00:20:01 1998
Para facilitar sua vida e para efetuar o backup em uma hora que seu
server esteja operando com poucos usuarios, voce pode automatizar a execucao do dump usando o cron.
Consulte: Como utilizar CRON no FreeBSD para controlar a execucao periodica de processos para
maiores informacoes sobre como faze-lo.
Restaurando seus dados
Mas nao basta saber como fazer um backup , voce precisa saber como recuperar
seus dados apartir dele ;-). Para isso voce vai utilizar o comando restore.
A sintaxe do restore e semelhante a do dump:
restore [opcoes] [argumentos]
As opcoes mais utilizadas sao:
| i | Inicia o restore em modo interativo. |
| v | Coloca o dump em modo verbose. |
| b | Informa o numero de Kb por blocos usados no dump. |
| f | Informa o arquivo de onde o restore deve ler os dados. |
Ao iniciar o restore em modo interativo, ele ira ler do backup as informacoes
sobre os dirtetorios e lhe apresentar um shell, no qual voce podera
definir quais os arquivos serao recuperados do backup feito pelo dump.
Os comandos principais comandos disponiveis neste shell sao:
| add | Adiciona o diretorio corrente ou outro arquivo especificado no argumento
a lista de arquivos a serem recuperados. Se um diretorio for especificado,
todos os seus arquivos e subdiretorios serao adicionados a lista de arquivos
a serem recuperados. Os arquivos selecionados serao precedidos de * quando listados
com o ls. |
| cd | Muda de diretorio. |
| delete | Remove o diretorio corrente ou outro arquivo especificado no argumento, da
lista de arquivos a serem recuperados. |
| extract | Todos os arquivos/diretorios selecionados com o comando add
serao extraidos do dump (backup). |
| help | Mostra uma lista dos comandos disponiveis. |
| ls | Lista os arquivos de um diretorio. |
| pwd | Informa o diretorio corrente. |
| quit | Termina o restore. |
Um exemplo de execucao do restore em modo interativo:
#
# restore ivbf 126 /dev/rst0
Verify volume and initialize maps
Dump date: Sat Feb 14 00:22:47 1998
Dumped from: Sun Feb 15 00:54:59 1998
Level 0 dump of /var on sor:/dev/wd0s1e
Label: none
Extract directories from tape.
Initialize symbol table.
restore > ls
2 ./ 2294 db/ 2724 mail/ 28724 tmp/
2 ../ 29413 mail/ 3111 spool/
restore > add mail
Make node ./mail
restore > ls
2 ./ 2294 db/ 2724 *mail/ 28724 tmp/
2 ../ 29413 mail/ 3111 spool/
restore > extract
Extract requested files
You have not read any volumes yet.
Unless you know which volume your file(s) are on you should start
with the last volume and work towards the first.
Specify next volume #: 1
extract file ./mail
...
...
Add links
...
...
Set directory mode, owner, and times.
set owner/mode for '.'? [yn] y
restore> quit
#
Como pode ver o uso do restore e extremamente simples, recomendo que voce
consulte, restore, no manual online do FreeBSD para maiores informacoes.
Para restaurar o backup, apartir de uma unidade de fita
em uma maquina FreeBSD remota, por exemplo
de /dev/rst0 da maquina omega, a sintaxe do restore deveria ser algo como:
# restore ivbf 126 omega:/dev/rst0
Veja que apenas acrescentamos omega:. Para poder
utilizar o restore deste modo, o servidor omega deve ter seu /etc/hosts.equiv
configurado adequadamente. Consulte, hosts.equiv, no manual online do FreeBSD para
maiores informacoes sobre como faze-lo.
Boa sorte !!!
Se você possui alguma critica , duvida ou sugestão ,entre em contato pelo e-mail: edson.brandi@uol.com.br