quinta-feira, 12 de setembro de 2013

Agendando tarefas com crontab

Em manutenções de sistemas e de sites, é preciso realizar tarefas de backup e checagem [ou outras tarefas] periodicamente. Todo sistema Linux vem com um programa chamado cron e ele serve justamente pra isso: Agendar tarefas e/ou executá-las com uma certa periodicidade

Para configurar uma crontab [crontab é o nome de uma configuração do cron] para um usuário [crontabs globais do sistema são criadas somente pelo usuário root, esse arquivo global é encontrado em /etc/crontab]. O crontab pode ser usado das seguintes formas:
crontab -e # Edita o crontab para o usuário atual
crontab -l # Lista as tarefas
crontab -r # Apaga a crontab do usuário


Vamos supor que você queira executar o comando echo "Você é demais!" todo dia às 8h:00min, então é só adicionar a seguinte linha depois de rodar crontab -e
0 8 * * * echo "Você é demais"

Agora, vamos entender como é a sintaxe de uso:
minuto hora dia_do_mes mes dia_da_semana programa_a_ser_executado
O * [asterisco] funciona como um caractere coringa e que quando utilizado ele pega toda a faixa de valores para cada parâmetro. Ainda existem mais caracteres especias com diferentes "poderes", por exemplo:
0,30 6,11 * * * echo "Hey, how is going your day?"
0,30 6-11 * * * echo "Relax, bro"
*/2 * * * * echo "Se passaram meia hora"
Vírgula (,): 0,30 quer dizer "aos 0min e 30min execute..."
Hífen (-): 6-11 quer dizer
Dica: Você também pode trocar o dia_da_semana [6o argumento] pelo usuário que executará a tarefa. Ex:

*/2 * * * * root rm -rf /tmp/*

A linha acima diz: "A cada 30 minutos execute o comando como root"

Pois é pessoal, esse é o basicão. Prometo que, quando der, vou aprofundar mais um pouco.

Nenhum comentário:

Postar um comentário

~le comentário