2016-07-13 3 views
1

Проблема с моей инфраструктурой - это SMTP-сервер. IP-адрес является динамическим .. Я использую брандмауэр Vyatta & Я пытаюсь написать скрипт, который будет проверять SMTP-IP каждые 60 минут, а если IP-адрес SMTP будет изменен, он должен автоматически обновлять правила брандмауэра (конфигурация) ..Как добавить строки в скрипт bash с помощью команды sed?

#!/bin/bash 

SMTP=$(nslookup smtp.sendgrid.net | awk -F': ' 'NR==6 { print $2 }') 
SMTP_IP=x.x.x.x 

if [ $SMTP != $SMTP_IP ] 
then 
??? 
else 
echo "GREEN" 
fi 

брандмауэра правил выглядит следующим образом:

rule 979 { 
     destination { 
      address "Current SMTP IP" 
     } 
     outbound-interface bond1 
     source { 
      address 10.x.x.x 
     } 
     translation { 
      address 200.x.x.x 
     } 
    } 

Я хотел бы мой сценарий обновления правил брандмауэра из предыдущего правила .. Пример:

. 
. 
.  
rule 978 { 
    destination { 
     address "NEW SMTP IP" 
    } 
    outbound-interface bond1 
    source { 
     address 10.x.x.x 
    } 
    translation { 
     address 200.x.x.x 
    } 
} 

Я парень сети & имеют некоторые базовые знания в сценариях. Может кто-нибудь помочь мне в решении этого с помощью сценария bash ???

+0

Я ничего не пробовал до сих пор. Пытался использовать команду sed, но я не получил желаемого результата. – clement

ответ

0

Если я понимаю ваш вопрос, вы хотите заменить один IP-адрес другим в своих правилах на строку «адрес» под словом «пункт назначения». Что-то вроде этого:

#! /usr/bin/awk -f 

/destination/ { N = NR + 1 } 

NR == N && /address/ && index($0, OLD_IP) { 
    pos = index($0, OLD_IP) 
    print substr($0, 1, pos), NEW_IP 
    next 
} 
{ print } 

Мы ищем линию с «пунктом назначения» и записываем следующий номер строки. На следующей строке мы ищем «адрес» и видим, есть ли там старый IP-адрес. Если это так, мы печатаем измененное правило с использованием нового IP-адреса. Просто просто распечатайте.

Вызванный в

$ awk -v OLD_IP=x.x.x.x -v NEW_IP=${SMTP} -f rules.awk firewall_rules 

он должен сделать трюк.

+0

Замена частично работала (было 2 пробела перед новым IP) .. и номер правила сделал не изменяйте (от 979 до 978). Спасибо и оцените вашу помощь !! – clement

Смежные вопросы