#!/bin/bash function fixmac() { #!/bin/bash if [ $# -ne 1 ]; then echo "Usage: $0 netcardname" exit 1 fi netcardname=$1 linkfilename=/etc/systemd/network/20-fixedmac-${netcardname}.link mac=$(ifconfig ${netcardname} | grep ether | awk '{print $2}') echo "[Match]" >${linkfilename} echo "OriginalName=${netcardname}" >>${linkfilename} echo "" >>${linkfilename} echo "[Link]" >>${linkfilename} echo "MACAddress=${mac}" >>${linkfilename} echo "++++++++++ create ${linkfilename} ++++++++++" cat ${linkfilename} echo "" } function generate_device_info() { # # /etc/device_info.env # DEVICE_ID=IFLYTOP_UNINITIALIZED # FRP_SERVER_ADDR=127.0.0.1 # # 判断DEVICE_ID和FRP_SERVER_ADDR是否为空 if [ -z "$DEVICE_ID" ]; then echo "DEVICE_ID is empty" exit 1 fi if [ -z "$FTP_SERVER_ADDR" ]; then echo "FTP_SERVER_ADDR is empty" exit 1 fi echo "DEVICE_ID=${DEVICE_ID}" >/etc/device_info.env echo "FRP_SERVER_ADDR=${FTP_SERVER_ADDR}" >>/etc/device_info.env echo "+++++++++ create /etc/device_info.env +++++++++" cat /etc/device_info.env echo "" } set -e DEVICE_ID="" FTP_SERVER_ADDR="" FIX_MAC="" PARAMETERS=$@ EXEC_IN_BOARD=false for i in "$@"; do case $i in --deviceId) shift DEVICE_ID=$1 shift ;; --ftpserver) shift FTP_SERVER_ADDR=$1 shift ;; --fixmac) shift FIX_MAC=$1 shift ;; --exec_in_board) shift EXEC_IN_BOARD=$1 shift ;; --ip) shift IP=$1 shift ;; *) # unknown option ;; esac done ## 如果EXEC_IN_BOARD为空,则将自身拷贝到目标设备再次执行 if [ "$EXEC_IN_BOARD" != "true" ]; then echo "scp ./sh/boardinit.sh root@$IP:/tmp" scp ./sh/boardinit.sh root@$IP:/tmp echo "ssh root@$IP \"/tmp/boardinit.sh $PARAMETERS --exec_in_board true\"" echo "" ssh root@$IP "/tmp/boardinit.sh $PARAMETERS --exec_in_board true" exit 0 fi ## 固化网卡 if [ "$FIX_MAC" == "true" ]; then fixmac eth0 fi generate_device_info