Вставьте вывод команды Shell в Sed и замените существующую строку файла - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь создать сценарий оболочки, который должен запускаться при загрузке нового VPS Created.Новый VPS будет создан с предварительно установленной панелью cPanel / WHM на 64-битном шаблоне CentOS 7.Сценарий оболочки должен изменить IP-адрес VPS, при этом новый IP-адрес назначается VPS при создании и перезагрузке службы cpanel.

#!/bin/bash
echo -e "\e[1;36;40m Modifying parameters in cpanel shared IP configuration \e[0m"
ipchange="$(ip addr show | grep 'venet0:0' | awk '{ print $2}')"
echo "$ipchange"
sed -i -e 's/"ADDR 127.0.0.1$"/"ADDR $ipchange"/g' /etc/wwwacct.conf
echo -e "\e[1;36;40m Restarting cPanel \e[0m"
systemctl restart cpanel.service  > /dev/null 2>&1
echo -e "\e[1;36;40m Restart cpanel completed \e[0m"

Мне нужно знать, как вставить частичный вывод команды ниже

ip addr show | grep 'venet0:1' | awk '{ print $2}'

Пример ВЫХОДА

bbb.bbb.bbb.bbb/32

Нужно только скопировать bbb.bbb.bbb.bbbи вставьте в /etc/wwwacct.conf файл, удалив существующий

ADDR 127.0.0.1

С новым IP

ADDR bbb.bbb.bbb.bbb

Сохраните существующий файл и перезапустите службы cpanel.

1 Ответ

0 голосов
/ 15 февраля 2019

для изменения вашего ip вы можете использовать cut:

ip addr show | grep 'venet0:1' | awk '{ print $2}' | cut -d'/' -f1

И ваш sed должен использовать двойные кавычки, чтобы оболочка расширила переменную $ ipchange:

sed -i -e "s/ADDR 127.0.0.1/ADDR $ipchange/g" /etc/wwwacct.conf
...