BuddyPress bbPress

银河麒麟桌面操作系统V10遇到的一些问题

标签:, ,
  • 881  1#6546
    飞仔
    参与者
    楼主

    网卡名称居然会改变的奇葩问题

    例如:
    原网卡名称:ens33
    现在网卡名称居然变成了:eth0

    也许是因为我用VM虚拟机环境才会出现这样的问题

    尝试重启系统,他又变回原来的名称:ens33
    然后关机,再开机,又变成了:eth0
    简直琢磨不透

    可能是光驱还装载了安装镜像?
    于是关机
    把光驱移除
    再开机
    这下网卡名称稳定了,直接稳定变成:eth0
    变就变吧,我在 eth0 上再新建一个连接:测试网
    总可以吧!

    这貌似还真不太行!!

回复 2
    • 2#6547
      飞仔
      参与者
      楼主

      奇葩的问题将接踵而来:

      连接名称:测试网
      在我们没有在 eth0 新建连接之前,之前绑定 ens33 的旧数据依旧还能 show 出来:

      sgtfz@sgtfz-pc:~$ nmcli con show
      NAME    UUID                                  TYPE      DEVICE 
      测试网  0aa3de81-035f-3ec2-8232-f6cc42a88e34  ethernet  --     
      互联网  3564f47c-dbc9-3de1-8fde-b2d171af69ef  ethernet  --  

      现在我们在 eth0 新建一个连接,名称也是:测试网
      show 一下:

      sgtfz@sgtfz-pc:~$ nmcli con show
      NAME    UUID                                  TYPE      DEVICE 
      测试网  79cec4c0-be61-49d4-a724-4bd434804d7b  ethernet  eth0   
      测试网  0aa3de81-035f-3ec2-8232-f6cc42a88e34  ethernet  --     
      互联网  3564f47c-dbc9-3de1-8fde-b2d171af69ef  ethernet  --   

      惊不惊喜?意不意外?
      这样将导致我们的脚本出问题哟!!!

      出现了两个:测试网
      让我们的脚本为难了,根本没法通过名字区分谁是谁了!!!

      • 该回复由飞仔 于 1年、 5月前 修正。
      • 该回复由飞仔 于 1年、 5月前 修正。
      • 该回复由飞仔 于 1年、 5月前 修正。
    • 3#6553
      飞仔
      参与者
      楼主

      不管多少个一样的名字,我也会仔仔细细找寻你几个世纪,在生命轮回中找到你 ^_^

      function con_manage() {
          local _con_list _cmd_name _c_n_len _m_num _c_n _cmd _name _con_dat _d_ok _d_len \
          _d_con_name _d_con_uid _con_act _con_uid _dev_name _dev_wired _sel _c_act _c_act_ \
          _d_act _d_act_ _up_uid _up_name
      
          _con_list=$(nmcli -g name,uuid,active,state connection)
          declare -a _cmd_name=()
          _c_n_len=$(expr ${#_CMD_NAME[@]} - 1)
          _m_num=0
          for i in $(seq 0 $_c_n_len); do
              _c_n="$(echo ${_CMD_NAME[$i]})"
              _cmd="${_c_n:0:1}"
              _name="${_c_n##* }"
              _con_dat=($(echo "${_con_list// /+}" | grep "^$_name"))
              [ "${#_con_dat[*]}" -eq 0 ] && continue
      
              _cmd_name+=("$_c_n")
              _m_num=$(expr $_m_num + 1)
              _d_ok=0
              _d_len=$(expr ${#_con_dat[*]} - 1)
              for d in $(seq 0 $_d_len); do
                  _d_con_name=$(echo ${_con_dat[$d]//+/ } | awk -F: '{print $1}')
                  _d_con_uid=$(echo ${_con_dat[$d]} | awk -F: '{print $(NF-2)}')
                  _dev_name=$(nmcli -g connection.interface-name connection show $_d_con_uid)
                  if _dev_wired=$(nmcli -g wired-properties.carrier device show $_dev_name 2>/dev/null); then
                      if [ "$_d_ok" -eq 0 ]; then
                          _con_act=$(echo ${_con_dat[$d]} | awk -F: '{print $(NF-1)}')
                          _con_uid=$(echo ${_con_dat[$d]} | awk -F: '{print $(NF-2)}')
                          _d_ok=1
                          continue
                      fi
                  fi
                  con_down "$_d_con_uid"
                  nmcli con modify $_d_con_uid connection.id "r_${d}_${_d_con_name}"
              done
              [ "${#_con_dat[*]}" -gt 1 ] && return 3
              if [ -z "$1" ]; then
                  if [ "$_con_act" == "yes" ]; then
                      _sel=">>"; _c_act=">>>"; _c_act_="已启用";
                      [ $_LAST_NUM -lt 0 ] && _LAST_NUM=$(expr $_m_num - 1)
                  else
                      _sel="  "; _c_act="+++"; _c_act_="未启用";
                  fi
                  [ "$_dev_wired" == "on" ] && { _d_act=">>>"; _d_act_="已插线"; } || \
                  { _d_act="+++"; _d_act_="未插线"; }
                  echo " $_sel [ $_cmd ] $_name $_d_act $_d_act_ $_c_act $_c_act_"
                  echo
              elif [ $1 -eq $i ]; then
                  _up_uid="$_con_uid"
                  _up_name="$_name"
              else
                  con_down "$_con_uid"
              fi
          done
          [ -n "$_up_uid" ] && con_up "$_up_uid" "$_up_name"
          _CMD_NAME=("${_cmd_name[@]}")
          return 0
      }
回复 2
  • 哎呀,回复话题必需登录。