pssh (Parallel-ssh), передающий разные параметры для каждого хоста

У меня есть файл под названием hosts который выглядит следующим образом:

 host1 host2 host3 host4 ..... 

На этих машинах есть также локальный пользователь, называемый именем машины. Пользователь host1 создается на хосте host1 и так далее.

Есть ли способ заблокировать все эти учетные записи пользователей на всех компьютерах?

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

 pssh -h hosts -l root -i passwd -l hostname |cut -d. -f1 

С этой командой я надеюсь заблокировать каждую учетную запись пользователя, соответствующую каждому имени хоста.

Надеюсь, вы поняли, что я имею в виду.

Благодаря!

  • Объединение пар файлов в цикле
  • Запустить Comand для всех файлов (вложенных папок в папках)
  • Как ссылаться на несколько файлов из каталога на одну команду
  • Объединить ассоциативные массивы Bash
  • bash, не используя ssh -i. Не удается найти каталог
  • Как печатать только определенные символы?
  • вытягивание строк из смешанного файла строк и двоичных
  • Shell Script считывает метаданные файла, а затем mv каждый в новый каталог
  • 2 Solutions collect form web for “pssh (Parallel-ssh), передающий разные параметры для каждого хоста”

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

     pssh -h hosts -l root -i 'passwd -l "$(hostname)"' 

    Это предполагает, что имя учетной записи пользователя для блокировки – это то, что машина считает своим именем. Если вы используете псевдонимы в своей конфигурации SSH и хотите использовать псевдоним в команде, а не фактическое имя хоста компьютера, или если имя хоста отличается от имени хоста DNS, вы можете использовать $PSSH_HOST вместо $(hostname) , но только в том случае, если конфигурация сервера удаленного хоста позволяет передать это имя переменной в среде, что по умолчанию не во многих системах.

    pssh прочитает ваш файл ~ / .ssh / config. Если вы используете OpenSSH 5.6+, вы должны указать своих пользователей как параметры в вашем файле конфигурации. %h будет расширяться до имени хоста с OpenSSH 5.6 и более новым. Вы можете использовать этот фрагмент, чтобы всегда использовать имя пользователя с именем хоста с

     host* User %h 

    Если на всех ваших серверах всегда есть пользователи, названные в честь тех хостов, которые вы могли бы использовать

     * User %h 

    Если вы используете и устаревшую версию OpenSSH (вы должны обновить), вы можете вручную указать пользователей для хостов с

     host1 User host1 host2 User host2 ... 
    Linux и Unix - лучшая ОС в мире.