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つもありませんでした。



All Articles