Crontab não funciona no Ubuntu 10.04

2

Eu o instalei em uma máquina no trabalho e não faria nada, não importava o que eu fizesse. Então agora eu tenho no virtualbox em casa e também não funciona. Aqui está o que estou tentando fazer:

Tenha um arquivo em / home / john / Desktop chamado test.sh. Seu conteúdo:

#! / bin / bash
eco "Bing!" > / tmp / cronjob

Fiz um chmod 777 test.sh e pode executá-lo. A listagem mostra como rwx para usuários / group / global. Em seguida, faço um crontab -e e adiciono a seguinte linha:

* * * * * john /home/john/Desktop/test.sh

Mas isso não funciona. O arquivo nunca é gravado. Eu também tentei usar um horário específico (por exemplo, são 9 da noite, então eu ajustei a hora para 05 21 e aguarde), mas não funciona tão bem. Eu também tentei sem o usuário "john" no crontab, mas sem dados. Eu tentei usar crontab -e -u john também. Nada funciona.

Fazendo um service cron status , percebo que ele está iniciado / em execução. Eu tentei reiniciar também.

O que estou fazendo de errado?

Além disso, se eu precisar executar alguns comandos como root, devo usá-lo com crontab -e -u <username> right ?

    
por john p 30.07.2010 / 02:17

3 respostas

2

Só para ter certeza:

crontab -e

então

30 21 * * * /home/john/Desktop/test.sh

EDIT: Quero dizer que você não precisa de "john" ao lado da seção de tempo do cron e o caminho para o comando.

    
por 30.07.2010 / 02:26
2

Existem três maneiras diferentes de usar o cron.

  1. Colocando scripts nas pastas /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly ou /etc/cron.monthly
    O sistema então executará aqueles no horário agendado com privilégios de root
  2. Editando o / etc / crontab
    Isso leva uma sintaxe como a que você estava tentando usar em crontab -e , porque aqui você pode especificar qual usuário deve ser responsável pelo trabalho agendado, no seu caso, joão.
  3. O comando crontab, que salva uma guia cron para o usuário que fez o trabalho em / var / spool / cron / crontabs

Se você está usando o terceiro método, você não precisa dizer que você é john, ele já sabe. No entanto, você pode informar isso com o sinalizador -u para salvar o trabalho na guia cron de alguém.
Usando o terceiro método, você não precisa ter o joão em * * * * * john /home/john/Desktop/test.sh

    
por 30.07.2010 / 03:25
1
* * * * * john /home/john/Desktop/test.sh

O "john" aqui está errado. Apenas o crontab do sistema possui um campo de nome de usuário; os crontabs por usuário que você edita com crontab -e não o possuem (o usuário está implícito). Apenas deixe de fora.

Also, if I need to run some commands as root I'm supposed to use it with crontab -e -u right?

Não, se você quiser que um cronjob seja executado com direitos de root, faça

sudo crontab -e

(ou coloque-o no crontab do sistema, com o nome de usuário "root").

    
por 30.07.2010 / 02:28