-
Notifications
You must be signed in to change notification settings - Fork 0
nilsonpena/BkpUtil
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Shell Script que automatiza backups para Linux Sistema Testado: CentOS 5.3 Esse script faz um backup completo a cada mês (AAAA-MM-DD.full.tar.gz) e um backup incremental (AAAA-MM-DD.inc.tar.gz) a cada dia. A cada novo mês o arquivo full do mês anterior é salvo como arquivo morto (AAAA-MM.full.tar.gz.OLD). É possivel configurar a quantidade de meses que serão armazenados no backup. É necessário ter o ssmt instalado para que o administrador seja avisado por email do andamento dos backups. UTILIZAÇÃO Torne o arquivo bkputil.sh executável ex.: chmod +x bkputil.sh Renomeie os arquivo bkp.conf.samble, bkp.list.sample e bkp.excluded.list.sample, removendo a extensão .sample e se preferir mude o nome bkp para algum nome que lhe lembre o que está sendo feito o backup, por ex.: MinhaMusicas.conf MeusDocs.conf. O nome do arquivo .conf será utilizado para identificar os logs e criar uma pasta na raiz do HD EXTERNO para armazenar os arquivos de backup. Observe que arquivo de configuração (.conf) deve ficar no mesmo local do bkputil.sh Edite o arquivo .conf de acordo com as suas necessidades, todos os campos estão devidamente comentados. O HD externo precisa ter um label e este precisa ser informado no arquivo de configuração(.conf). No arquivo .list coloque em cada linha os nomes completos dos diretórios/arquivos que deseja incluir no sistema de backup. Wildcards(* ? etc) não são permitidos. No arquivo .excluded.list coloque em cada linha os nomes dos diretórios/arquivos que deja que não sejam incluidos no backup. É possível utilizar padrões, como por ex.: *.mp3 irá deixar todos os arquivos que terminam com .mp3 fora do backup. O script deve ser iniciado como root e o nome do arquivo .conf deve ser passado como parâmetro ex.: sh bkputil.sh bkp.conf No diretório logs ficarão armazenados os logs de todos perfis de backup, registrando a atividade do mes no arquivo .log e conteúdo do último email enviado no arquivo mail.log. A cada novo mês os logs são compactados BACKUP FULL É o backup completo que é gerado todo mês. Assim que o script detecta que o mês mudou e não existe um arquivo full.tar.gz no diretório de backup, ele se encarrega de criar um novo arquivo FULL e arquivar os antigos de acordo com a política determinada no arquivo .conf. O comando utilizado é: tar -czp --ignore-failed-read --exclude-from=CONF_NAME.excluded.list -g CONF_NAME.inc -f AAAA-MM-DD_DIA_DA_SEMANA.CONF_NAME.full.tar.gz -T $CONF_NAME.list NOTA: os arquivos CONF_NAME.excluded.list, CONF_NAME.list devem ser criados pelo próprio usuário, com o nome que lhe for mais conveniente no lugar de "CONF_NAME" e devidamente informados no arquivo .conf As opções utilizadas no comando tar na hora de criar um backup FULL são: -c = Cria um arquivo -z = Compacta o arquivo -p = Mantém as permissões dos arquivos --ignore-failed-read = Continua o backup mesmo que seja encontrado um arquivo inlegível --exlude-from = Lê um arquivo com a lista de diretórios/arquivos ou padrões que devem ficar fora do backup -g = Informa um arquivo que deve ser utilizado como controle do backup incremental -f = Informa o nome do arquivo que será gerado após o backup -T = informa o nome do arquivo que comtém a lista de diretórios que devem ser incluídos no backup BACKUP INCREMENTAL O backup incremental é feito diariamente e o comando utilizado é o mesmo do backup FULL. a única diferença está no nome do arquivo que passa a ter a palavra "inc" no lugar da "full". Toda vez que um backup full é gerado, todos os backups inc são apagados previamente. AGENDAMENTO Insira em /etc/crontab a execução do script em uma rotina diária, na hora que lhe for mais conveniente, ex.: 45 19 * * * root sh /home/meus_scripts/bkputil/bkputil.sh bkp.conf Dessa forma, em todos os dias do ano às 19:45 o script será iniciado A linha do crontab é dividida em 6 campos * * * * * USUARIO COMANDO Campo Função 1o. Minuto (0-59) 2o. Hora (0-23) 3o. Dia do mês (1-31) 4o. Mês (1-12) 5o. Dia da semana (0-6, onde 0 é domingo) 6o. USUARIO COMANDO para execução
About
Shell script para backup incremental utilizando TAR
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published