crontab do ubuntu server 10

Iniciado por ricardodf2, 04 de Agosto de 2010, 18:40

tópico anterior - próximo tópico

ricardodf2

Amigos,
precisei formatar o servidor que eu utilizava e que continha o ubuntu 6.
Agora com o Ubuntu 10 server não consigo fazer o crontab rodar.
Acontece que preciso que ele rode para que um serviço cron do moodle seja
atualizado.
Existe nesta versão alguma diferença sobre o cron.
procurei o arquivo /etc/init.d/cron
abri o mesmo com o editor nano e lá não vi nenhuma linha sobre o crontab que está em etc/crontab
é assim mesmo?
o que faz o crontab ser lido e executado?
houve mudança nesta versão sobre isto?

aguardo ajuda.

zekkerj

O script em /etc/init.d/cron apenas ativa o serviço.

O que faz o serviço (crond) ser executado é a programação pra isso.

Ao programar tarefas, evite mexer no crontab central (/etc/crontab). Use pra isso os vários diretórios de controle, que são:

- /etc/cron.hourly : para tarefas que têm que ser executadas de hora em hora. Coloque seu script nesse diretório e ele será executado a cada hora, perto da hora cheia.
- /etc/cron.daily : para tarefas que têm que ser executadas todos os dias. Coloque seu script nesse diretório e ele será executado, todos os dias, por volta de meia noite.
- /etc/cron.weekly : para tarefas semanais. Se não me engano, essas tarefas são executas no domingo, mas não sei a hora exata --- se é que há uma hora exata.
- /etc/cron.monthly : para tarefas mensais. Estas tarefas são executadas no primeiro dia do mês.

As tarefas nesses diretórios são executadas numa hora fixa, aleatória, próxima, após o momento agendado. Tipo, as tarefas colocadas em "/etc/cron.hourly" são executadas entre "hora e um" e "hora e cinco".

Esses diretórios recebem scripts shell. Se vc precisar executar algum aplicativo no seu script, você deve chamá-lo com o caminho completo (p.ex., "/sbin/iptables" em vez de só "iptables"). Váriáveis de ambiente do seu shell não estarão disponíveis lá; assim, por exemplo, se vc precisar ajustar o proxy (variável http_proxy), tem que fazê-lo dentro de seu script.

Há também um outro diretório "/etc/cron.d" que recebe arquivos de agendamento. Cada linha do arquivo de agendamento tem o formato:

minuto hora dia mês dia-da-semana usuario tarefa

P.ex:

Arquivo /etc/cron.d/sarg:

00/15 09-21 * * * sarg /usr/bin/sarg-reports today > /dev/null
00 01 * * * sarg /usr/bin/sarg-reports daily > /dev/null
00 02 * * 06 sarg /usr/bin/sarg-reports weekly > /dev/null
00 03 01 * * sarg /usr/bin/sarg-reports monthly


Esse arquivo de agendamento vai executar de 15 em 15 minutos, das 9 às 21h, o comando "/usr/bin/sarg-reports today", descartando a saída padrão, com o usuário "sarg" (1a linha).
Todos os dias, à 1h00, o comando "/usr/bin/sarg-reports daily > /dev/null" será executado pelo usuário sarg (2a linha).
Todos os domingos, às 2h00, o comando "/usr/bin/sarg-reports weekly > /dev/null" será executado pelo usuário sarg (3a linha).
No dia 1o. de cada mês, o comando "/usr/bin/sarg-reports monthly > /dev/null" será executado pelo usuário sarg às 3h00 (4a linha).
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D