Crontab
O cron é um utilitário de software baseado em gerir tempo e de tarefas em sistemas operativos linux e unix.
Utilizando o crontab para agendar tarefas (comandos ou scripts shell ) para serem executadas periodicamente em horários fixos, datas ou intervalos. Normalmente o cron automatiza a manutenção do sistema ou administração, embora a sua natureza de propósito geral o torna útil para coisas como se ligar à internet e download de gerir email em intervalos regulares.
O cron é impulsionado por um arquivo crontab (tabela cron) que é um arquivo de configuração que especifica os comandos a serem executados periodicamente num determinado horário. Os arquivos crontab são armazenados pelo sistema para mais tarde serem executados.
Os utilizadores de um sistema podem ter seus próprios arquivos crontab individuais e muitas vezes existe um arquivo crontab para todo o sistema (geralmente em /etc ou um subdiretório de /etc) que apenas os administradores do sistema podem editar.
Cada linha de um arquivo crontab representa uma tarefa que é composta por uma expressão cron, seguido de um comando a executar. Algumas implementações de cron, como na edição bsd 4, escrito por Paul Vixie e incluído em muitas distribuições Linux, permite, adicionar a um sexto campo que executa o trabalho especificado (sujeito à existência de utilizador e permissões).
Isso é permitido apenas no sistema de crontabs e não em outros, que são atribuídos a um único utilizador. O sexto campo é por vezes utilizado como alternativa para o ano em vez de uma conta de utilizador.
Embora normalmente o trabalho é executado quando os campos de especificação de data/hora coincidem com a hora e data actual, há uma excepção. Se ambos "dia do mês" e "dia da semana" são restritas (e não "*"), em seguida, o "dia do mês" de campo (3) ou o "dia da semana" campo (5) deve coincidir com o dia actual.
* * * * * comando a executar - - - - - | | | | | | | | | +----- dia da semana (0 - 6) (Domingo=0) | | | +------- mes (1 - 12) | | +--------- dia do mes (1 - 31) | +----------- hora (0 - 23) +------------- minuto (0 - 59)
Para editar e ou adicionar uma tarefa:
crontab -e -u root
Para listar tarefas:
crontab -l
Alguns exemplos em baixo com um router wireless
Tarefas diárias
Antes do re-inicio, enviar o relatório do ponto de acesso gateway 59 5 * * * report >/dev/null 2>&1
Envio de email informativo sobre o reinicio para gateways
45 5 * * * ssmtp nome@wirelesspt.net < /home/cmsv/reinicio >/dev/null 2>&1
Reinicio diário para refrescamento @ 6 AM
0 6 * * * reboot >/dev/null 2>&1
Libertar memoria RAM 3 minutos depois
3 6 * * * sync; echo 3 > /proc/sys/vm/drop_caches >/dev/null 2>&1
Tarefas semanais
Envio de email informativo sobre o reinicio para gateways
45 5 * * 1 ssmtp nome@wirelesspt.net < /home/cmsv/reinicio >/dev/null 2>&1
Reinicio semanal na segunda feira @ 6 AM
0 6 * * 1 reboot >/dev/null 2>&1
Libertar memoria RAM 3 minutos depois
3 6 * * 1 sync; echo 3 > /proc/sys/vm/drop_caches >/dev/null 2>&1
Tarefas mensais
Envio de email informativo sobre o reinicio para gateways
45 6 1 * * ssmtp nome@wirelesspt.net < /home/cmsv/reinicio >/dev/null 2>&1
Reinicio mensal na primeiro dia do mes @ 6 AM
0 6 1 * * reboot >/dev/null 2>&1
Libertar memoria RAM 3 minutos depois
3 6 1 * * sync; echo 3 > /proc/sys/vm/drop_caches >/dev/null 2>&1