O Cron não está em execução desde uma data específica [fechada]

0

Meu servidor não está executando tarefas do cron desde 25 de março, embora ele estivesse em execução antes desse dia e nada tenha sido alterado.
A versão do SO é Ubuntu 8.04LTS.

Primeiro, reiniciei cron e verifiquei os processos.

$ sudo /etc/init.d/cron restart
 * Restarting periodic command scheduler crond
   ...done

$ ps aux | grep cron
root     14893  0.0  0.0  19640   908 ?        Ss   14:50   0:00 /usr/sbin/cron
user     16144  0.0  0.0   4972   844 pts/0    R+   14:50   0:00 grep cron

$ pgrep cron
14893

Parece que o processo cron está em execução, mas quando verifiquei o status:

$ /etc/init.d/cron status
 * Usage: /etc/init.d/cron {start|stop|restart|reload|force-reload}

Eu acho que há algo errado.

Eu verifiquei o syslog

$ less /var/log/syslog | grep CRON

Mar 25 07:50:01 mail /USR/SBIN/CRON[12406]: (user) CMD (/home/user/public_html/rails_app/current/script/runner -e production "NewsRelease.send_unnoticed_mails" >> /home/user/public_html/rails_app/current/log/cron.log 2>&1)
Mar 25 07:50:01 mail /USR/SBIN/CRON[12409]: (user) CMD (/home/user/public_html/rails_app/current/script/runner -e production "Link.send_unnoticed_mails" >> /home/user/public_html/rails_app/current/log/cron.log 2>&1)
Apr  7 11:47:19 mail /usr/sbin/cron[13954]: (CRON) INFO (pidfile fd = 3)
Apr  7 11:47:19 mail /usr/sbin/cron[13955]: (CRON) STARTUP (fork ok)
Apr  7 11:47:19 mail /usr/sbin/cron[13955]: (CRON) INFO (Skipping @reboot jobs -- not system startup)

Os logs após 7 de abril são logs quando eu executo comandos para cron manualmente.
Portanto, o cron não está em execução desde 25 de março.

Meu arquivo crontab está abaixo. É executar métodos de trilhos e rubis. Esses trabalhos foram executados com sucesso antes de 25 de março.

# Begin Whenever generated tasks for: rails_app

PATH=/usr/loca/sbin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
50 7 * * * /home/user/public_html/rails_app/current/script/runner -e production "Link.send_unnoticed_mails" >> /home/user/public_html/rails_app/current/log/cron.log 2>&1

0 5 * * * /home/user/mysql_backup.sh >> /home/user/public_html/rails_app/current/log/cron.log 2>&1

0,15,30,45 * * * * /home/user/public_html/rails_app/current/script/runner -e production "Tweet.post_tweet_at" >> /home/user/public_html/rails_app/current/log/cron.log 2>&1

# End Whenever generated tasks for: rails_app
    
por DIGITALSQUAD 07.04.2017 / 08:24

1 resposta

3

Se eu leio os comentários corretamente, você está procurando uma correção temporária enquanto obtém um novo servidor executando um sistema operacional compatível. Nesse caso, você pode tentar o seguinte

Crie um script que execute um loop infinito para fazer suas chamadas, em vez de tentar corrigir o cron em um SO muito obsoleto. Algo assim deveria fazer.

#!/bin/bash

while true
do
    time=$(date +%H:%M)
    hr=$(cut -f1 -d: <<< "$time")
    min=$(cut -f2 -d: <<< "$time")

    if [ "$hr" == "07"] && [ "$min" == "50" ]; then
        #run something at 7:50am
    fi

    if [ "$hr" == "05" ] && [ "$min" == "00" ]; then
        #run something at 5am
    fi

    if [ "$((min % 15))" == "0" ]; then
        #run something every quarter hour
    fi

    sleep 60
done

Então, claro, há a tarefa de executar isso no momento da inicialização. Meus 8,04 dias passaram há muito tempo e não posso dizer o que funcionou naquela época. Dê uma olhada em esta postagem e veja se você está onde quer estar.

    
por b_laoshi 07.04.2017 / 09:30