Cron не работает с определенной даты [закрыт]

С 25 марта мой сервер не запускает задания cron, хотя он работал до этого дня, и ничего не изменилось. Версия для ОС - Ubuntu 8.04LTS.

Во-первых, я перезапустил cron и проверил процессы.

$ 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

Кажется, что процесс cron запущен, но когда я проверил status:

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

Я предполагаю, что что-то не так.

Я проверил 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)

Журналы после 7 апреля - это журналы, когда я запускаю команды для cron вручную. Поэтому cron не работает с 25 марта.

Мой файл crontab ниже. Он должен выполнять рельсы и рубиновые методы. Эти задания успешно выполнялись до 25 марта.

# 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
0
задан 7 April 2017 в 11:32

3 ответа

Если я правильно прочитал комментарии, вы ищете временное исправление, когда вы запускаете и запускаете новый сервер, на котором работает поддерживаемая ОС. В этом случае вы можете попробовать следующее

Создать сценарий, который будет запускать бесконечный цикл, чтобы ваши вызовы вместо того, чтобы пытаться исправить cron на очень устаревшей ОС. Что-то вроде этого должно делать.

#!/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

Тогда, конечно, задача запускать это во время загрузки. Мои 8,04 дня давно прошли, и я не могу сказать, что сработало тогда. Взгляните на этот пост, и посмотрите, доставит ли он вас туда, где вы хотите быть.

3
ответ дан 18 July 2018 в 15:24

Если я правильно прочитал комментарии, вы ищете временное исправление, когда вы запускаете и запускаете новый сервер, на котором работает поддерживаемая ОС. В этом случае вы можете попробовать следующее

Создать сценарий, который будет запускать бесконечный цикл, чтобы ваши вызовы вместо того, чтобы пытаться исправить cron на очень устаревшей ОС. Что-то вроде этого должно делать.

#!/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

Тогда, конечно, задача запускать это во время загрузки. Мои 8,04 дня давно прошли, и я не могу сказать, что сработало тогда. Взгляните на этот пост, и посмотрите, доставит ли он вас туда, где вы хотите быть.

3
ответ дан 24 July 2018 в 20:38
  • 1
    Этого решения будет достаточно для меня, поскольку он временно. Я проверю сообщение и попробую так. Я ценю вашу помощь. – DIGITALSQUAD 7 April 2017 в 14:05

Если я правильно прочитал комментарии, вы ищете временное исправление, когда вы запускаете и запускаете новый сервер, на котором работает поддерживаемая ОС. В этом случае вы можете попробовать следующее

Создать сценарий, который будет запускать бесконечный цикл, чтобы ваши вызовы вместо того, чтобы пытаться исправить cron на очень устаревшей ОС. Что-то вроде этого должно делать.

#!/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

Тогда, конечно, задача запускать это во время загрузки. Мои 8,04 дня давно прошли, и я не могу сказать, что сработало тогда. Взгляните на этот пост, и посмотрите, доставит ли он вас туда, где вы хотите быть.

3
ответ дан 31 July 2018 в 23:39
  • 1
    Этого решения будет достаточно для меня, поскольку он временно. Я проверю сообщение и попробую так. Я ценю вашу помощь. – DIGITALSQUAD 7 April 2017 в 14:05

Другие вопросы по тегам:

Похожие вопросы: