Как автоматизировать соединение с несколькими сетевыми устройствами, выполнение команды и сохранение вывода в файл?

Ну, я не мог найти Дурака color как конфигурационные операторы, которые позволяют применять информацию о цвете по нескольким строкам.

Возможно, самый легкий способ иметь дело с сообщением Outlook состоит в том, чтобы установить фильтр, например, что-то как:

$ awk '/-----Original Message-----/ { level++; }
       { for (i=0;i"); printf("%s%s", $0,"\n"); } '

mutt имеет даже a display_filter команда:

Когда установлено, указывает, что команда раньше фильтровала сообщения. Когда сообщение просматривается, оно передается как стандартный вход $display_filter, и фильтрованное сообщение прочитано из стандартного вывода.

Вероятно, можно сделать это условное выражение команды (через рычаги) - т.е. только выполнить его, когда сообщение имеет перспективу определенный заголовок агента пользователя. Возможно, через рычаг сообщения:

Эта команда может использоваться для выполнения произвольных команд конфигурации прежде, чем просмотреть или отформатировать сообщение, основанное на информации о сообщении. команда выполняется, если шаблон соответствует сообщению, которое будет отображено.

2
27.05.2013, 10:05
3 ответа

Главным, которое необходимо автоматизировать, является ввод ssh пароль. Существует два способа, которыми я знаю, которых можно попробовать, любой настроенный пароль меньше ssh или установка sshpass:

  • Использовать sshpass вводить пароль. Если Вам открыли репозитории DAG, необходимо смочь установить с конфеткой:

    yum install sshpass
    

    В противном случае можно или загрузить об/мин непосредственно или добавить репозиторий и затем установить:

    1. Загрузите пакет rpmforge-выпуска. Выберите одну из этих двух ссылок ниже, выбрав для соответствия архитектуре хоста. Если Вы не уверены, которых использовать Вас может проверить Вашу архитектуру с командой uname -i

    2. Установите ключ DAG GPG

      rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
      
    3. Установите загруженный пакет

      rpm -i rpmforge-release-0.5.2-2.el6.rf.*.rpm
      
    4. Установка sshpass

      yum install sshpass
      

    После того как Вы установили sshpass, учитывая названный файл ips.txt, например, это содержит имена или дюйм/с Ваших устройств один на строку, можно автоматизировать процесс как это:

    while read ip; do 
      echo -n "$ip: " >> local_file.log;
      sshpass -p 'your password' ssh user@$ip remote_command >> local_file.log
    done < ips.txt
    
  • С другой стороны, можно настроить пароль меньше ssh для каждого из устройств и установки пропуска sshpass:

    1. Настройте пароль меньше ssh

      ssh-keygen -t rsa
      while read ip; do 
        ssh-copy-id -i ~/.ssh/id_rsa.pub user@$ip; 
      done < ips.txt
      
    2. Выполните свои задания

      while read ip; do 
        echo -n "$ip: " >> local_file.log;
        ssh user@$ip remote_command >>local_file.log
      done < ips.txt
      
4
27.01.2020, 21:53

Несколько лет назад у меня была подобная проблема автоматизации удаленных соединений. Я использовал, ожидают, который является очень гибким инструментом, но иногда немного тонкий для использования. Это сделает что угодно, что пользователь может сделать путем ввода в командной строке, но все возможные реакции системы (систем) должны быть распознаваемыми expect сценарий (отсюда имя инструмента: этому не нравится неожиданное).
Однако это может быть кувалда для Вашей проблемы, и решение, предложенное @erdon, может быть легче и более соответствующим.

3
27.01.2020, 21:53
  • 1
    @Campino я рекомендовал бы expect также, так как это - более универсальный инструмент, что Вы учитесь его решать эту проблему, может быть применен к другим проблемам в будущем, не только этому определенному типу проблемы. –  Bratchley 24.05.2013, 15:07

Вы можете использовать сценарию Python и Paramiko для этого. Извините за вилку, но у меня уже есть сценарий для этого опубликовал здесь " http://certifiedgeek.weebly.com/blog/network-scripting-via-ssh-with-python-and-paramiko Сценарий находится в " https://github.com/cwgueco/netscript «

Этот скрипт «Netscript.py» имеет следующие параметры:

netscript.py -t <target> -u <username> -p <password> -i <command_file> -v
- the target is the IP address/hostname
- username/password should have allowed privilege to run commands
- command_file is a text file where the commands are listed
- v for verbose wherein you can pipe this to a file

просто создайте сценарий, который будет пестроть этот Python Скрипт при подключении к каждому устройству и выполнение того же набора команд и трубопроводов каждый вывод в файл.

0
27.01.2020, 21:53

Теги

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