作者fishtw (39+遊戲慘業工作者)
看板Linux
標題[問題] CentOS 3個ifcfg-eth* 同步的機制?
時間Thu Nov 16 15:13:40 2017
各位好,目前我使用的環境是CentOS release 6.9 (Final)
系統上目前有3個ifcfg-eth0
分別是
/etc/sysconfig/networking/profiles/default/ifcfg-eth0
/etc/sysconfig/networking/devices/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth0
前兩檔案主要是源自system-config-network
現在發現我若是透過system-config-network 或是 用vim去修改3個中任一設定
回到shell以後3個檔案都會被同步成相同的內容
若是用sed去變更,則3個就不會再被同步
請問這中間同步的機制是怎麼運作呢??
用vim 隨機改3個中任一個
[root@buildme etc]# FILE=$(find /etc/sysconfig -type f -name "ifcfg-eth0" |
shuf -n 1); grep -q ONBOOT=yes ${FILE} &&
STRING="%s/ONBOOT=yes/ONBOOT=no/g|wq" ||
STRING="%s/ONBOOT=no/ONBOOT=yes/g|wq"; vim -c ${STRING} ${FILE}; find
/etc/sysconfig -type f -name "ifcfg-eth0"
-ls
678526 4 -rw-r--r-- 3 root root 240 Nov 16 15:11
/etc/sysconfig/networking/profiles/default/ifcfg-eth0
678526 4 -rw-r--r-- 3 root root 240 Nov 16 15:11
/etc/sysconfig/networking/devices/ifcfg-eth0
678526 4 -rw-r--r-- 3 root root 240 Nov 16 15:11
/etc/sysconfig/network-scripts/ifcfg-eth0
用sed 隨機改3個中任一個
[root@buildme etc]# FILE=$(find /etc/sysconfig -type f -name "ifcfg-eth0" |
shuf -n 1); grep -q ONBOOT=yes ${FILE} && STRING="s/ONBOOT=yes/ONBOOT=no/g"
|| STRING="s/ONBOOT=no/ONBOOT=yes/g"; sed -i -e ${STRING} ${FILE}; find
/etc/sysconfig -type f -name "ifcfg-eth0" -ls
678526 4 -rw-r--r-- 1 root root 240 Nov 16 15:11
/etc/sysconfig/networking/profiles/default/ifcfg-eth0
678530 4 -rw-r--r-- 1 root root 240 Nov 16 15:12
/etc/sysconfig/networking/devices/ifcfg-eth0
678529 4 -rw-r--r-- 1 root root 241 Nov 16 15:13
/etc/sysconfig/network-scripts/ifcfg-eth0
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 133.130.124.49
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1510816423.A.F72.html
推 galic: 你有沒有注意到 他們一開始inode number都一樣 ref count 11/16 15:22
→ galic: 都是3 所以是hard link 然後 sed 會破壞hard/soft link 11/16 15:22
→ galic: 因為sed的實作是 先寫到暫存 然後覆蓋原始檔案 11/16 15:23
謝謝你的說明
※ 編輯: fishtw (133.130.124.49), 11/16/2017 16:58:36
推 jamselee: 推高手 11/19 17:08