Ad Widget

Collapse

Zabbix удаленная команда скрипт

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • fractal90
    Senior Member
    • Jun 2019
    • 177

    #1

    Zabbix удаленная команда скрипт

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

    сам скрипт
    #!/bin/bash

    #Включаем отладку BASH:
    set -x

    #Учетные данные:
    USER="test"
    PASS="123456"
    HOST="192.168.18.200"

    #Файл логов:
    LOG="ssh_conn.log"

    #Вывод даты старта скрипта:
    echo START SCRIPT: >> $LOG
    date +%x-%R >> $LOG

    #Время ожидание expect
    set timeout 4

    #Команды для expect:
    COMM="

    #Соединение ssh:
    spawn ssh -o StrictHostKeyChecking=no $USER@$HOST
    expect "Password:"
    send "$PASS\r"

    #Выполняемые команды:
    expect "*>"
    send "show ver | include IOS\r"
    expect "*>"
    send "exit\r"


    #Завершение выполнения expect:
    expect eof

    "

    #Запуск expect с набором команд:
    expect -c "$COMM" >> $LOG

    #Вывод разделителя:
    echo ================================================== ======================= >> $LOG
    а вопросы такие

    1. Надо ли что настроить в zabbix агенте на проксе чтобы выполнять эти скрипты?
    2. Как прописать действие чтобы натравить его на данный скрипт
    3. Можно ли к скрипту подсовывать как переменную ip адрес при выполнении действия?
  • fractal90
    Senior Member
    • Jun 2019
    • 177

    #2
    Пункт 1 победил

    Comment

    • fractal90
      Senior Member
      • Jun 2019
      • 177

      #3
      теперь сделано так
      Code:
      #!/usr/bin/expect -f
      
      # Переменные
      set host [lindex $argv 0]
      set user test
      set pass 123456
      
      # Запись в log файл
      log_file ssh_conn.log
      
      # запись в log файл устройства и даты
      send_user "\n"
      send_user "/*** Working $host @ [exec date] ***/\n"
      send_user "\n"
      
      # Время ожидание expect
      set timeout 5
      
      # Соединение ssh
      spawn ssh -o StrictHostKeyChecking=no $user@$host
      expect "*assword:" {send "$pass\r"}
      
      
      # Выполняемые команды
      expect -exact "#" {send -- "sh ip arp vlan 10\r"}
      expect -exact "#" {send -- "clear ip arp 192.168.100.2\r"}
      
      # Завершение выполнения expect
      expect eof
      возник вопрос, если я хочу логировать только определенные команды, что надо сделать?

      Comment

      • fractal90
        Senior Member
        • Jun 2019
        • 177

        #4
        сам с собой поговорил, вообщем, с этим разобрался, видимо тему можно удалить

        Comment

        Working...