Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Не работает Cron. Ubuntu server 12.04  (Прочитано 3524 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн i7r7

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Не работает Cron. Ubuntu server 12.04
« : 26 Сентября 2013, 20:42:21 »
Добрый день/вечер/утро (выбрать нужное) всем!

Достала беда с Cron: на одном из серверов имеет наглость не работать!

История: есть два новых сервера HP, абсолютно одинаковы по железу, за исключением того, что на одном рейд-масив, а на втором нет.
На обоих установлена Ubuntu server 12.04 c одного диска. На обоих самба, апач, вирт.машины (KVM). На первом еще джаббер и бинд крутятся. Почтовика нет нигде.
По большому счету все, но.....
На первом сервере Cron пашет как миленький, а на втором (crontab -e из под рута) не хочет выводить даже тестовое
* * * * * echo "Hello!"

На законный вопрос: "- а что же в логах?" дословный ответ:
CRON info (no MTA installed, discarding output)

Вроде напрашивается вывод поставить почтовик, однако после установки оного (перепробовал несколько, последний postfix), в лучшем случае отправляется юзеру письмо с Hello!.

В сислоге имеем: (root) CMD (echo "Hello!"), в почте Hello!.

Пришло на ум сравнить конфиги Cron на обоих серверах.
После удаления Anacron на втором сервере (на первом его не было), конфиги стали как две капли воды (сравнивал каждый файл с помощью diff), кроме лишнего файла mdadm в /etc/cron.daily на первом сервере.
А воз и ныне там...

Проверял права на сrontab и прочие в /etc/cron.d - владелец - root rw-r--r--.
У скриптов в /etc/cron.daily, cron.hourly, cron.monthly, cron.weekly владелец - root rwxr-xr-x.

Что дальше делать - ума не приложу :(
Прошу совета и помощи, если кто может.

Пользователь решил продолжить мысль 27 Сентября 2013, 12:43:04:
Вот что обнаружил: если в теле скрипта имеется любая команда ввод-вывода тогда все операции выполняются каким-то непонятным образом с выводом результатов программы на почту рута, но реально в системе никаких изменений не производится  ???
Как оказалось это правило действует и для первого сервера!
Другие же команды например архивирование, создание файлов и т.п. выполняется кроном безупречно на обоих серверах.

В конце концов нашел на этом же форуме (https://forum.ubuntu.ru/index.php?topic=218416.0):
Грабли, на которые можно наткнуться при работе с кроном:
1. Интерпретатор. Скрипт должен начинаться с
#!/bin/bash
2. Права. На исполнение. Я ставил 755
3. В конце скрипта должна быть пустая строка
4. Полные пути ко всем командам в скрипте - у крона окружение отличается от пользовательского
   (будет работать в консоли, а при запуске кроном - нет)

Спасла последняя строчка.
После добавления "/sbin/" перед "route" скрипт заработал:

#!/bin/bash

 MAIN=X.X.X.X
 SECOND=Y.Y.Y.Y

 # Проверяем, пингуется ли основной шлюз.
 if fping -c3 $MAIN; then
   /sbin/route del default
   /sbin/route add default gw $MAIN
   exit0
 else
   if if fping -c3 $SECOND; then
      /sbin/route del default
      /sbin/route add default gw $SECOND
      exit0
   else
      exit0
   fi
fi

Вывод: имело место непонимание и незнание того, как работает Cron.
« Последнее редактирование: 27 Сентября 2013, 19:34:51 от i7r7 »

Оффлайн buges

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Не работает Cron. Ubuntu server 12.04
« Ответ #1 : 16 Июля 2014, 23:43:48 »
Здравствуйте.

Прошу помощи, не могу понять почему CRON не запускает задачи, если просто запустить скрипт, то норма всер проходит как надо, а крон не работает, пробовал менять и пользователей, права и папки на хождения скрипта, не помогло... Прошу помощи.
Сам скрипт:
tmux send-keys -t 0 '.......'
sleep 60
tmux send-keys -t 0 '......'
sleep 30
tmux send-keys -t 0 '.........'
Запись в CRONe:
*/3 * * * * /home/..../script/....sh

Оффлайн Flying_Cat

  • Новичок
  • *
  • Сообщений: 44
    • Просмотр профиля
Re: Не работает Cron. Ubuntu server 12.04
« Ответ #2 : 17 Июля 2014, 01:32:02 »
Здравствуйте.

Прошу помощи, не могу понять почему CRON не запускает задачи
Мне так кажется что в кронтабе нужно прописать это:
# Внимание! НЕ ЗАБЫВАЕМ прописать shell и пути к исполняемым файлам!
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
UbuntuMate 14.04 LTS [x86-64]+Unity
Linux Mint Cinnamon 17.3
Gigabyte H61MA-D3V+IntelHD Graphics 2000+Pentium CPU G860 3.00GHz

Оффлайн buges

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Не работает Cron. Ubuntu server 12.04
« Ответ #3 : 17 Июля 2014, 09:14:38 »
Здравствуйте.

Прошу помощи, не могу понять почему CRON не запускает задачи
Мне так кажется что в кронтабе нужно прописать это:
# Внимание! НЕ ЗАБЫВАЕМ прописать shell и пути к исполняемым файлам!
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

Проблему решил, сам был виноват.
Забыл добавить в конец команду Enter, то есть получилось:
tmux send-keys -t 0 '.......' enter
sleep 60
tmux send-keys -t 0 '......' enter
sleep 30
tmux send-keys -t 0 '.........' enter

 

Страница сгенерирована за 0.041 секунд. Запросов: 25.