cron и dbus (Не запускается скрипт)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

NIKitosh
Сообщения: 106
ОС: Debian GNU/Linux Testing

cron и dbus

Сообщение NIKitosh »

Здравствуйте!
Есть такой скрипт
Команда crontab -u nik -l показывает:

Код: Выделить всё

# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.XXXXb2alty installed on Tue Oct 23 00:15:31 2012)
# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)
*/10 * * * * rcon > /dev/null 2>&1

Установлен vixie-cron.
Такие записи появляются в /var/log/messages:

Код: Выделить всё

cron[6045]: (nik) CMD (rcon > /dev/null 2>&1)

Скрипт выполняется, т.к. создаются файлы /tmp/test-* , но кроме этого никаких действий не производит. Если запускать скрипт вручную, то он работает.
Что сделать, чтобы скрипт полностью отрабатывал?
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: cron и dbus

Сообщение KiWi »

Как минимум -- убрать перенаправления в /dev/null и прочитать, какие команды не удаётся выполнить.
Спасибо сказали:
NIKitosh
Сообщения: 106
ОС: Debian GNU/Linux Testing

Re: cron и dbus

Сообщение NIKitosh »

KiWi писал(а):
23.10.2012 01:06
Как минимум -- убрать перенаправления в /dev/null и прочитать, какие команды не удаётся выполнить.


Хорошо, сейчас сделаю.
Спасибо сказали:
Аватара пользователя
sgfault
Сообщения: 586
Статус: -

Re: cron и dbus

Сообщение sgfault »

Просмотрел ваш скрипт. Я бы исправил вот это

Код: Выделить всё

        $dbus --system --print-reply --dest="org.freedesktop.NetworkManager" /org/freedesktop/NetworkManager org.freedesktop.NetworkManager.ActivateConnection objpath:"$vpn_set" objpath:"$dev" objpath:"/"

У вас это работает только потому, что устройство по умолчанию оказалось тем, которое нужно.

Те в спецификации NetworkManager 09 dbus API/org.freedesktop.NetworkManager написано, что для vpn значение specific_object (3-ий аргумент метода .ActivateConnection) должно быть путем к активному соединению, через которое устанавливается vpn, а вы его указали "/" (те НМ выбирает сам то, что по умолчанию).

Те после того, как вы установили нужное ethernet соединение, я вам советую сохранить путь к соответствующему ActiveConnecton объекту, который возвращает ActivateConnection, и использовать его потом для установления vpn соединения. Как-то так http://pastebin.com/rgmZf5HS (патч; запускать не пробовал :huh: ).
Спасибо сказали:
NIKitosh
Сообщения: 106
ОС: Debian GNU/Linux Testing

Re: cron и dbus

Сообщение NIKitosh »

sgfault писал(а):
23.10.2012 17:42
Просмотрел ваш скрипт. Я бы исправил вот это

Код: Выделить всё

        $dbus --system --print-reply --dest="org.freedesktop.NetworkManager" /org/freedesktop/NetworkManager org.freedesktop.NetworkManager.ActivateConnection objpath:"$vpn_set" objpath:"$dev" objpath:"/"

У вас это работает только потому, что устройство по умолчанию оказалось тем, которое нужно.

Те в спецификации NetworkManager 09 dbus API/org.freedesktop.NetworkManager написано, что для vpn значение specific_object (3-ий аргумент метода .ActivateConnection) должно быть путем к активному соединению, через которое устанавливается vpn, а вы его указали "/" (те НМ выбирает сам то, что по умолчанию).

Те после того, как вы установили нужное ethernet соединение, я вам советую сохранить путь к соответствующему ActiveConnecton объекту, который возвращает ActivateConnection, и использовать его потом для установления vpn соединения. Как-то так http://pastebin.com/rgmZf5HS (патч; запускать не пробовал :huh: ).


Патч работает. Спасибо!
Спасибо сказали:
NIKitosh
Сообщения: 106
ОС: Debian GNU/Linux Testing

Re: cron и dbus

Сообщение NIKitosh »

KiWi писал(а):
23.10.2012 01:06
Как минимум -- убрать перенаправления в /dev/null и прочитать, какие команды не удаётся выполнить.

Такое сообщение приходит на почту после выполнения кроном скрипта:

Код: Выделить всё

Error org.freedesktop.NetworkManager.Device.PermissionDenied: Not authorized to Disconnect connections
Error org.freedesktop.NetworkManager.PermissionDenied: Not authorized to control networking.
Error org.freedesktop.DBus.Error.Disconnected: Connection was disconnected before a reply was received
Спасибо сказали: