Agendando Tarefas para Execução Automática Carole Williams, carole@redhat.com Você pode configurar processos para rodar repetidamente, em intervalos de tempo, sem qualquer intervenção humana necessária. Exemplos destes processos podem ser analisadores de arquivos de log, ferramentas para monitoramento de segurança de redes, tarefas de manutenção de sistemas de arquivos além de outras. Para livrá-lo da tarefa de rodar estes processos manualmente, o daemon cron pode ser configurado para rodar automaticamente estes tipos de processo em intervalos de tempo por você definidos. Cada porcesso rodará como o usuário associado à tarefa. ______________________________________________________________________ Table of Contents 1. Ativando ou Desativando a Entrada 2. Configurando um Comando a Ser Repetido 3. Configurando Quando o Comando Deve Rodar 4. Exemplos ______________________________________________________________________ 11.. AAttiivvaannddoo oouu DDeessaattiivvaannddoo aa EEnnttrraaddaa Por padrão, novas entradas estão ativas. Retire a seleção de "Esta entrada está ativa" caso queira a suspender um processo. É possível ao invés disso se apagar a tarefa, porém se esta for novamente rodada no futuro, desativá-la é um processo mais conveniente. 22.. CCoonnffiigguurraannddoo uumm CCoommaannddoo aa SSeerr RReeppeettiiddoo Qualquer comando pode ser digitado na Caixa de comando. Pode-se querer incluir a rota completa para o comando, para ter-se certeza de que o comando foi encontrado. Caso o comando seja muito longo e complexo, pode-se criar um shell script para rodar este comando e então digitar o comando a ser rodado neste script dentro da caixa de comando, como no seguinte exemplo: sh nome-do-seu-script 33.. CCoonnffiigguurraannddoo QQuuaannddoo oo CCoommaannddoo DDeevvee RRooddaarr Você precisa especificar exatamente quando quer que o comando rode. O daemon cron acorda a cada minuto e verifica se o processo está agendado. O processo rodará apenas qundo todos os campos forem verdadeiros (exceto nos campos de dia do mês e dia da semana). Os campos dia do mês e dia da semana especificam os dias em que um processo rodará. Se nenhum dos campos estiverem com *, então os processos rodarão se pelo menos um dos campos for verdadeiro. Se ambos estiverem com *, os processos rodarão todos os dias. Caso seja necessário ajustar um avanço no sistema de tempo (por exemplo, durante o horário de verão), quaisquer tarefas agendadas para rodar neste tempo que foi pulado não o farão. Se o tempo for atrasado (novamente tendo o horário de verão como exemplo), então uma tarefa pode ser processada duas vezes. Caso você adicione um processo a um servidor já bastante carregado, você deve estar ciente de que outros processos estão agendados. Tarefas grandes são agendadas de uma forma mais eficiente para quando o sistema não estiver carregado. Para a grande maioria dos sistemas, isto seria normalmente à noite, porém isto depende de seu sistema e de sua configuração. Um asterisco (*) indica que o processo deve rodar a cada período de tempo (por exemplo, um * no campo "Meses" indica que o processo deve rodar cada mês). Um hífen (-) indica que a tarefa deve ser processada durante um certo intervalo de tempo, incluindo os pontos finais. Por exemplo, 2-5 no campo mês indica que a tarefa deve ser processada em Fevereiro, Março, Abril e Maio. Vírgulas (,) devem ser usadas para separar entradas específicas para um período de tempo. Por exemplo, um 5.6,11 no campo mês indica que a tarefa será processada em Maio, Junho e Novembro. Vírgulas podem também separar faixas de números (por exemplo, 1-3, 6-9 no campo mês pode significar de Janeiro a Março e de Junho a Setembro). Uma faixa de valores, ou um *, seguido de uma barra (/) e um número é usado para um salto sobre uma faixa de valores. Então um 2-10/2 no campo meses indica a cada dois meses de Fevereiro a Outubro (em outras palavras Fevereiro, Junho, Agosto e Outubro). Um */5 no campo dia faria com que o processo rode a cada cinco dias no mês: o primeiro, o sexto, o décimo primeiro e assim sucessivamente. MMoonntthhss Janeiro é 1, Fevereiro é 2...Dezembro é 12. Como alternativa, você pode utilizar as três primeiras letras do mês (em inglês): jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov e dec. Exemplos: 1-6 é cada mês de Janeiro a Junho, incluindo Janeiro e Junho. 1,6,12 significa Janeiro, Junho e Dezembro. 1-12/3 ou */3 significam a cada três meses iniciando em Janeiro (em outras palavras, Janeiro, Abril, Julho, Outubro). 1-12 ou * significa todos os meses. DDaayyss ooff tthhee mmoonntthh Os dias do mês são de 1 a 31 (lembre-se de que alguns meses podem não ter um dia 29, 30 ou 31. Então se você agenda uma tarefa para rodar no dia 31 de cada mês, ela não rodará durante certos meses). Exemplos: 1,15,28 significa os dias 1, 15 e 28 do mês. Um 2-10 significa do dia 2 até o dia 10 do mês, incluido estes dias. 1-31 ou * significa todos os dias do mês. Se o campo dia da semana estiver também com um *, o processo rodará todos os dias. Se no campo dias do mês tivermos 1-31 ou *, e um valor restrito (algo ao lado do *) estivre no campo dia da semana, a tarefa irá rodar quando o campo dia da semana f or verdadeiro. DDaayyss ooff tthhee wweeeekk Domingo é 0, Segunda é 1, Terça é 2...Sábado é 6. Como alternativa pode-se usar as três primeiras letras do dia sa semana (em inglês): sun, mon, tue, wed, thu, fri, sat. Exemplos: 2,4,6 significa Terça, Quinta e Sábado. 0-6 ou * significa todos os dias da semana. Se o campo dia do mês for também um *, a tarefa irá rodar todos os dias. 0-6 ou * mais um valor restrito (algo ao lado do *) no campo dia do mês significa que a tarefa irá apenas rodar quando o campo dia do mês for verdadeiro. HHoouurrss A hora do dia vai de 0 (meia-noite) até 23 (11 p.m.). Exemplos: 0,1,2 significa o 0000 (meia-noite), 0100 (1 a.m.) e 0200 (2 a.m.) horas. 0-23/2 e */2 significa 0000, 0200, 0400...2200. MMiinnuutteess Os minutos em uma hora vão de 0 a 59. Exemplos: 0,30 significa na hora e na meia hora. 0-59/5 e */5 significa a cada 5 minutos durante a hora, iniciando na hora (na hora, depois a cada 5 minutos ...). 44.. EExxeemmppllooss Months * Days of the month * Days of the week * Hours 0 Minutes 5 Esta configuração rodará um processo todo os dias, à meia-noite e cinco. Months * Days of the month * Days of the week 0,3,6 Hours 2 Minutes 10 Esta configuração rodará um processo a cada Domingo, Quarta-Feira, e Sábado às 2:10 a.m. Months * Days of the month 1,15,31 Days of the week 2 Hours 1 Minutes 10 Esta configuração rodará um processo durante todo o mês, nos dias 1, 15 e 31, e a cada Terça-Feira, à 1:10 a.m. Obviamente, você provavel­ mente nunca precisará agendar um processo como este, mas este exemplo ilustra como os campos dias do mês e dias da semana são combinados, caso nenhum deles tenha um *.