Você está na página 1de 3

Agendamento de tarefas

crontab
1.

Apresentao
CRON ou CRONTAB, um agendador de tarefas, utilizado para executar algo
automaticamente em determinados momento/tempo.
2. Configurando
O crontab tem seu funcionamento bem simples, mas requer ateno para a sua projeo.
Para editar ele, basta executar o comando:
# crontab -e
Ir abrir uma janela estilo o editor de texto "vi".
Seus comandos so iguais ao "vi", ento, sem problemas ...
INSERT - para editar
ESC - para finalizr edio
:x! - salvar e sair
:q! - sair sem salvar
* * * * * comando
| | | | | |_ _ _ _
| | | | |_ _ _ _ _
| | | |_ _ _ _ _ _
| | |_ _ _ _ _ _ _
| |_ _ _ _ _ _ _ _
|_ _ _ _ _ _ _ _ _

Comando a ser executado


Semana (0-7 - domingo domingo)
Ms (01-12)
Dia (01-31)
Hora (00-23)
Minuto (00-59)

2.1. Minuto
Varia de 00 59
2.2. Hora
Varia de (00 23)
2.3. Dia
Varia de 01 31
Lembrando sempre que ao executar uma tarefa nos dias acima de 28, essa tarefa no
ser executa no ms de fevereiro.
Usando o dia 31, voc ir eliminar todos os meses que terminam em 30 ou menos.
2.4. Ms
Varia de 01 12
Podendo tambm ser usando nomes em ingls (digitados em MAISCULOS ou minsculos).
Use apenas as 3 primeiras letras do nome.
2.5. Semana
Varia de 0 6 ou 1 7
Sendo, assim: 0 6 de domingo sbado ou 1 7 de segunda domingo.
Podendo tambm ser usando nomes em ingls (digitados em MAISCULOS ou minsculos).
Use apenas as 3 primeiras letras do nome.
2.6. Comando
O comando voc que define, importante lembrar que o "%" (por cento) usado para
quebra de linha, ento, caos voc queira us-lo, digite: "\%", usando a "\" barra
invertida antes.
3. Caracteres especiais
Voc pode tambm trabalhar com "coringas", veja abaixo alguns exemplos.
3.1. Usando "*"
Executar uma tarefa ("echo teste") sendo que por 10 minutos, usando o "*", seja:
--> 10 * * * * echo teste
3.2. Usando "/"
Executar uma tarefa de 5 em 5 minutos, usando o "/", seja:

-->

*/5 * * * * echo teste

3.3. Usando "/"


Executar uma tarefa de 5 em 5 minutos durante os 30 primeiros minutos, usando o "/",
seja:
--> 0-30/5 * * * * echo teste
3.4. Usando "-"
Executar uma tarefa no perodo de 0 5 minutos, usando o "-", seja:
--> 0-5 * * * * echo teste
3.5. Usando ","
Executar uma tarefa no minuto 1, 3 e 5, usando a "," (vrgula), seja:
--> 1,3,5 * * * * echo teste
4. Exemplo
Executando uma tarefa dia 15/03, quando for segunda-feira, no horrio das 23h e
54min.
54
|
|
|
|
|
|_

23 15
| |
| |
| |
| |_
| _ _
_ _ _

03 01 echo "Exemplo de tarefa"


| | | _ _ _ _ Comando a ser executado
| | _ _ _ _ _ Semana
| _ _ _ _ _ _ _ Ms
_ _ _ _ _ _ _ _ Dia
_ _ _ _ _ _ _ _ Hora
_ _ _ _ _ _ _ _ Minuto

*/2 * * * 1-5 ls -lah


executa de 2 em 2 minutos de segunda a sexta-feira.
10,30,45 19 1,15 * * pgdump -U postgres -h 192.168.1.1 dbstruct > /temp/dbstruct
executa backup do banco de dados PostgreSQL todos os dias 1 e 15 dos mes as
19:00, 19:30, 19:45h.
Comandos;
crontab -e ( edita o arquivo crontab )
crontab -l ( lista o arquivo crontab )
crontab -d ( remove o arquivo contrab
Exemplificando;
[root@curso-linux]# crontab -e
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
MAILTO=root
*
1
*
*
*
/usr/local/bin/arquivo-shell.sh
35
1
*
*
*
tar -zcf /temp/bkp_$(date +%Y-%m-%d_%H-%M%S).tar.gz /var/log
50
11
*
*
*
/sbin/shutdown -r 0
Para finalizar:
Esc
:
wq

Obs.: no ultimo * pode ser 1-5 executa de segunda a sexta-feira.