CentOSのネットワーク設定ファイル(/etc/sysconfig/network-scripts/ifcfg-eth0など)をバックアップする際、ファイル名のあとに.日付などを付けてバックアップして失敗したことはないだろうか。
例えば、/etc/sysconfig/network-scripts/ifcfg-eth0.20140420などだ。
/etc/sysconfig/network-scripts/下にあるCentOSのネットワーク設定ファイルは不用意にバックアップファイルを置いておくとnetworkサービスに認識されてしまう。
但し、認識されないファイル名もあるのだ。


 


 

どこで認識されるのか

ネットワークインターフェースは、networkサービスの起動スクリプト(/etc/init.d/network)の中で認識されている。
中でも下記の赤文字の部分が認識されないファイル名を識別している部分だ。
 

# vi /etc/init.d/network

# find all the interfaces besides loopback.
# ignore aliases, alternative configurations, and editor backup files
interfaces=$(ls ifcfg* | \
            LANG=C sed -e "$__sed_discard_ignored_files" \
                       -e '/\(ifcfg-lo$\|:\|ifcfg-.*-range\)/d' \
                       -e '/ifcfg-[A-Za-z0-9#\._-]\+$/ { s/^ifcfg-//g;s/[0-9]/ &/}' | \
            LANG=C sort -k 1,1 -k 2n | \
            LANG=C sed 's/ //')

 

どのようなファイル名が認識されないのか

__sed_discard_ignored_files は、/etc/init.d/functions の中で定義されている。
ファイル名の最後が、.bak、.orig、.rpmnew、.rpmorig、.rpmsave などのファイル名はネットワーク設定ファイルとして認識されない。
また、ここに認識されたくない拡張子を記述することで、そのファイルはネットワーク設定ファイルとして認識されなくなる。
 

# vi /etc/init.d/functions

# A sed expression to filter out the files that is_ignored_file recognizes
__sed_discard_ignored_files='/\(~\|\.bak\|\.orig\|\.rpmnew\|\.rpmorig\|\.rpmsave\)$/d'

 



Categories: CentOS


Leave a Reply