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.

173 lines
3.8 KiB

2 years ago
2 years ago
2 years ago
  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 "AIUI_AUTH_ID=${AIUI_AUTH_ID}" >>/etc/device_info.env
  38. echo "STARTUP_DEFAULT_URL=${STARTUP_DEFAULT_URL}" >>/etc/device_info.env
  39. echo "+++++++++ create /etc/device_info.env +++++++++"
  40. cat /etc/device_info.env
  41. echo ""
  42. }
  43. function update_frpc_config() {
  44. #
  45. # 当前这版本的FRPC的配置文件有问题,重新生成配置文件
  46. #
  47. # [common]
  48. # server_addr = {{ .Envs.FRP_SERVER_ADDR }}
  49. # server_port = 7000
  50. # log_file = /var/log/frpc.log
  51. # log_level = debug
  52. # log_max_days = 3
  53. # login_fail_exit = false
  54. # user = {{ .Envs.DEVICE_ID }}
  55. #
  56. # [ssh]
  57. # type = tcp
  58. # local_ip = 127.0.0.1
  59. # local_port = 22
  60. # remote_port = 0
  61. echo "[common]" >/etc/frpc.ini
  62. echo "server_addr = ${FTP_SERVER_ADDR}" >>/etc/frpc.ini
  63. echo "server_port = 7000" >>/etc/frpc.ini
  64. echo "log_file = /var/log/frpc.log" >>/etc/frpc.ini
  65. echo "log_level = debug" >>/etc/frpc.ini
  66. echo "log_max_days = 3" >>/etc/frpc.ini
  67. echo "login_fail_exit = false" >>/etc/frpc.ini
  68. echo "user = ${DEVICE_ID}" >>/etc/frpc.ini
  69. echo "" >>/etc/frpc.ini
  70. echo "[ssh]" >>/etc/frpc.ini
  71. echo "type = tcp" >>/etc/frpc.ini
  72. echo "local_ip = 127.0.0.1" >>/etc/frpc.ini
  73. echo "local_port = 22" >>/etc/frpc.ini
  74. echo "remote_port = 0" >>/etc/frpc.ini
  75. echo "+++++++++ create /etc/frpc.ini +++++++++"
  76. cat /etc/frpc.ini
  77. echo ""
  78. systemctl enable frpc.service
  79. systemctl start frpc
  80. }
  81. set -e
  82. DEVICE_ID=""
  83. FTP_SERVER_ADDR=""
  84. AIUI_AUTH_ID=""
  85. FIX_MAC=""
  86. STARTUP_DEFAULT_URL=""
  87. PARAMETERS=$@
  88. EXEC_IN_BOARD=false
  89. for i in "$@"; do
  90. case $i in
  91. --deviceId)
  92. shift
  93. DEVICE_ID=$1
  94. shift
  95. ;;
  96. --ftpserver)
  97. shift
  98. FTP_SERVER_ADDR=$1
  99. shift
  100. ;;
  101. --fixmac)
  102. shift
  103. FIX_MAC=$1
  104. shift
  105. ;;
  106. --aiui_auth_id)
  107. shift
  108. AIUI_AUTH_ID=$1
  109. shift
  110. ;;
  111. --exec_in_board)
  112. shift
  113. EXEC_IN_BOARD=$1
  114. shift
  115. ;;
  116. --ip)
  117. shift
  118. IP=$1
  119. shift
  120. ;;
  121. --startup_url)
  122. shift
  123. STARTUP_DEFAULT_URL=$1
  124. shift
  125. ;;
  126. *)
  127. # unknown option
  128. ;;
  129. esac
  130. done
  131. ## 如果EXEC_IN_BOARD为空,则将自身拷贝到目标设备再次执行
  132. if [ "$EXEC_IN_BOARD" != "true" ]; then
  133. echo "scp ./sh/boardinit.sh root@$IP:/tmp"
  134. scp ./sh/boardinit.sh root@$IP:/tmp
  135. echo "ssh root@$IP \"/tmp/boardinit.sh $PARAMETERS --exec_in_board true\""
  136. echo ""
  137. ssh root@$IP "/tmp/boardinit.sh $PARAMETERS --exec_in_board true"
  138. exit 0
  139. fi
  140. ## 固化网卡
  141. if [ "$FIX_MAC" == "true" ]; then
  142. fixmac eth0
  143. fi
  144. generate_device_info
  145. # 翻转屏幕
  146. ff_rotate right
  147. update_frpc_config