На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила трёх "С"
Пожалуйста,
1. Соблюдайте правила Форума.
2. Слушайте советы Модераторов.
(например, http://forum.sources.ru/index.php?act=ST&f=7&t=80382 )
3. Сверяйтесь с учебником по Великому и Могучему
  
> Запуск приложения через SSH на другом сервере , linux, ssh Через запуск SSH не видит локального окружения.
    Добрый день, коллеги.
    Написал приложение на gcc, которое результат через sqlplus пишет в базу.
    На локальном сервере запуск из консоли ./eraser ITCTEST nw L выполняет все правильно.
    Удаленный же запуск выдает ошибку.
    $ ssh -q msk-itc-app51 /data/scripts/eraser ITCTEST nw L
    sh: line 3: sqlplus: command not found
    Впечатление, что удаленный запуск ищет sqlplus в другом окружении.
    Как мне запустить программу на другом сервере, чтобы она работала локально?
      Никак. ssh предполагает, что вы даете команду удаленному серверу выполнить что-то.
      Установите sqlplus на удаленном сервере.
        В этом и проблема. На удаленном сервере все установлено, и если запускать на нем локально в консоли, то все работает корректно.
        При запуске через ssh sqlplus на удаленном не находится, и отладочный вывод в std::out возвращается на главный сервер.
        Такое впечатление, что на удаленном сервере запускается только программа, а все окружение берется на главном сервере. Как мне отвязаться от него, и реализовать удаленный, автономный запуск? По принципу: запустил, отключился и забыл.
          sqlplus есть консольный вариант, есть GUI-шный. У вас какой??
          если GUI-шный, то здесь нужно сделать проброс X-window протокола (параметр XWindowForwarding в sshd_config) + на стороне клиента развернуть X-server. Тогда вы будете запускать sqlplus на сервере, он будет там физически исполняться, его графика будет пробрасывать Вам на клиентский компьютер и Ваш локально установленный X-сервер будет ее отрисовывать.
          если консольный, то все должно работать из коробки (stdin/out/err ssh пробрасывается автоматически).
          Сообщение отредактировано: grgdvo -
            На обоих серверах sqlplus консольный. С консоли сервера А запускаю приложение на сервере Б командой:
            ssh -q msk-itc-app51 /data/scripts/eraser ITCTEST nw L

            И все отладочные выводы и сообщения об ошбке программы, запущенной удаленно на сервере Б, возвращает назад на сервер А.
            str_sql=select base, branch, nvl(options,'N') from Tarif_Log where trl_id=4807
            sh: line 3: sqlplus: command not found
            tmp_str=
            sBase=
            sBranch=
            sOption=

            Почему возврат в консоль А? Мне нужно запустить на Б автономно и забыть о ней.
              А если так
              ExpandedWrap disabled
                ssh user@server_ip "/data/scripts/eraser ITCTEST nw L"
              Сообщение отредактировано: Gonarh -
                К сожалению не помогло, все возвращается на главный сервер. Уже попробовал через промежуточный .sh файл, все цепочки отладок возвращаются в консоль на главный сервер.
                  SSH собирает вывод удаленного приложения согласно документации. Подскажите другой способ удаленного запуска программы.
                    Цитата puncher19 @
                    К сожалению не помогло, все возвращается на главный сервер.

                    Что то ты явно не то делаешь.
                      А! ну так у вас же не интерактивный запуск.
                      В таком режиме ssh не инициализирует профиль.
                      А значит PATH у вас наверно только базовый системный.

                      Подправьте скрипт, наверно.
                      Сделайте echo $PATH
                      Попробуйте полный путь до sqlplus прописать.
                      В надо что-то сделать с PATH.
                        Цитата grgdvo @
                        А! ну так у вас же не интерактивный запуск.
                        В таком режиме ssh не инициализирует профиль.

                        Инициируются энвайронменты учётки от которой ссшишься
                          Это если PermitUserEnvironment=yes в sshd_config.
                          А он по дефолту off, и кто ставит on, должен сначала хорошо подумать.
                            Всем спасибо за участие. Буду думать над другим вариантом решения.
                            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                            0 пользователей:


                            Рейтинг@Mail.ru
                            [ Script execution time: 0,0295 ]   [ 16 queries used ]   [ Generated: 28.03.24, 19:47 GMT ]