Cron é em linux o equivalente ao tarefas agendadas do Windows, ou seja permite correr automaticamente em background, em intervalos predefinidos pelo utilizador, determinado programa ou script.
Crontab (CRON TABle) é o ficheiro onde são guardadas as tarefas agendadas(intervalo, comandos, etc…).
A seguir algumas luzes sobre o crontabs:
1. Crontab Restrições
2. Crontab Comandos
3. Crontab Sintaxe do ficheiro
4. Crontab Exemplo
5. Crontab Ambiente
6. Desactivar email
7. Gerar log do crontab
Â
1. Crontab Restrições
____________
Pode executar o cron tab se o seu endereço aparecer no ficheiro /usr/lib/cron/cron.allow.Se este ficheiro não existir pode usar o crontab se o seu endereço não aparecer no ficheiro /usr/lib/cron/cron.deny.
Se só existir o cron.deny e estiver vazio, todos os utilizadores o podem usar. Se nenhum dos ficheiros existir, só o root pode usar Crontab’s. Os ficheiros de premissões consistem em 1 username por linha.
2. Crontab Comandos
__________
export EDITOR=vi ;expicifica o editor que vai ser usada para editar o ficheiro crontab.
crontab -e Edita o ficheiro crontab, se este não existir então é criado.
crontab -l Mostra o conteudo do ficheiro crontab.
crontab -r Remove o ficheiro crontab.
crontab -v Mostra data da ultima alteração ao ficheiro crontab
Â
3. Crontab ficheiro
___________
Crontab sintaxe :-Â O Crontab tem 5 campos para especificar o dia, data e hora seguido do comando a ser executado
* * * * *Â Comando a executar
– – – – –
| | | | |
| | | | +—– dia da semana (0 – 6) (Domingo=0)
| | | +——-Â Mes (1 – 12)
| | +——— Dia do mes (1 – 31)
| +———– hora (0 – 23)
+————- minuto (0 – 59)
Â
* O valor valido para cada asterisco é o valor que está no intervalo entre parentises
A coluna pode ter o valor * ou uma lista de valores separados por virgulasÂ
Se tiver um * no campo das horas o comando será executado todas as horas
4. Crontab Exemplo
_______
Este exeplo remove o conteudo do directorio /home/lixo todos os dias ás 18:30
30 18 * * * rm /home/lixo/*
Â
5. Crontab Ambiente
___________
cron executa o comando do directorio de cada utilizador com a shell (/usr/bin/sh)
cron fornece algumas variaveis de ambiente e são elas:
HOME=Directorio do utilizador
LOGNAME=Nome do utilizador
PATH=/usr/bin:/usr/sbin:.
SHELL=/usr/bin/sh
6. Desactivar email
____________
Por defeito o cron envia um email ao utilizador que criou a atrefa. Se nao for necessario ou nao quiser receber estes emails basta acrescentar o seguinte no fim da linha do comando a ser executado Â
>/dev/null 2>&1
Â
7. Gerar um log dos crons
________________
Para escrever o resultados dos comandos para um log:Â
30 18 * * * rm /home/lixo/* > /home/lixo/limpar_lixo.log