Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Установка и настройка Unix/Linux/FreeBSD


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

vladisslav
Статус: 5-й класс
Рейтинг: 1046
∙ повысить рейтинг »
Волков Алексей aka Lupo
Статус: 5-й класс
Рейтинг: 367
∙ повысить рейтинг »
Руслан Тофикович
Статус: 5-й класс
Рейтинг: 327
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Установка и настройка ОС / Unix/Linux/FreeBSD

Номер выпуска:1292
Дата выхода:12.01.2010, 14:30
Администратор рассылки:Калашников О.А., Руководитель
Подписчиков / экспертов:812 / 186
Вопросов / ответов:1 / 2
IRC-канал по теме:#nix

Вопрос № 175889: Доброго времени суток, уважаемый *nix-оиды! Есть необходимость, при определенных условиях, посылать (копировать) файл на удаленный хост. Действие происходит на FreeBSD 7.0-RELEASE-p11. Сначала...



Вопрос № 175889:

Доброго времени суток, уважаемый *nix-оиды! Есть необходимость, при определенных условиях, посылать (копировать) файл на удаленный хост. Действие происходит на FreeBSD 7.0-RELEASE-p11. Сначала создал файл со строками вида:

Код:

#!/bin/sh
ping -c 1 192.168.0.19 > /dev/null 2>&1 || rcp \usr\local\link\reset_int user@192.168.0.254:running-config


Суть второй строки в том, что при недоступности хоста 192.168.0.19, отправлять на свитч (192.168.0.254) файл, содержащий команды отключения и включения интерфейса, к которому подключен хост 192.168.0.19. У машины, с которой это все выполняется IP 192.168.0.25. На свитче все настройки для rcp сделаны
Ситуация в том, что при проверке данной команды из терминала, под root'ом, она работает как нужно. То есть, либо просто в shell'е выполнить вторую строку, либо запустить файл-сценария. Если же данный скрипт, или команду помещаешь в cron через: crontab -u root -e , то, как я понял shell не дожидается кода возврата команды ping, считает его false и переходит к выполнению операции, что идет за символами "||". Причем не имеет никакого значения доступен пингумый хост или нет - результат один и тот же, а именно каждую минуту, по расписанию, "дергается" интерфейс на свитче. Вместо символов "||" использовал конструкции if ...then...fi - все тоже самое.
И вот, собственно вопрос: по какой причине cron не делает то, что я от него хочу? А так же: как его можно заставить "правильно" отрабатывать нужные мне действия по расписанию? Как, можно понять, от ping'а и от rcp я отказаться не могу.
PS: есть и книга в электронном виде по shell'у и по самой FreeBSD, но как обычно читать их некогда и проблему надо решать "вчера". Очень надеюсь на ваши предложения или советы

Отправлен: 07.01.2010, 17:07
Вопрос задал: Arshvin, Студент
Всего ответов: 2
Страница вопроса »


Отвечает Igor Yakimchuk, Профессионал :
Здравствуйте, Arshvin!
в cron может быть не описан PATH для ваших команд, поэтому попробуйте указать полный путь к командам.

Ответ отправил: Igor Yakimchuk, Профессионал
Ответ отправлен: 07.01.2010, 14:29

Оценка ответа: 5
Комментарий к оценке:
см. форум

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 258441 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Rashid N. Achilov, Практикант :
    Здравствуйте, Arshvin.

    Насколько я понял, нужно файл reset_ini посылать в том случае, если узел 192.168.0.19 не отвечает. Я бы в таком случае не стал помещать в crontab непосредственно команды, а создал файл скрипта, например testnode, и именно запуск его вставил в crontab. А уже в файле скрипта прописал все необходимое. Кстати, по умолчанию в PATH не входит каталог /usr/sbin, так что скрипт я переписал бы так, как в приложении - это конечно ничем не лучше, но с моей точки зрения читабельнее.

    Кстати, почему слэши направлены так, как в Windows? Во FreeBSD, да и вообще в UNIX слэши пишутся диагонально противоположно. См. приложение.

    Приложение:

    -----
    Si vis pacem, para bellum

    Ответ отправил: Rashid N. Achilov, Практикант
    Ответ отправлен: 07.01.2010, 15:32

    Оценка ответа: 5
    Комментарий к оценке:
    см. форум

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 258443 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.13 от 28.12.2009

    В избранное