Полдня промучался на тему того, как заствить CentOS выполнить некий скрипт после поднятия интерфейса. После первого неудачного гугления появления первых трудностей заставил себя, однако, не действовать по принципу «Лучше грязный хак, чем долгий гемор»: удержался от втыкания костыля в
Дабы и коллег удержать от подобного пишу сюда результат своих изысканий.
1. В чистом виде аналог дебиановского post-up в CentOS отсутствуют. Не надо даже пытаться его искать.
2. Все, что есть, это некая фича описанная в Red Hat Knowledgebase DOC-8695
Если вкрадце: предлагается создать некий /sbin/ifup-local. В который затем поместить свой полезный (или бесполезный) код. Например:
Но это не наш метод. Хранить что-то относящееся к конфигурации в
3. Описанных в статье Настройка сети в Linux через конфиг-файлы, ч.1 каталогов
Исходя из 1,2,3 единственным правильным решением считаю размешение в
Соответственно, в
И напоследок, аналогично дело обстоит и с запуском кода перед поднятием интерфейса (
PS Работа велась на CentOS release 5.4 (Final). Ни одного сервера в результате вскрытия не пострадало.
/etc/sysconfig/network-scripts/ifup-eth
Дабы и коллег удержать от подобного пишу сюда результат своих изысканий.
1. В чистом виде аналог дебиановского post-up в CentOS отсутствуют. Не надо даже пытаться его искать.
2. Все, что есть, это некая фича описанная в Red Hat Knowledgebase DOC-8695
Если вкрадце: предлагается создать некий /sbin/ifup-local. В который затем поместить свой полезный (или бесполезный) код. Например:
#Set the MTU for eth0 only using the ip command
if [ "$1" = "eth0" ]; then
exec /sbin/ip link set dev ${1} mtu 1200
fi
Но это не наш метод. Хранить что-то относящееся к конфигурации в
/sbin/
считаю неочевидным, и даже преступным по отношению к другим админам. Которым, возможно, придется работать с этой системой в будущем.3. Описанных в статье Настройка сети в Linux через конфиг-файлы, ч.1 каталогов
ifup.d
и ifdown.d
просто не нашлось. О них нет даже упоминания /etc/sysconfig/network-scripts/*
Исходя из 1,2,3 единственным правильным решением считаю размешение в
/sbin/
скрипта ifup-local
следующего содержания:#!/bin/bash
POSTUPNAME="/etc/sysconfig/network-scripts/post-up-$1"
if [ -x $POSTUPNAME ]; then
exec $POSTUPNAME
fi
Соответственно, в
/etc/sysconfig/network-scripts/
после этого помещаются файлы post-up-eth0
и т.д. с полезным кодом внутри.И напоследок, аналогично дело обстоит и с запуском кода перед поднятием интерфейса (
/sbin/ifup-pre-local
), перед его отключением (/sbin/ifdown-pre-local
) и после его отключения (/sbin/ifdown-local
).PS Работа велась на CentOS release 5.4 (Final). Ни одного сервера в результате вскрытия не пострадало.