CentOSでのインターフェースのポストアップ

インターフェイスを上げた後、CentOSに特定のスクリプトを実行させる方法について半日苦しみました。 最初に失敗したグーグルの後、 最初の困難の出現は、「長い出血よりも汚いハックの方が良い」という原則に基づいて行動することを余儀なくされました: /etc/sysconfig/network-scripts/ifup-eth
同僚をこれから遠ざけるために、ここで私の研究の結果を書いています。

1.純粋な形では、CentOSでのDebianのポストアップに類似するものはありません。 彼を探してはいけません。
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.記事のifup.dおよびifdown.d パート1構成ファイルを介して説明されているLinuxネットワークセットアップ ifdown.d単に見つかりませんでした。 それらにも言及されていません/etc/sysconfig/network-scripts/*

1,2,3に基づいて、唯一の正しい解決策は、 ifup-localスクリプトの/sbin/次のコンテンツを配置することです。
#!/bin/bash

POSTUPNAME="/etc/sysconfig/network-scripts/post-up-$1"
if [ -x $POSTUPNAME ]; then
exec $POSTUPNAME
fi


したがって、 post-up-eth0ファイルなどは、この後に/etc/sysconfig/network-scripts/に配置されます。 内部に便利なコードがあります。

そして最後に、状況は、インターフェースを上げる前( /sbin/ifup-pre-local )、それを無効にする前( /sbin/ifdown-pre-local )、そして無効にした後( /sbin/ifdown-local )のコードを実行する場合と似ています。

PS作業はCentOSリリース5.4(最終)で実施されました。 検死の結果として破損したサーバーは1つもありませんでした。

Source: https://habr.com/ru/post/J82525/


All Articles