Как установить Тайм-аут для ssh, управляют и также возвращают результат удаленных команд

Посмотрите раздел Content Limitations мерзавца Wiki: мерзавец не отслеживает принадлежность файла, состав группы, не отслеживает большинство битов полномочий, ACLs, времена доступа и время изменения, и т.д.

Мерзавец отслеживает содержание и не заботится очень о в значительной степени всем остальном.

3
28.03.2015, 12:53
2 ответа

Используйте GNU Parallel для параллелизма вашей коллекции:

parallel --slf rhel-nodes --tag --timeout 1000% --onall --retries 3 \
  "rpm -q {}; rpm --queryformat '%{installtime:date} %{name}\n' -q {}" \
  ::: bash bc perl

Поместите узлы в ~ / .parallel / Rheel-узлы .

- Tag получит вывод с именем узла. - Тайм-аут 1000% говорит, что если команда занимает в 10 раз больше, чем Median, чтобы запустить, она будет убита. - Onall будет запустить все команды на всех серверах. - Retribe 3 запустит команду до 3 раза, если она не удастся. ::: Bash BC Perl - это пакеты, на которые вы хотите проверить. Если у вас есть много пакетов, используйте пакеты CAT | Параллель ... Синтаксис вместо Параллельные ... ::: Пакеты .

GNU Parallel - это общий параллелизатор, и позволяет легко запускать задания параллельно на той же машине или на нескольких машинах, к которым у вас есть SSH.

Если у вас есть 32 различных рабочих заданий, которые вы хотите запустить на 4 процессорах, прямой путь для параллелизма - это управлять 8 рабочими заданиями на каждом процессоре:

Simple scheduling

GNU Parallel вместо этого порождает новый процесс, когда одна отделка - поддерживая процессор И, таким образом, экономить время:

GNU Parallel scheduling

Установка

Если GNU Parallel не упакован для вашего распространения, вы можете сделать личную установку, что не требует доступа к корню. Это может быть сделано за 10 секунд, делая это:

(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash

для других вариантов установки см. http://git.savannah.gnu.org/cgit/parallel.git/tree/readme

Узнать больше

Увидеть больше примеров: http://www.gnu.org/software/parallel/man.html

Смотреть видео в Intro: https://www.youtube.com/playlist?list= PL284C9FF2488BC6D1

Прогулка по учебнику: http://www.gnu.org/software/parallel/parallel_tutorial.html

Зарегистрируйтесь на списке электронных напитков, чтобы получить поддержку: HTTPS: // списки .gnu.org / mailman / listinfo / parallel

2
27.01.2020, 21:23

Спасибо за ваши попытки решить это.

Я теперь решил проблему, и разрешение необходимо было так просто, что я чувствую себя довольно глупым сейчас.

В коде я использовал ранее,

(ssh -q -o Batchmode=yes -o PasswordAuthentication=no -o ConnectTimeout=1 $i "rpm --queryformat '%{installtime:date} %{name}\n' -q \"kexec-tools\" | cut -d \" \" -f1,2,3,4|tr \" \" \"_\"" > /dev/null) & pid=$!

все, что мне нужно было сделать, это перенаправить весь вывод в файл на локальной машине. Вот и все.

(ssh -q -o Batchmode=yes -o PasswordAuthentication=no -o ConnectTimeout=1 $i "rpm --queryformat '%{installtime:date} %{name}\n' -q \"kexec-tools\" | cut -d \" \" -f1,2,3,4|tr \" \" \"_\"" > **test**) & pid=$!

Единственная причина, по которой я решил опубликовать ответ, был, потому что ответ, который вы дали, необходимые внешние инструменты / код, которые должны быть введены и использованы, что то, что я не хочу делать. Вместо этого я хотел, чтобы решение было применено без какой-либо зависимости от наличия пакетов или версии ОС.

, тем не менее,!

1
27.01.2020, 21:23

Теги

Похожие вопросы