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


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

Автор Тема: Запуск исполняемого файла на удалённой машине  (Прочитано 3087 раз)

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

Оффлайн ploop

  • Автор темы
  • Активист
  • *
  • Сообщений: 762
    • Просмотр профиля
Такой вопрос:
Есть несколько пользовательских машин в сети, доступ к ним по ssh. Необходимо выполнить на этих машинах скрипт или бинарник под административными правами по команде со своей машины (в дальнейшем с сервера по определённому событию, но суть одна). Как можно реализовать?

(Нажмите, чтобы показать/скрыть)

Оффлайн gorven

  • Активист
  • *
  • Сообщений: 463
  • Что нас ждет - Linux хранит молчанье
    • Просмотр профиля
Я понимаю щас вы наверняка поржете с моего ответа, но почему бы не открыть на пользовательской машине текстовый файл с указаниями действий?
Эта ваша Ubuntu прикольненькая такая винда (с)

Оффлайн ploop

  • Автор темы
  • Активист
  • *
  • Сообщений: 762
    • Просмотр профиля
Почему поржу? Нет, довольно неплохая идея. Отправить сообщение всем пользователям (есть корпоративный джаббер), чтоб обновили ПО. А на ярлык повесить скрипт. Уж думаю, на ярлык тыкнуть смогут. Так и сделаю, если ничего умнее не придумаю.

Точнее, не то, что бы умнее, просто самому интересно, как реализовать автоматом. А потом подниму вопрос о создании локального репозитория - пусть система сама обновляет.

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Скрипт туда залить предварительно по sftp, потом
ssh root@users.destop.computer  /путь/имя_скрипта
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн gorven

  • Активист
  • *
  • Сообщений: 463
  • Что нас ждет - Linux хранит молчанье
    • Просмотр профиля
Re: Запуск исполняемого файла на удалённой м&
« Ответ #4 : 02 Апрель 2010, 11:33:20 »
Почему поржу? Нет, довольно неплохая идея. Отправить сообщение всем пользователям (есть корпоративный джаббер), чтоб обновили ПО. А на ярлык повесить скрипт. Уж думаю, на ярлык тыкнуть смогут. Так и сделаю, если ничего умнее не придумаю.

Точнее, не то, что бы умнее, просто самому интересно, как реализовать автоматом. А потом подниму вопрос о создании локального репозитория - пусть система сама обновляет.
А, вам совсем автоматом надо отправлять сообщения и запускать обновление, без вашего участия? .....
А я говорил о такой схеме - зацепились по ssh и дали команду - на машине пользователя открыться файлу "N" (ессно закинутому туда заранее) в котором написано что то в роде "Все закрыл, руки за голову и не шевелиться"....и без всяких жабберов. А потом команду на обновление ПО. Имхо у думаю получится решить одной -двумя строчками в консоли

Эт конечно если ничего хитрее не найдете
« Последнее редактирование: 02 Апрель 2010, 11:47:55 от gorven »
Эта ваша Ubuntu прикольненькая такая винда (с)

Оффлайн ploop

  • Автор темы
  • Активист
  • *
  • Сообщений: 762
    • Просмотр профиля
Скрипт туда залить предварительно по sftp, потом
ssh root@users.destop.computer  /путь/имя_скрипта
Скрипты само собой залью.
Спасибо, это кажется то, что нужно. А как ему пароль передать? man по этому поводу что-то заумное говорит, ключа, чтоб передать ему пароль напрямую не нашел...

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Пароль к ssh или к тем программам, которые запустит скрипт?

Чтобы по ssh ходить без пароля, надо сгенерировать по паре ключей для каждого компьютера.
http://wiki.archlinux.org/index.php/Using_SSH_Keys_(Русский)
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн ploop

  • Автор темы
  • Активист
  • *
  • Сообщений: 762
    • Просмотр профиля
Да, к ssh. Ну, чтоб он залогинелся под рутом на удалённой машине, тогда скрипт, соответственно, под ним и запустится. А скрипт я говорю - простейший будет. Показ окошка (на Lazaruse сделаю), пауза, запуск dpkg.

Пользователь решил продолжить мысль 02 Апрель 2010, 12:40:24:
Благодарю за ссылку!

