Скрипт bash для получения MAC-адреса и вставки его в файл ifconfig после HWADDR

Вместо установки профиля мне помогла установка PATH. Некоторые команды были недоступны в моих сценариях cron, так как PATHотличается.

ENVIRONMENT=prod
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
*/30 * * * * /opt/myscript1.sh
*/30 * * * * /opt/myscript2.sh
*/30 * * * * /opt/myscript3.sh

Мне помогла настройка PATHс путем команд. Еще лучше, если вы можете использовать шаблон и дешаблонировать позже,

ENVIRONMENT={{ENVIRONMENT}}
PATH={{PATH}}
*/30 * * * * /opt/myscript1.sh
*/30 * * * * /opt/myscript2.sh
*/30 * * * * /opt/myscript3.sh

Передача переменных каждому элементу выглядит беспорядочно.

0
26.01.2020, 16:16
3 ответа

Вместо разбора вывода ifconfig (, который может даже не быть установлен по умолчанию ), вы должны просто установить переменную из содержимого данных /sys:

MACADDR=$(cat /sys/class/net/eth0/address)

Тогда вы можете просто

echo “HWADDR=$MACADDR” >> /etc/sysconfig/network-scripts/ifcfg-eth0

Предполагается, что у вас еще нет строки с HWADDR, в противном случае вам нужно будет использовать sed.

3
28.01.2020, 02:29

Вы можете получить MAC-адрес eth0 с помощью:

$ ifconfig eth0 | awk '/ether/ {print $2}'

где :ifconfig eth0отображает только заданное сетевое устройство

awk '/ether/ {print $2}'ищет «эфир» и печатает второй столбец в соответствующей строке

--

Что такое ifconfig -файл eth0 ?

изд :прежний $ ifconfig | awk '/^eth0/ {getline;print $2}'был на самом деле правильным только для неподключенного eth0, поэтому правильный теперь выше.

0
28.01.2020, 02:29

Пробовал с помощью приведенной ниже команды, все сработало

k=`ifconfig -a |awk '/HWaddr/{print $NF}'`
sed -i "/HWADDR/s/=.*/=$k/g" /etc/sysconfig/network-scripts/ifcfg-eth0
0
28.01.2020, 13:54

Теги

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