看板 Linux 關於我們 聯絡資訊
各位好,目前我使用的環境是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