Псш 3
Сайт Печорской средней школы № 3
Ярославцева Нина Петровна - директор школы, учитель русского языка и литературы
Лаксова Галина Петровна - учитель истории и обществознания, зам. директора по УВР
Фёдорова Эльвира Анатольевна - зам. директора по ВР, учитель начальных классов
Коношина Ольга Вячеславовна - социальный педагог
Абденко Наталья Геннадьевна - учитель физической культуры
Агапова Лариса Анатольевна - учитель истории и обществознания
Андреев Кирилл Владимирович - учитель физики и информатики
Андреева Елена Анатольевна - учитель математики и информатики
Антонова Ирина Николаевна - педагог дополнительного образования
Богатова Наталья Михайловна - учитель английского языка
Вимба Олег Петрович - учитель географии
Вальчишен Виктор Иванович - учитель физической культуры
Володина Наталья Леонидовна - учитель физики
Вязовченко Наталия Константиновна - учитель математики и информатики
Железнов Олег Михайлович - учитель истории, обществознания и ОБЖ
Илларионова Екатерина Николаевна - учитель русского языка и литературы
Ильиных Игорь Борисович - учитель физической культуры
Казакова Яна Владимировна - учитель истории
Клемнёва Светлана Алексеевна - учитель русского языка и литературы
Коновалова Елена Николаевна - учитель русского языка и литературы
Кураков Евгений Алексеевич - учитель технологии
Маркелова Ирина Сергеевна - учитель биологии, школьный психолог
Никитина Ирина Васильевна - учитель английского языка
Орлова Дарья Валерьевна - учитель математики и физики
Петренко Ольга Леонидовна - учитель биологии и химии
Пономарёва Римма Михайловна - учитель английского языка
Пономаренко Евгения Валерьевна -учитель русского языка и литературы
Проворникова Марина Леонидовна - учитель ИЗО и технологии
Процак Галина Алексеевна - учитель немецкого и английского языков
Прядильщикова Юлия Вячеславовна - дефектолог-логопед
Смирнова Марина Евгеньевна - учитель-дефектолог
Столярова Антонина Петровна - учитель химии и технологии
Хотишева Ольга Васильевна - учитель родного языка и родной литературы
Хребтова Марина Геннадьевна - учитель математики
Чумбаева Екатерина Николаевна - учитель математики и физики
Сайт Печорской средней школы № 3
Выпуск 1992 года, классный руководитель Лешкина А. Ф. | Выпуск 1993 года, классный руководитель Смирнова С.Г. | Выпуск 1994 года, классный руководитель Сарапова Е.А. |
Выпуск 1995 года, классный руководитель Шупик И.Г. | Выпуск 1996 года, классный руководитель Гоголева О.А. |
Выпуск 1996 года, классный руководитель Башкирова Т.И. |
Выпуск 1997 года, классный руководитель Ильина В.Л. | Выпуск 1998 года, классный руководитель Рак В. Н. | Выпуск 1998 года, классный руководитель Ходов В.А. |
Выпуск 1999 года, классный руководитель Ефремов В.В. | Выпуск 1999 года, классный руководитель Ильиных И.Б. | |
Выпуск 2000 года, классный руководитель Лешкина А.Ф. | Выпуск 2000 года, классный руководитель Андреев В.Ф. | Выпуск 2000 года, классный руководитель Ефремов В.В. |
Выпуск 2001 года, классный руководитель Андреев В. Ф. | Выпуск 2001 года, классный руководитель Андреева Е.А. |
Выпуск 2001 года, классный руководитель Рак В.Н. |
Выпуск 2002 года, классный руководитель Балакирева Н.Н. | Выпуск 2002 года, классный руководитель Вимба О.П. | Выпуск 2002 года, классный руководитель Ефремов В.В. |
Выпуск 2003 года, классный руководитель Вязовченко Н.К. | Выпуск 2003 года, классный руководитель Андрейченко Г. Г. | Выпуск 2003 года, классный руководитель Ильиных И.Б. |
Выпуск 2004 года, классный руководитель Спиридонова М.А. | Выпуск 2004 года, классный руководитель Лаксова Г.П. | Выпуск 2004 года, классный руководитель Железнов О.М. |
Выпуск 2005 года, кл. руководитель Столярова А.П. | Выпуск 2005 года, кл. руководитель Андрейченко Г.Г.
|
Выпуск 2005 года, классный руководитель Гурьева Н. С. |
Выпуск 2006 года, классный руководитель Башкирова Т.И. | Выпуск 2006 года, классный руководитель Агапова Л.А. | Выпуск 2007 года, классный руководитель Рак В.Н. |
Выпуск 2007 года, классный руководитель Спиридонова М.А. | Выпуск 2007 года, классный руководитель Русанова В.Н. | Выпуск 2008 года, классный руководитель Вимба О.П. |
Выпуск 2008 года, классный руководитель Андрейченко Г. Г. | Выпуск 2009 года, классный руководитель Рак В.Н. | Выпуск 2009 года, классный руководитель Агапова Л.А. |
Выпуск 2010 года, классный руководитель Вязовченко Н.К. | Выпуск 2011 года, классный руководитель Столярова А.П. | Выпуск 2012 года, классный руководитель Понкратова Н.Л. |
Выпуск 2013 года, классный руководитель Башкирова Т. И. | Выпуск 2014 года, классный руководитель Андреева Е.А. | Выпуск 2014 года, классный руководитель Вязовченко Н.К. |
Выпуск 2015 года, классный руководитель Андрейченко Г.Г. | Выпуск 2016 года, классный руководитель Гурьева Н.С. | Выпуск 2016 года, классный руководитель Агапова Л.А. |
Выпуск 2017 года, классный руководитель Симина Н.И. | Выпуск 2018 года, классный руководитель Русанова В.Н. | ПРОДОЛЖЕНИЕ СЛЕДУЕТ |
pssh(1): параллельная программа ssh — справочная страница Linux
Имя
pssh — параллельная программа ssh
Синопсис
PSSH [ -VAIIP ] [ -H HOSTS_FILE ] [ -H [ пользователь @] HOST [: Port ]] пользователь ] [ -p пар ] [ -o outdir ] [ -e errdirdir ] [ -t тайм-аут ] [ -O опции ] [ -x аргументы ] [ -X аргументы ] команда .
..
PSSH -I [ -VAIIP ] [ -H HOSTS_FILE ] [ -H [ Пользователь @] Хост [: порт ]] [ -L [: Порт ]] [ -L ] [ -p пар ] [ -o outdir ] [ -e errdir ] [ -t таймаут ] [ -O опции ] [ -x аргументы ] [ -X аргумент ] [ команда ... ]
Описание
pssh — программа для параллельного выполнения ssh на нескольких хостах. Он предоставляет такие функции, как отправка входных данных всем процессам, передача пароль к ssh, сохранение вывода в файлы и тайм-аут.
Переменные среды PSSH_NODENUM и PSSH_HOST отправляются на удаленный хост. Переменной PSSH_NODENUM присваивается уникальный номер для каждого ssh. соединение, начиная с 0 и считая вверх. Переменной PSSH_HOST присваивается имя хоста, указанное в списке хостов. Обратите внимание, что sshd падает переменные среды по умолчанию, поэтому sshd_config на удаленном хосте должен включать строку:
- AcceptEnv PSSH_NODENUM PSSH_HOST
Опции
-h host_file
- --hosts host_file
- Чтение хостов из заданного host_file .
Строки в файле хоста имеют вид [ user @] host [: port ] и могут включать пустые строки и комментарии (строки, начинающиеся с "#"). Если указано несколько файлов хоста (параметр -h используется более одного раза), то pssh ведет себя так, как если бы эти файлы были объединены вместе. Если хост указан несколько раз, то pssh будет подключаться заданное количество раз. - -Н
[
пользователь @] хост [: порт ]
--хост
[ пользователь @] хост [: порт ]
-Н
"[ пользователь @] хост [: порт ] [[ пользователь @] хост [: порт ] ... ]"
--хост
"[ пользователь @] хост [: порт ] [ [ пользователь @] хост [: порт ] ... ]"
- Добавить указанные строки хоста в список хостов. Эта опция может быть указана несколько раз и может использоваться вместе с опцией -h .
- -l пользователь
- --пользователь пользователь
- Используйте данное имя пользователя по умолчанию для любых записей хоста, в которых конкретно не указан пользователь.
- -p параллелизм
- --par параллелизм
- Используйте данное число как максимальное количество одновременных подключений.
- -t тайм-аут
- --тайм-аут тайм-аут
- Время ожидания соединения истекло через заданное количество секунд. При значении 0 pssh не будет прерывать соединения по тайм-ауту.
- -о за пределами
- --outdir outdir
- Сохранить стандартный вывод в файлы в указанном каталоге. Имена файлов имеют вид [ пользователь @] хост [: порт ][. num ] где пользователь и порт включаются только для хостов, которые явно указывают их. Число представляет собой счетчик, который увеличивается каждый раз для хостов, указанных более однажды.
- -e errdir
- --errdir errdir
- Сохранить стандартную ошибку в файлы в указанном каталоге. Имена файлов имеют ту же форму, что и у -o опция.
- -x аргументы
- --дополнительные аргументы аргументы
- Передает дополнительные аргументы командной строки SSH (см. справочную страницу ssh (1) для получения дополнительной информации об аргументах SSH). Эта опция может быть указана несколько раз. Аргументы обрабатываются для разделения по пробелам, защиты текста в кавычках и экранирования с помощью обратной косой черты. Чтобы передать аргументы без такой обработки, вместо этого используйте параметр -X .
- -X аргумент
- --дополнительный аргумент аргумент
- Передает один аргумент командной строки SSH (см. справочную страницу ssh (1) для получения дополнительной информации об аргументах SSH).
В отличие от опции -x , нет обработка выполняется над аргументом, включая разбиение на слова. Чтобы передать несколько аргументов командной строки, используйте параметр один раз для каждого аргумента. - -О опции
- --опции опции
- Параметры SSH в формате, используемом в файле конфигурации SSH (см. справочную страницу ssh_config (5) для получения дополнительной информации). Этот параметр может быть указан многократно.
- -А
- --askpass
- Запросите пароль и передайте его ssh. Пароль может использоваться либо для разблокировки ключа, либо для аутентификации по паролю. Пароль передается в достаточно безопасным способом (например, он не будет отображаться в списках аргументов). Однако имейте в виду, что пользователь root в вашей системе потенциально может перехватить пароль.
- -я
- -- встроенный
- Отображать стандартный вывод и стандартную ошибку по мере завершения каждого узла.
- --inline-stdout
- Отображение стандартного вывода (но не стандартного сообщения об ошибке) по мере завершения каждого хоста.
- -в
- --подробный
- Включить сообщения об ошибках от ssh с опциями -i и \.
- -я
- --отправить-ввод
- Чтение ввода и отправка каждому процессу ssh. Поскольку ssh позволяет отправлять командный сценарий на стандартный ввод, параметр -I можно использовать вместо параметра аргумент команды.
- -П
- --печать
- Отображение выходных данных по мере их поступления. Этот параметр имеет ограниченную полезность, поскольку выходные данные с разных хостов чередуются.
Примеры
Подключитесь к host1 и host2 и напечатайте «hello, world» с каждого:
- pssh -i -H "хост1 хост2" эхо "привет, мир"
- Вывести «hello, world» с каждого хоста, указанного в файле hosts.
txt: - pssh -i -h hosts.txt эхо "привет, мир"
- Запустите команду от имени root с запросом пароля root:
- pssh -i -h hosts.txt -A -l корневое эхо привет
- Запустить длинную команду без тайм-аута:
- pssh -i -h hosts.txt -t 0 сон 10000
- Если файл hosts.txt содержит большое количество записей, скажем, 100, то для параметра параллелизма также можно установить значение 100, чтобы обеспечить выполнение команд одновременно:
- pssh -i -h hosts.txt -p 100 -t 0 сон 10000
- Выполнить команду без проверки или сохранения ключей хоста:
- pssh -i -H host1 -H host2 -x "-O StrictHostKeyChecking=no -O UserKnownHostsFile=/dev/null -O GlobalKnownHostsFile=/dev/null" эхо привет
- Вывести номер узла для каждого соединения (будет напечатано 0, 1 и 2):
- pssh -i -H host1 -H host1 -H host2 'эхо $PSSH_NODENUM'
Советы
Если у вас есть набор хостов, к которым вы часто подключаетесь с определенными параметрами, может быть полезно создать псевдоним, например:
- псевдоним pssh_servers="pssh -h /path/to/server_list.
txt -l root -A" - Файл ssh_config может включать произвольное количество разделов Host. Каждая запись хоста указывает параметры ssh, которые применяются только к данному хосту. Хозяин определения могут даже вести себя как псевдонимы, если включена опция HostName. Эта функция ssh в сочетании с хост-файлами pssh предоставляет огромные количество гибкости.
Состояние выхода
Коды состояния выхода из pssh следующие:
- 0
Успех
1
Прочая ошибка
2
Ошибка синтаксиса или использования
3
По крайней мере один процесс был остановлен по сигналу или истекло время ожидания.
4
Все процессы завершены, но по крайней мере один процесс ssh сообщил об ошибке (статус выхода 255).
5
Ошибок ssh не было, но как минимум одна удаленная команда имела ненулевой статус выхода.
Авторы
Авторы: Брент Н.
Чун и Эндрю Макнабб .
http://code.google.com/p/parallel-ssh/
См. также
ssh (1), ssh_config (5), pscp (1), prsync (1), pslurp (1), 9 1 pnuke
10 практических примеров использования параллельного SSH в Linux |
Содержание
ПСШ — это сокращение от Parallel Secure SHell или Parallel SSH . pssh
— программа для параллельного выполнения ssh на нескольких хостах. Он предоставляет такие функции, как отправка входных данных всем процессам, передача пароля в ssh, сохранение выходных данных в файлы и тайм-аут.
Переменные среды PSSH_NODENUM
и PSSH_HOST
отправляются на удаленный хост. Переменной PSSH_NODENUM
присваивается уникальный номер для каждого соединения ssh, начиная с 0 и считая вверх. Переменной PSSH_HOST
присваивается имя хоста, указанное в списке хостов.
Реклама
ПРИМЕЧАНИЕ:
Рекомендуется включить пару ключей ssh между узлами Linux, чтобы pssh работал более эффективно. В противном случае вы в конечном итоге будете писать пароль для каждого потока, создаваемого инструментом.
PSSH не является частью репозитория RHEL или CentOS, поэтому вам нужно будет вручную загрузить и установить rpm из репозитория EPEL. Ради этой демонстрации я создал конфигурацию без пароля между несколькими узлами в моей установке.
ТАКЖЕ ЧИТАЙТЕ: выполните аутентификацию с открытым ключом SSH с помощью PSSH (без пароля) в Linux
1. Передайте список хостов с помощью файла ПСШ.
# кошка /tmp/host_file.txt корень@10.43.138.2:22 корень@10.43.138.3:22 [email protected]:22
Теперь мы будем вызывать PSSH для всех хостов из этого файла, чтобы выполнить команду даты.
# /bin/pssh -h /tmp/host_file.txt дата [1] 19:29:01 [УСПЕХ] root@10.
43.138.3:22 [2] 19:29:01 [УСПЕХ] [email protected]:22 [3] 19:29:01 [УСПЕХ] [email protected]:22
Итак, как вы видите, инструмент успешно смог подключить все предоставленные хосты и СТАТУС ВЫХОДА
для всех хостов был УСПЕХ
.
2. Передать список хостов вручную
Если у вас всего несколько хостов, на которых вы хотите выполнять определенные команды, вы можете вручную передать информацию
# /bin/pssh -H "10.43.138.2 10.43 .138.3 10.43.138.9"-l корневая дата [1] 19:39:00 [УСПЕХ] 10.43.138.3 [2] 19:39:00 [УСПЕХ] 10.43.138.2 [3] 19:39:00 [УСПЕХ] 10.43.138.9
Реклама
3. Вывести встроенный вывод на хост
Вы, возможно, заметили, что для обоих приведенных выше примеров СОСТОЯНИЕ ВЫХОДА
было 5CCESS
9. но, тем не менее, инструмент никогда не печатал вывод на экран. Используйте '
-i
', чтобы отобразить стандартный вывод и стандартную ошибку по мере завершения каждого хоста.
В приведенном ниже примере, как вы видите, мы получаем вывод для каждого хоста после завершения выполнения.
# /bin/pssh -i -H "10.43.138.2 10.43.138.3 10.43.138.9" -l корневая дата [1] 19:39:00 [УСПЕХ] 10.43.138.3 Вс, 16 декабря, 19:39:00 IST 2018 [2] 19:39:00 [УСПЕХ] 10.43.138.2 Вс, 16 декабря, 19:39:00 IST 2018 [3] 19:39:00 [УСПЕХ] 10.43.138.9 Вс, 16 декабря, 19:39:00 IST 2018
ТАКЖЕ ЧИТАЙТЕ: pam_faillock: блокировка учетной записи пользователя после X неудачных попыток входа в Linux
4. Запрашивать пароль
Поскольку мы включили беспарольную связь между нашими хостами, инструмент не запрашивает пароль. Используя « -A
», инструмент запросит пароль и передаст его ssh. Пароль может использоваться либо для разблокировки ключа, либо для аутентификации по паролю. Пароль передается достаточно безопасным способом (например, он не будет отображаться в списках аргументов). Однако имейте в виду, что пользователь root в вашей системе потенциально может перехватить пароль.
# /bin/pssh -A -i -H "10.43.138.2 10.43.138.3 10.43.138.9" -l корневая дата Предупреждение: не вводите свой пароль, если у кого-то еще есть суперпользователь привилегии или доступ к вашей учетной записи. Пароль: [1] 20:14:06 [УСПЕХ] 10.43.138.3 Вс, 16 декабря, 20:14:06 IST 2018 [2] 20:14:06 [УСПЕХ] 10.43.138.2 Вс, 16 декабря, 20:14:06 IST 2018 [3] 20:14:06 [УСПЕХ] 10.43.138.9 Вс, 16 декабря, 20:14:06 IST 2018
5. Сохранение STDOUT
Использование ' -o
' или ' --outdir
' аргумент, вы можете сохранить стандартный вывод в файлы в указанном каталоге. Имена файлов имеют форму [пользователь@]хост[:порт][.номер]
, где пользователь и порт включены только для хостов, которые явно указывают их. Число представляет собой счетчик, который увеличивается каждый раз для хостов, указанных более одного раза.
# /bin/pssh -i -o /tmp/out/ -H "10.43.138.2 10.43.138.3 10.43.138.9" -l корневая дата [1] 19:44:04 [УСПЕХ] 10.
43.138.3 Вс 16 дек 19:44:04 IST 2018 [2] 19:44:04 [УСПЕХ] 10.43.138.2 Вс, 16 декабря 19:44:04 IST 2018 [3] 19:44:04 [УСПЕХ] 10.43.138.9 Воскресенье, 16 декабря, 19:44:04 IST 2018
Затем проверьте /tmp/out
, чтобы получить результат STDOUT
.
# ll /tmp/out/ всего 12 -rw-r----- 1 корень корень 29 дек 16 19:44 10.43.138.3 -rw-r----- 1 корень корень 29 дек 16 19:44 10.43.138.2 -rw-r----- 1 root root 29 16 дек 19:44 10.43.138.9
# cat /tmp/out/10.43.138.3 Вс 16 дек 19:44:04 IST 2018
ЧИТАЙТЕ ТАКЖЕ: РЕШЕНО: SSH завершается с ошибкой с отложенным открытым ключом
к файлам в указанном каталоге. Имена файлов имеют ту же форму, что и с опцией «
-o
».
Реклама
Повторю ту же команду
# /bin/pssh -i -o /tmp/out/ -e /tmp/err/ -H "10.43.138.2 10.43.138.3 10.43.138.9" -l root датировать [1] 19:46:46 [УСПЕХ] 10.43.138.3 Вс, 16 декабря 19:46:46 IST 2018 [2] 19:46:46 [УСПЕХ] 10.
43.138.2 Вс, 16 декабря 19:46:46 IST 2018 [3] 19:46:46 [УСПЕХ] 10.43.138.9 Воскресенье, 16 декабря, 19:46:46 IST 2018
Но поскольку EXIT STATUS
для всех команд был SUCCESS
, содержимое STDERR
равно NULL
.
# ll /tmp/ошибка/ всего 0 -rw-r----- 1 root root 0 16 дек 19:46 10.43.138.2 -rw-r----- 1 root root 0 Dec 16 19:46 10.43.138.3 -rw-r----- 1 root root 0 16 декабря 19:46 10.43.138.9
Итак, для демонстрации позвольте мне попытаться получить отрицательный вывод. Здесь я пытаюсь запустить команду 'datet'
, которой не существует. Это означает, что наш PSSH выдаст ошибку
# /bin/pssh -i -o /tmp/out/ -e /tmp/err/ -H "10.43.138.2 10.43.138.3 10.43.138.9" -l root -x ' -q -o StrictHostKeyChecking=нет -o GSSAPIAuthentication=нет -o PreferredAuthentications=publickey -o PubkeyAuthentication=да дата [1] 19:48:19 [FAILURE] 10.43.138.3 Выход с кодом ошибки 127 Stderr: bash: datet: команда не найдена [2] 19:48:19 [FAILURE] 10.
43.138.2 Выход с кодом ошибки 127 Stderr: bash: datet: команда не найдена [3] 19:48:19 [FAILURE] 10.43.138.9 Выход с кодом ошибки 127 Stderr: bash: datet: команда не найдена
Как и ожидалось, мы получили КОД ВЫХОДА
, отличный от 0
, и теперь, если мы проверим /tmp/err
, мы увидим, что одно и то же захвачено для каждого хоста.
# лс -л /tmp/ошибка/ всего 12 -rw-r----- 1 root root 31 Dec 16 19:48 10.43.138.3 -rw-r----- 1 корень корень 31 дек 16 19:48 10.43.138.2 -rw-r----- 1 root root 31 Dec 16 19:48 10.43.138.9
Пока /tmp/out
пуст, так как не было STDOUT
для этой операции ни на одном из хостов
# ll /tmp/out/ всего 0 -rw-r----- 1 root root 0 16 дек 19:48 10.43.138.2 -rw-r----- 1 root root 0 16 дек 19:48 10.43.138.3 -rw-r----- 1 root root 0 Dec 16 19:48 10.43.138.9
ПРИМЕЧАНИЕ:
Вы также можете комбинировать опции -o и -e, чтобы одновременно получить значение STDOUT
и STDERR
для каждого хоста.
ТАКЖЕ ПРОЧИТАЙТЕ: 15 примеров команды tune2fs в Linux [Шпаргалка]
7. Используйте параметры SSHD с PSSH
Теперь в идеале PSSH принимает только определенный список поддерживаемых параметров. Но это не означает, что вы не можете использовать аргументы SSHD с PSSH.
С помощью ' -x
' вы можете передать дополнительные аргументы командной строки SSH (см.0527 ssh(1) справочная страница для получения дополнительной информации об аргументах SSH). Эта опция может быть указана несколько раз. Аргументы обрабатываются для разделения по пробелам, защиты текста в кавычках и экранирования с помощью обратной косой черты.
Для передачи одного аргумента SSHD
Реклама
# /bin/pssh -i -o /tmp/out/ -e /tmp/err/ -H "10.43.138.2 10.43.138.3 10.43.138.9" -l root -x 'StrictHostKeyChecking=нет' дата [1] 19:46:46 [УСПЕХ] 10.43.138.3 Вс, 16 декабря 19:46:46 IST 2018 [2] 19:46:46 [УСПЕХ] 10.43.138.2 Вс, 16 декабря 19:46:46 IST 2018 [3] 19:46:46 [УСПЕХ] 10.
43.138.9 Вс, 16 декабря, 19:46:46 IST 2018
Для передачи нескольких аргументов SSHD
# /bin/pssh -i -o /tmp/out/ -e /tmp/err/ -H "10.43.138.2 10.43.138.3 10.43.138.9" -l root -x '-q -o StrictHostKeyChecking=no -o GSSAPIAuthentication=no -o PreferredAuthentications=publickey -o PubkeyAuthentication=yes дата [1] 19:53:56 [УСПЕХ] 10.43.138.3 Вс 16 дек 19:53:56 IST 2018 [2] 19:53:56 [УСПЕХ] 10.43.138.2 Вс, 16 декабря, 19:53:56 IST 2018 [3] 19:53:56 [УСПЕХ] 10.43.138.9 Воскресенье, 16 декабря, 19:53:56 IST 2018
8. Получить список хостов со статусом выхода SUCCESS и FAILED
Теперь с PSSH я столкнулся с одной проблемой: когда мы используем этот инструмент в сценариях, мы получаем объединенный EXIT СТАТУС
, но по умолчанию у нас нет статуса выхода для конкретного узла. Поэтому, если вы запускали сценарий оболочки с PSSH, вы можете не знать из 10 хостов, какие из них были успешными, а какие нет.
ТАКЖЕ ПРОЧИТАЙТЕ: 5 практических примеров для составления списка запущенных процессов в Linux
Теперь вы можете использовать -o
и -e
в качестве опции для анализа, но для этого потребуется немного сценариев. Я написал ниже фрагмент кода в сценарии оболочки, который собирает список хостов и печатает SUMMARY
с успешным и неудачным списком хостов.
функция get_pssh_hosts { err_dir=$1 out_dir=$2 tmp_f_hosts=$(mktemp /tmp/tmp_f_hosts.XXX) tmp_s_hosts=$(mktemp /tmp/tmp_s_hosts.XXX) найти $err_dir -type f -not -empty -print | оборот | вырезать -d / -f 1 | версия >> $tmp_f_hosts 2>&1 найти $err_dir -type f -пусто -print | оборот | вырезать -d / -f 1 | версия >> $tmp_s_hosts 2>&1 если [ ! -z $out_dir ];тогда для хоста в `cat $tmp_s_hosts`; сделать [[ ! -f $out_dir/$host ]] && exit_with_error "Невозможно получить статус выхода для $host" # Если файл пустой, то помещаем на неисправные хосты если [ ! -s $out_dir/$host ];тогда если ! egrep -q ^$host$ $tmp_f_hosts; тогда /bin/echo "$host" >> $tmp_f_hosts sed -i "/^$host$/d" $tmp_s_hosts фи еще # Если файл не пустой, то ищем строку ERROR, если она найдена, значит выполнение не удалось если ! grep -q ОШИБКА $out_dir/$host; затем если ! grep -q "^$host$" $tmp_s_hosts;затем /bin/echo "$host" >> $tmp_s_hosts фи # если в логе не найдена строка ERROR, то вводим успешно и избегаем дубликатов еще /bin/echo "$host" >> $tmp_f_hosts sed -i "/^$host$/d" $tmp_s_hosts фи фи сделано фи sed -i '/^$/d' $tmp_s_hosts sed -i '/^$/d' $tmp_f_hosts success_hosts=`cat $tmp_s_hosts | тр 'н' ''` failed_hosts=`cat $tmp_f_hosts | тр 'н' ''` rm -f $tmp_f_hosts rm -f $tmp_s_hosts } функция print_summary { /бин/эхо "" /bin/эхо "#####" /бин/эхо "#" /bin/echo -e "# e[01;37mSUMMARY:e[0m" /бин/эхо "#" /bin/echo -e "# e[01;32mSuccess:e[0m $success_hosts" /bin/echo -e "# e[01;31mFailed:e[0m $failed_hosts" /бин/эхо "#" /bin/эхо "#####" /бин/эхо "" }
ПРИМЕЧАНИЕ:
В моем примере я печатаю сообщение с ОШИБКА
для каждой команды, которая завершается ошибкой с PSSH, поэтому я могу использовать регулярное выражение для получения успешного и неудачного списка хостов.
Как это работает?
err_dir=$(mktemp -d /tmp/errdir.XXX) out_dir=$(mktemp -d /tmp/outdir.XXX) /bin/pssh -i -o /tmp/out/ -e /tmp/err/ -H "10.43.138.2 10.43.138.3 10.43.138.9" -l root `datet || эхо "ОШИБКА"` get_pssh_hosts $err_dir $out_dir print_summary
Теперь здесь мы получаем вывод, как показано ниже: STDERR
Реклама
# grep ERROR /tmp/err/10.43.138.3 bash: ОШИБКА: команда не найдена ##### # # РЕЗЮМЕ: # # Успех: # Ошибка: 10.43.138.2 10.43.138.3 10.43.138.9 # #####
Таким образом, наш скрипт может легко обнаружить и отличить успешный сценарий от неудачного.0005
9. Используйте PSCP для копирования файлов с одного сервера на несколько серверов
pscp — программа для параллельного копирования файлов на несколько хостов. Он предоставляет такие функции, как передача пароля в scp, сохранение вывода в файлы и тайм-аут. Этот инструмент также поддерживает почти все параметры, как и в случае с PSSH.
В приведенном ниже примере я копирую файл, доступный на моем сервере по адресу «/tmp/temp.txt
», на клиентские узлы в разделе «/home/deepak/9».0528 '
# /bin/pscp.pssh -H "10.43.138.2 10.43.138.3 10.43.138.9" -l root /tmp/temp.txt /home/deepak/ [1] 20:22:47 [УСПЕХ] 10.43.138.3 [2] 20:22:47 [УСПЕХ] 10.43.138.2 [3] 20:22:47 [УСПЕХ] 10.43.138.9
10. Выполнение PSSH без запроса пароля
Вы можете выполнить проверку подлинности с открытым ключом SSH с помощью PSSH (без пароля) в Linux, чтобы получить инструкции по выполнению SSH на несколько хостов, используя аутентификацию с закрытым открытым ключом. Вы можете использовать этот метод в сценариях для автоматизации некоторых задач без запроса пароля.
Резюме
PSSH — очень удобный инструмент, если вы хотите выполнять любую задачу на нескольких целевых узлах параллельно. Вы можете легко интегрировать этот инструмент с любым другим скриптом-оболочкой на любом другом языке программирования.