crontab Archives - Ubuntu Dicas
Tag: crontab
CRONTAB – o agendador de tarefas do linux
por Rodolfo Silveira
Olá pessoal, estou aqui de volta fazendo um pequeno tutorial sobre o crontab o agendador de tarefas do Linux, lembrando que o crontab existe em qualquer versão do linux.
Com o crontab é possivel especificar horários como "todos os dias ás 5 da manhã" ou "a cada meia hora", "de dez em dez minutos".
Para a maioria das tarefas pouco importa a hora que vai ocorrer mas sim a frequência em que ela vai ser executada, como diariamente ou semanalmente. Para isso já existe 4 diretórios especiais, que basta o administrador botar o script lá dentro, eles já serão executados na periodicidade desejada.
/etc/cron.daily diário
/etc/cron.hourly a cada hora
/etc/cron.monthly mensal
/etc/cron.weekly semanal
Mas caso você mesmo queira fazer um periodo especifico, com hora e tudo mais, basta editar o arquivo:
Então vamos lá. Escolha um editor de sua escolha, no meu caso o VIM e abra um terminal e digite:
sudo vim /etc/crontab
Notem no conteúdo:
Notem que já existe algumas entradas justamente dos diretórios especiais, para adicionar sua própria tarefa temos que seguir o seguinte padrão de linha:
minuto hora diadomês mês diadasemana usuário comando
Notem que para cada espaço, se avança um campo e os campos seguem o padrão existente que conhecemos, por exemplo no campo mês não pode ter 15 pois temos de 1-12 e o campo da semana usamos de 0 a 7 onde zero e 7 é domingo 1 é segunda-feira, 2 terça-feira e assim por diante.
Temos também alguns caracteres que facilitam a vida:
Caractere Exemplo Siginificado
Hífen 2-4 intervalo de 2 a 4
virgula 2,4,6,8 os números 2,4,6 e 8
barra */10 de dez em dez
asterisco * todas as opções possiveis
Vamos botar a mão na massa:
Imagine que temos uma rotina de backup que comprime o o /home e o /var/log e queremos que esta rotina aconteça diariamente as 23:35;
Se usarmos o tar por exemplo, poderíamos usar duas linhas de comando ou não, por isso recomendo que crie um script e no arquivo do CRON nós vamos apontar para o script.
Criando o script:
vim /scriptbkp.sh
O conteúdo do script, onde comprime a pasta home e a pasta log no hd externo de modo que o nome do arquivo fique com a data do dia da execução e ainda criando um arquivo de log localizado no /scriptbkplog.log para posterior análise:
tar -cvzf /media/hdexterno/bkphome$(date +%Y_%m_%d).tar.gz /home >> /scriptbkplog.log
tar -cvzf /media/hdexterno/bkplog$(date +%Y_%m_%d).tar.gz /var/log >> /scriptbkplog.log
Vamos dar permissão de execução também:
sudo chmod 755 /scriptbkp.sh
Agora vamos lá no crontab:
Adicione a seguinte linha:
35 23 * * * root sh /scriptbkp.sh
Salve e saia. Pronto, todos os dias da semana, todos os meses, todos os dias do mês, na hora 23 e minuto 35 ele vai executar o script e enviar o backup para o hd externo do exemplo.
Mas e se quisermos a atividade de segunda e sabado as 09:27. A linha ficará assim:
27 09 * * 1,6 root sh /scriptbkp.sh
Se quisermos toda hora, de 08 as 18 de segunda a sexta:
00 8-18 * * 1-5 root sh /scriptbkp.sh
Se quisermos fazer mensalmente independente da hora, feche o crontab e mova o arquivo para a pasta especial, com o seguinte comando:
sudo mv /scriptbkp.sh /etc/cron.monthly
FIM! Se tiverem dúvida podem entrar em contato valeu!
Rodolfo Silveira
@rodolfo_tec
Autor Ubuntu DicasPublicado em 4 de janeiro de 2012 4 de janeiro de 2012 Categorias AplicativosTags agenda, agendador, comandos, crontab, tarefas, terminal20 comentários em CRONTAB – o agendador de tarefas do linux