Utilizando coringas no cron

No post anterior, fiz uma  introdução ao cron. Nesse post, vou falar sobre os coringas que podem ser usados para definir tarefas.

Os coringas nada mais são do que caracteres especiais que substituem os valores que são utilizados para preencher os campos do crontab.

O coringa “*”

Esse coringa quer dizer ‘todos’. Por exemplo, quero uma tarefa que desligue meu note todos os dias às 2 da manhã. Ao invés de digitar todos os dias do mês, todos os meses e todos dias da semana, faço isso usando um único caracter que indica todos em cada campo específico; no meu caso, é o “*”. Vejam o exemplo:

0 2 * * * /sbin/halt

Assim, todos os dias, as duas da manhã meu note desliga.

O coringa “/”

Com esse coringa, podemos enviar uma mensagem ao terminal de 5 em 5 minutos:

*/5 * * * * echo “Teste do cron” > /dev/tty1

O coringa “-“

Aqui, podemos executar uma tarefa dentro de um certo intervalo. Por exemplo, checa o tamanho do diretório home do usuário nix às 17:30, de segunda a sábado e envia a saída para um arquivo:

30 17 * * 1-6 du -hs /home/nix >> /root/controle.txt

O coringa “,”

Executa tarefas em tempos intercalados. Por exemplo, rodar o comando updatedb no minuto 0 e 30 de cada hora:

0,30 * * * * updatedb

O coringa “-” e o “/”

Aqui, juntamos 2 coringas para executar uma tarefa. Eu tinha um hd enorme que, quando não estava escrevendo nada nele, simplesmente ele entrava em hibernação (preguiçoso!😛 ). Aí, coloquei uma tarefa pra sempre escrever no hd; durante os primeiros 30 minutos de cada hora, ele executava um ls no diretório /tmp e guardava a saída do comando em um arquivo:

0-30/5 * * * * ls /tmp >> /root/ls_tmp.txt

Bem, tudo agendado, falta consultar a lista de tarefas agendadas… para isso, usamos o comando crontab com a opção list (-l):

# crontab -l
# m     h       dom     mon     dow     command
0       18      11      6       4       echo “Hoje é $(date)” > /dev/tty1
0       18      *       *       5       tar cvzf /root/backup/home_nix_$(date +’%Y%m%d’).tgz /home/nix
*/5     *       *       *       *       echo “Teste do cron” > /dev/
tty1
30      17      *       *       1-6     du -hs /home/nix >> /root/controle.txt
0,30    *       *       *       *       updatedb
0-30/5  *       *       *       *       ls /tmp >> /root/ls_tmp.txt

Com a opção -l, o crontab mostra todas as tarefas que foram agendadas no sistema e podemos consultar se esta tudo ok, com horário de execução de tarefas, ou se vai ser necessário fazer alguma mudança.

Para remover todas as tarefas agendadas, utilizamos a opção remove (-r):

# crontab -r

O comando acima, remove TODAS entradas que estão na crontab do usuário. Então, se quiser remover apenas algumas tarefas, execute o comando com a opção -e, e dai, é só comentar a linha ou remover que o tarefa não será mais executada.

Eu comentei no post anterior que todos usuários no sistema podem agendar tarefas. Bem, como sabemos, o Linux é multiusuário e multitarefa, e não seria bom se o cron de cada usuário se concentrasse somente no root.

Isso quer dizer que, o root pode controlar a agenda de todo mundo, mas o usuário comum também pode agendar tarefas. Claro que um usuário mortal não pode agendar coisas que somente o todo-poderoso root pode fazer, como por exemplo, desligar o sistema, mudar uma rota, etc; mas ele poderá um backup do seu home, mostrar uma mensagem na tela, coisas que ele tenha permissão para fazer no sistema!

O root tem acesso às tarefas que todos usuários adicionaram no sistema – elas ficam armazenadas em /var/spool/cron/crontabs/; para consultar as tarefas, o root utiliza o crontab com as opções -l (list) e -u (user).

Exemplo… o root quer consultar o que a trinity agendou no sistema:

# crontab -l -u trinity

Caso a trinity resolva consultar sua própria agenda, basta fazer:

# crontab -l

Bem, é isso aí pessoal. No próximo post, vou falar sobre o arquivo /etc/crontab, utilizado para agendar tarefas globais… até lá!🙂

0 Responses to “Utilizando coringas no cron”



  1. Deixe um comentário

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




Follow Nix on WordPress.com
junho 2009
S T Q Q S S D
« maio   jul »
1234567
891011121314
15161718192021
22232425262728
2930  

Flickr Photos

Red and Gold

Mais fotos

%d blogueiros gostam disto: