O cron pode ser interpretado como um serviço do Linux que é carregado durante o processo de boot do sistema. Trata-se de uma ferramenta que permite programar a execução de comandos e processos de maneira repetitiva ou apenas uma única vez.
No caso citado acima, você poderia usar o cron para que o arquivo de log de um cliente fosse disponibilizado todos os dias às 15 horas, por exemplo. Isso é possível porque o daemon (uma espécie de programa que executa tarefas em segundo plano) do cron executa os comandos nas datas e horários especificados. A cada minuto, o cron é acionado para verificar se há tarefas a serem realizadas.
Para executar as tarefas, o cron usa uma tabela conhecida como crontab. No Debian, o arquivo crontab geralmente fica localizado no diretório /etc, mais especificamente "/etc/crontab".
Como usar o cron
O primeiro passo é abrir o crontab. Para isso, você pode usar editores de textos como vi, gedit ou nano. Também é possível digitar o comando crontab -e para editar o arquivo exclusivo de seu usuário. Neste caso, a edição é feita como se você estivesse usando o vi.
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;
- 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.
No lugar desses valores, você pode informar * (asterisco) para especificar uma execução constante.
Por exemplo, se o campo dias do mês conter *, o comando relacionado será executado todos os dias.
Você também pode informar intervalos no preenchimento, separando os números de início e fim através de - (hífen). Por exemplo, se no campo horas for informando 2-5, o comando relacionado será executado às 2, 3, 4 e 5 horas. E se o comando tiver que ser executado às 2 horas, entre 15 e 18 horas e às 22 horas? Basta informar 2,15-18,22. Nestes casos, você separa os parâmetros por vírgula.
Vamos a um exemplo:
55 22 7,14,21 * * echo "Não entre em pânico" > /home/fred/teste-cron.txt
Neste exemplo, a frase "Não entre em pânico" é inserida no arquivo teste-cron.txt, dentro do diretório /home/fred/, às 22 horas e 55 minutos, nos dias 3, 14 e 21, em todos os meses e em todos os dias da semana.
Comandos do crontab
Para acessar o crontab, basta digitar esse nome em um terminal seguido de um parâmetro. Eis a lista de parâmetros disponíveis:
crontab -e: conforme já informado, serve para editar o arquivo atual do crontab e criar um, caso não exista;
crontab -l: este comando mostra o conteúdo atual do crontab;
crontab -r: remove o arquivo atual do crontab.
Os recursos do cron não se limitam aos mostrados anteriormente. Você pode ainda agendar tarefas mais complexas e poupar muito trabalho nessas execuções automáticas. É possível, por exemplo, configurar o cron para emitir-lhe um aviso de quando uma tarefa for executada. A dica para lidar com o cron é testá-lo. Experimente-o bastante. Mesmo que você seja apenas um usuário doméstico, certamente encontrará alguma utilidade para o cron.
Cara eu tenho esse scrpit #!/bin/bash
ResponderExcluirXtime=2
Xip=$1
main(){
xyz="1"
cmdping=$(ping -c $Xtime $Xip | grep "100% packet loss")
if [ -n "$cmdping" ]; then
cmdbeep;
xyz="0";
fi
if [ "$xyz" == "0" ]; then
Xdate="$(date)";
Xlog="$Xdate - $Xip - offline";
echo "$Xlog" >> /var/log/pingalarm.log;
main;
else
xyz="1";
fi
}
cmdbeep(){
beep -n -f 2222 -l 100
beep -n -f 1 -l 100
beep -n -f 1000 -l 100
}
main
e não sei como coloco no meu crontab o nome do arquivo é pingalarm.sh me ajuda pelo amor de deus...