domingo, 24 de março de 2013

Trabalhando com crontab - Agendando tarefas de Backup.

Olá a todos que visitam este simples blog, mais uma vez estou a escrever um artigo sobre esse ótimo sistema operacional Linux.
Neste artigo vou escrever como funciona e como agendar tarefas no crontab, para ser mas especifico vou agendar uma tarefa de backup utilizando também a ferramenta Rsync.

Bom vamos la, no shell entre como root, ou utilize o sudo para eetuarmos a instalação dos pacotes necessários

# apt-get update
# apt-get install rsync




Agora vamos abrir o crontab, no terminal digite crontab -e

# crontab -e

Por padrão o editor utilizado é o nano, pelo menos no Debian, caso queira mudar o editor padrão de abertura digite o seguinte comando no terminal.

# aptitude install vim-nox
# update-alternatives --config editor

Vamos ver agora como funciona o crontab:


Este comando vai abrir seu arquivo de crontab ou criar um arquivo caso ele ainda não exista. No editor é só inserir uma linha com a rotina que você quer agendar, seguindo a estrutura abaixo abaixo:

O crontab tem o seguinte formato:


[minutos] [horas] [dias do mês] [mês] [dias da semana] [usuário] [comando]

O preenchimento de cada campo é feito da seguinte maneira:

- Minutos: informe números de 0 a 59;

- Horas: informe números de 0 a 23;

- Dias do mês: informe números de 0 a 31;

- Mês: informe números de 1 a 12;

- Dias da semana: informe números de 0 a 7;

Obs: 0 e 7 é refente ao domingo, segunda 1, terça 2, quarta 3, quinta 4, sexta 5, sabado 6.


- Usuário: é o usuário que vai executar o comando (não é necessário especificá-lo se o arquivo do próprio usuário for usado);

- Comando: a tarefa que deve ser executada.



O * representa "todos", por exemplo:

0  4  *  *  0  rm /home/cleio/documentos/*

O exemplo acima remove todos os arquivos da pasta /home/cleio/dcumentos todo o domingo às 4 horas da madruga. Para a execução de comandos completos você pode usar shellscript.

0  4  *  *  0  sh /home/exemplo.hs

O exemplo acima executa o "exemplo.sh" também às 4 da madrugada aos domingos.

Agora vamos agendar uma tarefa de Backup todos os dias às 20:00 horas.


# crontab -e

# m h  dom mon dow   command

00 20 * * 1 rsync -ravzp /dados /BACKUP/2a
00 20 * * 2 rsync -ravzp /dados /BACKUP/3a
00 20 * * 3 rsync -ravzp /dados /BACKUP/4a
00 20 * * 4 rsync -ravzp /dados /BACKUP/5a
00 20 * * 5 rsync -ravzp /dados /BACKUP/6a
00 20 * * 6 rsync -ravzp /dados /BACKUP/sabado
00 20 * * 0 rsync -ravzp /dados /BACKUP/domingo

O comando irá efetuar uma sincronização/cópia do diretório /dados para dentro do diretório /BACKUP na sua pasta que representa o dia da semana (2a, 3a, 4a..) às 20:00 utilizando o comando rsync -ravzp

2a= Segunda
3a= Terça
4a= Quarta
E assim por diante.

É isso ae!



Nenhum comentário:

Postar um comentário