crontab não está funcionando

0

Abaixo está o meu arquivo job.sh

echo 'Job Started Running'
echo 'password' | sudo  ./logstash -f /usr/share/logstash/bin/contact-index-logstash.conf
echo 'Job Ended'

Abaixo está minha sudo crontab -e

* * * * *  bash ~/job.sh > ~/log.log 2>&1

abaixo é meu status do cron

>  service cron status ● cron.service - Regular background program

> processing daemon    Loaded: loaded (/lib/systemd/system/cron.service;

> enabled; vendor preset: enabled)    Active: active (running) since Thu
> 2017-11-09 22:09:03 IST; 1h 40min ago

>      Docs: man:cron(8)  Main PID: 869 (cron)

>     Tasks: 1    Memory: 12.3M

>       CPU: 1min 40.378s    CGroup: /system.slice/cron.service
>            └─869 /usr/sbin/cron -f

> 
> Nov 09 23:42:01 akshay CRON[6264]: pam_unix(cron:session): session
>opened for user root by (uid=0) Nov 09 23:43:01 akshay CRON[6270]:
> pam_unix(cron:session): session opened for user root by (uid=0) 

>Nov 09 23:43:01 akshay CRON[6271]: (root) CMD (bash ~/job.sh > ~/log.log
> 2>&1) 

Nov 09 23:43:01 akshay CRON[6270]: pam_unix(cron:session):
> session closed for user root Nov 09 23:44:01 akshay CRON[6293]:
> pam_unix(cron:session): session opened for user root by (uid=0) 
Nov 09
> 23:44:01 akshay CRON[6294]: (root) CMD (bash ~/job.sh > ~/log.log
> 2>&1)

Quando eu executo o arquivo sh diretamente no shell, ele roda sem nenhum erro, mas sob o crontab ele não está funcionando ..

    
por Akshay Deep Lamba 09.11.2017 / 19:27

1 resposta

1

Seguindo as sugestões do comentário da steeldriver , aqui está como deve ser.

Seu arquivo job.sh (assumindo que logstash está localizado no mesmo local!):

echo 'Job Started Running'
./logstash -f /usr/share/logstash/bin/contact-index-logstash.conf
echo 'Job Ended'

A sua raiz crontab :

* * * * *  /home/username/job.sh > /home/username/log.log 2>&1

cron executa seu script com sh por padrão, então eu removi o sub-pacote bash desnecessário - se você precisar, basta adicioná-lo novamente.

    
por dessert 09.11.2017 / 19:55