You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

110 lines
2.2 KiB

  1. #!/bin/bash
  2. function fixmac() {
  3. #!/bin/bash
  4. if [ $# -ne 1 ]; then
  5. echo "Usage: $0 netcardname"
  6. exit 1
  7. fi
  8. netcardname=$1
  9. linkfilename=/etc/systemd/network/20-fixedmac-${netcardname}.link
  10. mac=$(ifconfig ${netcardname} | grep ether | awk '{print $2}')
  11. echo "[Match]" >${linkfilename}
  12. echo "OriginalName=${netcardname}" >>${linkfilename}
  13. echo "" >>${linkfilename}
  14. echo "[Link]" >>${linkfilename}
  15. echo "MACAddress=${mac}" >>${linkfilename}
  16. echo "++++++++++ create ${linkfilename} ++++++++++"
  17. cat ${linkfilename}
  18. echo ""
  19. }
  20. function generate_device_info() {
  21. #
  22. # /etc/device_info.env
  23. # DEVICE_ID=IFLYTOP_UNINITIALIZED
  24. # FRP_SERVER_ADDR=127.0.0.1
  25. #
  26. # 判断DEVICE_ID和FRP_SERVER_ADDR是否为空
  27. if [ -z "$DEVICE_ID" ]; then
  28. echo "DEVICE_ID is empty"
  29. exit 1
  30. fi
  31. if [ -z "$FTP_SERVER_ADDR" ]; then
  32. echo "FTP_SERVER_ADDR is empty"
  33. exit 1
  34. fi
  35. echo "DEVICE_ID=${DEVICE_ID}" >/etc/device_info.env
  36. echo "FRP_SERVER_ADDR=${FTP_SERVER_ADDR}" >>/etc/device_info.env
  37. echo "+++++++++ create /etc/device_info.env +++++++++"
  38. cat /etc/device_info.env
  39. echo ""
  40. }
  41. set -e
  42. DEVICE_ID=""
  43. FTP_SERVER_ADDR=""
  44. FIX_MAC=""
  45. PARAMETERS=$@
  46. EXEC_IN_BOARD=false
  47. for i in "$@"; do
  48. case $i in
  49. --deviceId)
  50. shift
  51. DEVICE_ID=$1
  52. shift
  53. ;;
  54. --ftpserver)
  55. shift
  56. FTP_SERVER_ADDR=$1
  57. shift
  58. ;;
  59. --fixmac)
  60. shift
  61. FIX_MAC=$1
  62. shift
  63. ;;
  64. --exec_in_board)
  65. shift
  66. EXEC_IN_BOARD=$1
  67. shift
  68. ;;
  69. --ip)
  70. shift
  71. IP=$1
  72. shift
  73. ;;
  74. *)
  75. # unknown option
  76. ;;
  77. esac
  78. done
  79. ## 如果EXEC_IN_BOARD为空,则将自身拷贝到目标设备再次执行
  80. if [ "$EXEC_IN_BOARD" != "true" ]; then
  81. echo "scp ./sh/boardinit.sh root@$IP:/tmp"
  82. scp ./sh/boardinit.sh root@$IP:/tmp
  83. echo "ssh root@$IP \"/tmp/boardinit.sh $PARAMETERS --exec_in_board true\""
  84. echo ""
  85. ssh root@$IP "/tmp/boardinit.sh $PARAMETERS --exec_in_board true"
  86. exit 0
  87. fi
  88. ## 固化网卡
  89. if [ "$FIX_MAC" == "true" ]; then
  90. fixmac eth0
  91. fi
  92. generate_device_info