네트워크 인터페이스 카드, network init.d를 자동으로 감지합니다.

네트워크 인터페이스 카드, network init.d를 자동으로 감지합니다.

나는 이것을 기반으로 LFS 리눅스를 구축했습니다., 제대로 작동하고 네트워크 인터페이스 카드가 작동하고 있습니다. 심지어 서비스를 사용하여 dhcpcdIP를 자동으로 구성합니다.

이 책의 9장에 따르면 다음과 같은 파일이 있습니다.

/etc/sysconfig/ifconfig.eth0 문제는 wlan0네트워크 인터페이스 카드를 수동으로 변경할 때마다 구성 파일을 수정하거나 eth0의 이름을 wlan0으로 바꿔야 하는지를 사용하는 경우 자동으로 감지되기를 바랍니다.

/etc/init.d/network여기서는 LFS 책에서 생성된 네트워크 스크립트를 초기화합니다./etc/sysconfig/ifconfig.*

### BEGIN INIT INFO
# Provides:            $network
# Required-Start:      $local_fs localnet swap
# Should-Start:        $syslog firewalld iptables nftables
# Required-Stop:       $local_fs localnet swap
# Should-Stop:         $syslog firewalld iptables nftables
# Default-Start:       3 4 5
# Default-Stop:        0 1 2 6
# Short-Description:   Starts and configures network interfaces.
# Description:         Starts and configures network interfaces.
# X-LFS-Provided-By:   LFS
### END INIT INFO

case "${1}" in
   start)
      # Start all network interfaces
      for file in /etc/sysconfig/ifconfig.*
      do
         interface=${file##*/ifconfig.}

         # Skip if $file is * (because nothing was found)
         if [ "${interface}" = "*" ]; then continue; fi

         /sbin/ifup ${interface}
      done
      ;;

   stop)
      # Unmount any network mounted file systems
       umount --all --force --types nfs,cifs,nfs4

      # Reverse list
      net_files=""
      for file in  /etc/sysconfig/ifconfig.*
      do
         net_files="${file} ${net_files}"
      done

      # Stop all network interfaces
      for file in ${net_files}
      do
         interface=${file##*/ifconfig.}

         # Skip if $file is * (because nothing was found)
         if [ "${interface}" = "*" ]; then continue; fi

         # See if interface exists
         if [ ! -e /sys/class/net/$interface ]; then continue; fi

         # Is interface UP?
         ip link show $interface 2>/dev/null | grep -q "state UP"
         if [ $? -ne 0 ];  then continue; fi

         /sbin/ifdown ${interface}
      done
      ;;

   restart)
      ${0} stop
      sleep 1
      ${0} start
      ;;

   *)
      echo "Usage: ${0} {start|stop|restart}"
      exit 1
      ;;
esac

exit 0

# End network

답변1

스크립트를 읽으면 모든 /etc/sysconfig/ifconfig.*파일을 처리한다는 것이 분명해집니다.

   start)
      # Start all network interfaces
      for file in /etc/sysconfig/ifconfig.*
      do
         interface=${file##*/ifconfig.}

스크립트는 파일 이름에서 구성할 인터페이스 이름을 선택하므로 필요한 설정을 및 eth0/etc/sysconfig/ifconfig.eth0쓰기 만 하면 됩니다 .wlan0/etc/sysconfig/ifconfig.wlan0

또한 무선 네트워크 인터페이스(예: wlan0)의 경우 다음 사항도 필요할 가능성이 높습니다.설치 및 구성wpa_supplicant, 현대적인 형태의 무선 네트워크 보안을 다룹니다.

다른 사람이 작성한 쉘 스크립트를 읽을 수 있는 능력은 Linux 시스템 관리자에게 귀중한 기술입니다. 때로는 스크립트가 실제로 수행하는 작업을 확인하기 위해 스크립트를 읽어야 할 수도 있고, 특정 문제를 해결하기 위해 또는 사용 가능한 문서가 충분히 자세하지 않기 때문에 스크립트가 실제로 수행하는 작업을 파악해야 할 수도 있습니다.

관련 정보