ValeryK

  • Гость
. А потом подниму вопрос о создании локального репозитория - пусть система сама обновляет.
у меня стоит прокси кеш squid , там добавил правил кеширования
refresh_pattern -i \.deb$ 2880 100% 8640 override-lastmod
так как дебы обновляются через сквид, то  достаточно одной (любой) машине обновится как остальные получат обновы из кеша  :)


Оффлайн MA3X

  • Активист
  • *
  • Сообщений: 649
    • Просмотр профиля
Для отображения юзеропугалки - покурить man zenity

для примера
export DISPLAY=:0
 (для того, чтобы показать это юзеру в гуе)
zenity --text "Exit your stupid prog\!" --title "Uwaga\!" --warning &
 (покажет диалоговое окно  )
sleep 5
 (подождет 5 сек)

killall zenity
 (убрать окно, если оно есть)
killall stupid_prog
 (убить прогу, если она есть)

dpkg -i new_stipid_prog.deb
(установить обновление)

Можно извратиться и повесить зацикленный скрипт демоном от рута с примерными сценарием:
 - проверить, нет ли в каталоге для обновлений файлов .deb
 - если есть, то
     - напугать юзера
     - закрыть пугалку и программу
     - установить обновление программы
     - удалить *.deb из каталога
     - показать юзеру окно "можно снова запустить тупую прогу".
 - иначе спать 5 минут и все сначала.
и тогда будет достаточно просто положить в каталог по sftp файл для обновления. все остальное произойдет само в течение 5 минут.





Microsoft isn't the answer.
Microsoft is the question, and the answer is NO.

Оффлайн ploop

  • Автор темы
  • Активист
  • *
  • Сообщений: 762
    • Просмотр профиля
Цитировать
и тогда будет достаточно просто положить в каталог по sftp файл для обновления. все остальное произойдет само в течение 5 минут.
О, сколько решений то :) Благодарствую!

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
killall stupid_prog
 (убить прогу, если она есть)

А прогу-то зачем прибивать? По-моему, это негуманно - убивать проги, достаточно сообщить, что софт обновлен, и надо его перезапустить во избежание глюков.

Файл с программой перезапишется без проблем, когда юзер ее запустит снова, будет уже новая версия.
На линухе нельзя заблокировать файл от суперъюзера, там блокировка кооперативная, надо явно проверить, нет ли замка на файле функцией flock(), и, если нет - получить его.
Если замок не проверять, то, если есть права, система его и так отдаст, независимо от того, ставил на его кто-либо замок или нет. :)
Т.е. идеология  - "-- кто тут, к примеру, в цари крайний?! Никого?! Так значит, я первый!"

покурить man zenity
... или man kdialog, кому что роднее.
« Последнее редактирование: 02 Апрель 2010, 15:17:17 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн ploop

  • Автор темы
  • Активист
  • *
  • Сообщений: 762
    • Просмотр профиля
zenity нормально работает. То, что надо. Я уж на лазарусе формочку хотел набросать.

Цитировать
А прогу-то зачем прибивать? По-моему, это негуманно - убивать проги, достаточно сообщить, что софт обновлен, и надо его перезапустить во избежание глюков.
Дело в том, что обновления могут быть не только в клиентской проге, но и в структуре БД. Или вообще - изменение настроек сервера postgresql, когда точно надо всех отцепить, а лучше - выгнать, во избежание потери данных и последующего ворчания юзеров.

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Дело в том, что обновления могут быть не только в клиентской проге, но и в структуре БД. Или вообще - изменение настроек сервера postgresql, когда точно надо всех отцепить, а лучше - выгнать, во избежание потери данных и последующего ворчания юзеров.

А причем тут клиенты? У них у каждого свой сервер на локальной машине?
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн ploop

  • Автор темы
  • Активист
  • *
  • Сообщений: 762
    • Просмотр профиля
Цитировать
А причем тут клиенты? У них у каждого свой сервер на локальной машине?
Нет конечно.
Если серьёзно - в идеале всё должно быть нормально. pgsql можно не перезапуск ать, структуру БД можно заранее разработать, с расчетом на будущее, Юзеры тоже никуда, куда не надо, залезть не могут... Помечтаем...  :)

 

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