Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
32 / 7 / 1
Регистрация: 10.09.2010
Сообщений: 850

Установить пакет на 3-4 удаленные машины через ssh

18.02.2016, 20:59. Показов 3950. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать скрипт на bash (который будет запускаться на выбранной виртуальной машине), выполняющий следующее: на все виртуальные машины (узлы сети) необходимо установить удаленно программный пакет RPM (который присутствует только на выбранной машине), имя которого должно передаваться скрипту как параметр в командной строке.

Уточнения
Список узлов (виртуальных машин) задается в файле /etc/hosts. Из него скрипт должен брать IP-адреса. В качестве пакета можно взять любой неустановленный пакет из дистрибутива ОС. В качестве способа удаленного управления и передачи файла рекомендуется использовать сервис ssh. Скрипт в процессе своей работы не должен выдавать какие-либо запросы пользователю.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.02.2016, 20:59
Ответы с готовыми решениями:

Не получается установить пакет ssh.net
Здравствуйте. У меня установлена Visual Studio 2010 (не говорите, типа что установи версию 2019 года и не мучайся. По техническим причинам...

Возможно ли установить систему через ssh?
Всем доброго времени суток. Вообщем есть сервер с кривой ос к нему есть root доступ к ssh меня интересует вопрос как можно установить...

Как установить расширение magickwand для PHP через ssh?
ОС Ubuntu 12.04. Вместе с imagemagick этот magickwand почему то не идёт в комплекте.

13
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
18.02.2016, 22:18
Bash
1
2
3
4
5
6
7
8
#!/bin/bash
pathto=/<path-to-rpm>
pack=name.rpm
while read hostaddr
do
    rsync $pathto/$pack $hostaddr:/tmp
    ssh $hostaddr rpm -i /tmp/$pack
done < <(grep -o '^[0-9]\+\(\.[0-9]\{1,3\}\)\{3\}' /etc/hosts | grep -v '^127')
1
32 / 7 / 1
Регистрация: 10.09.2010
Сообщений: 850
18.02.2016, 22:42  [ТС]
Marinero, а почему именно grep -v '^127' ???

Добавлено через 17 минут
Marinero, и еще можно посмотреть все измененные и созданные файлы настройки в ОС с указанием пути к ним
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
18.02.2016, 22:50
Цитата Сообщение от zmei89 Посмотреть сообщение
127
ip что начинаются с 127 — это своя машина.
Цитата Сообщение от zmei89 Посмотреть сообщение
можно посмотреть все измененные и созданные файлы настройки в ОС
не понял?
0
32 / 7 / 1
Регистрация: 10.09.2010
Сообщений: 850
18.02.2016, 22:55  [ТС]
Marinero, ну в настройках что то меняется?в том же файле /etc/hosts
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
18.02.2016, 22:57
C чего бы?
0
32 / 7 / 1
Регистрация: 10.09.2010
Сообщений: 850
18.02.2016, 22:58  [ТС]
Marinero, берутся же списки узлов для других машин
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
18.02.2016, 23:04
Цитата Сообщение от zmei89 Посмотреть сообщение
берутся
Так они «берутся» == «читаются»
0
32 / 7 / 1
Регистрация: 10.09.2010
Сообщений: 850
19.02.2016, 07:48  [ТС]
Marinero, понял
0
0 / 0 / 0
Регистрация: 13.11.2018
Сообщений: 4
03.12.2018, 07:49
Marinero, Уважаемый, будьте добры, помогите пожалуйста, справиться с тем-же заданием, что тут указано...
выдаёт так:
Code
1
3: hello.sh: Syntax error: newline unexpected
как я понимаю, что ругается на неожиданное окончание 3-й строки...что именно я делаю не так, не пойму(
установлены последние версии убунту(с длит.сроком поддержки) на 2-х виртуалках.
на второй вируалке apache2 ранее не ставился, в etc/hosts айпишники прописал, через ssh соединяются без проблем по имени хоста.
перед этим я загрузил deb-пакет apache2 через download, в ту же, домашнюю папку. через
Bash
1
alien -r
конвертировал в RPM.
на что вышло:
Code
1
2
3
Warning: Skipping conversion of scripts in package apache2: postinst postrm preinst prerm
Warning: Use the --scripts parameter to include the scripts.
apache2-2.4.29-2.x86_64.rpm generated
возможно в этом собака зарыта и мне надо пытаться установить пакет попроще, чем apache2 ?
вообще, как я понимаю, вся загвоздка у меня пока именно с пакетом...

сам скрипт выглядит так:
---------------------------------------
Bash
1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
pathto=/<path-to-rpm>
pack=apache2_2.4.29-1ubuntu4.5_amd64.rpm
while read hostaddr
do
    rsync $pathto/$pack $hostaddr:/tmp
    ssh $hostaddr rpm -i /tmp/$pack
done < <(grep -o '^[0-9]\(\.[0-9]\)\{3\}' /etc/hosts | grep -v '^127')
cd ~/.ssh
ssh-keygen -t rsa -b 4096 -C "mosl1k@clone1" -f id_whatever
cat id_whatever.pub | pbcopy
-----------------------------------------------------------------
если можно, то пожалуйста, помогите подробнее разобраться в данном вопросе. Буду Вам премного благодарен.
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
03.12.2018, 10:23
Подозреваю что файл писали/редактировали под Win - отсюда "неправильные" окончания строк. Откройте в линуксе и пересохраните.

P.S. Поправьте регулярное выражение в grep
0
0 / 0 / 0
Регистрация: 13.11.2018
Сообщений: 4
03.12.2018, 11:09
извиняюсь за свою невнимательность, Тёзка.
в 3й строке, я банально оставил <path-to-rpm>, вместо реального пути к пакету.
a-ля: "press any key" для "куриц с бухгалтерии", искавших клавишу "any".=)

я же правильно понимаю, что в строке
Bash
1
done < <(grep -o '^[0-9]\(\.[0-9]\)\{3\}' /etc/hosts | grep -v '^127')
надо править вместо "127" - первые 3 цифры айпишников из /etc/hosts ?
поставил свои и...
получилось запустить, ключ создался, но выдал 2 раза запрос на ключевую фразу:

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

можно ли избежать подобного запроса в данном скрипте?

теперь ещё ругается на последнюю на строку,
а точнее:
"pbcopy: команда не найдена" =(
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
03.12.2018, 22:40
Цитата Сообщение от MosL1k Посмотреть сообщение
я же правильно понимаю
Неправильно. Поднимите до первых сообщений и найдите исправленный скрипт
Цитата Сообщение от MosL1k Посмотреть сообщение
ещё ругается на последнюю на строку
Так Вы ж её сами придумали?
0
0 / 0 / 0
Регистрация: 13.11.2018
Сообщений: 4
04.12.2018, 13:59
Marinero, спасибо большое.
про последнюю строку - не думав добавил, опираясь на советы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.12.2018, 13:59
Помогаю со студенческими работами здесь

Найти(установить) пакет через Терминал не помня точного названия программы
Всем привет, есть ли в терминале такая фишка,вот допустим хочу установить программу а название точно не помню,так вот типа подсказки...

Ошибка ssh при билде виртуальной машины в packer
Я использую хост с ESXi 6.0 для тестирования packer. После установки виртуальной машины packer должен подключиться к ней по ssh, но вместо...

Установить пакет .jar
Уважаемые форумчане! на этом сайте http://basex.org/ скачал библиотеку, могу запускать в командной строке и не более... мне очень...

Как установить пакет .deb?
timur@timur-R50-R51:~$ sudo dpkg -i /home/Desktop/Debian/cmotech-qtmodem_1.8_all.deb dpkg: не удалось обработать параметр...

Как установить пакет iterate?
Всю жизнь велосиперничал, но тут захотелось iterate, cffi, tk/tcl - ничего из этого я сделать, пока, не в состоянии. Начал с iterate....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru