Questão Cronjob não funciona


Eu tentei configurar um cronjob no meu servidor. Na verdade, este comando deve executar um programa java a cada hora. Mas de alguma forma isso não funcionou. Eu pesquisei e tentei configurar um script de teste que deve ser executado a cada minuto para que eu possa ver se meu cronjob funciona.

Se eu executar o script do shell, não há problema.

ps ax| grep cron

imprime o seguinte

1147 ?        Ss     0:00 cron
13940 pts/0    S+     0:00 grep --color=auto cron

meu crontab -l:

# m h  dom mon dow   command
30 * * * * root java -jar -Xss100m /home/crawler/WebCrawler.jar
1 * * * * root /home/crawler/test.sh

o test.sh:

#!/bin/bash

echo "this is a test " >> test.txt

Alguém tem um idead o que talvez esteja errado com o meu sistema e os crontabs i configurar? É um servidor ubutnu 10.04 (porque o hoster que eu uso tem problemas com sua virtualização e devido a isso o 10.04 é a única versão que executa o jvm corretamente: /)


0


origem


Você sabe oquê -Xss parâmetro significa? :)
Fiz o test.sh o cron executa como esperado. Eu acho que você precisa remover o root palavra do início do comando. Nunca vi isso antes. - mtk
iirc -xss definir um tamanho de pilha para o segmento. test.sh executar como esperado se eu iniciá-lo a partir do shell com ./test.sh. Eu removi a raiz do crontab mas ela ainda não é executada.
você pode checar seus e-mails? Quero dizer, digite e-mail em unix / terminal e verifique se há algum e-mail nele. Se houver cheque, o que isso diz?
Bem. Totalmente perdoe que o cron spam meu e-mail se tiver erros. Cron parece não ter problemas com a execução do test.sh porque não há e-mail mencionando este arquivo. Mas tem problemas com o comando java. Parece que o cronjob não está executando o processo no /home/crawler/ diretório. O crontab é incapaz de encontrar o COnfig.cfg do programa java e o qual está em seguida /home/crawler/ diretório e não é capaz de executar casperjs que ia para o caminho via my bashrc. Algumas ideias?


Respostas:


Remova a palavra 'root'. Deve ficar assim:

1 * * * * /home/crawler/test.sh

Isso deve funcionar, se o usuário que executa o cron tiver privilégios suficientes para executar o script.


2



Bem. Eu já tentei isso. Mas parece que o crojob não é executado no diretório do script, por isso não consigo encontrar a saída.
Eu acho que por padrão o Crontab é executado a partir do seu diretório pessoal. Mas eu não tenho certeza. Você pode corrigi-lo de qualquer maneira, especificando a saída no script com um caminho completo: echo "this is a test " >> /tmp/test.txt ou fazendo um cd antes do comando cron: 1 * * * * cd tmp && /home/crawler/test.sh ou fazendo o cd como o primeiro comando em seu script e, em seguida, a instrução echo. - Alex
de alguma forma nem 1 * * * * cd /home/crawler& && test.sh nem inserindo cd /home/crawler/ no test.sh seesm para trabalhar :(
E os usuários que executam o crontab podem executar o script? p.s. Você percebe que isso faz funcionar uma vez por hora, certo? (1 * * * *) Eu não sei como você está testando isso, mas você não esperou uma hora antes de postar aqui de novo ;-). - Alex
tudo bem ... eu acho que eu misturei um monte de pensa: D 0-59 funciona bem com cd /home/crawler& && test.sh. Muito obrigado por me ajudar esta manhã :)