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.
159 lines
3.4 KiB
159 lines
3.4 KiB
#!/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 ""
|
|
|
|
}
|
|
|
|
function update_frpc_config() {
|
|
#
|
|
# 当前这版本的FRPC的配置文件有问题,重新生成配置文件
|
|
#
|
|
# [common]
|
|
# server_addr = {{ .Envs.FRP_SERVER_ADDR }}
|
|
# server_port = 7000
|
|
# log_file = /var/log/frpc.log
|
|
# log_level = debug
|
|
# log_max_days = 3
|
|
# login_fail_exit = false
|
|
# user = {{ .Envs.DEVICE_ID }}
|
|
#
|
|
# [ssh]
|
|
# type = tcp
|
|
# local_ip = 127.0.0.1
|
|
# local_port = 22
|
|
# remote_port = 0
|
|
|
|
|
|
echo "[common]" >/etc/frpc.ini
|
|
echo "server_addr = ${FTP_SERVER_ADDR}" >>/etc/frpc.ini
|
|
echo "server_port = 7000" >>/etc/frpc.ini
|
|
echo "log_file = /var/log/frpc.log" >>/etc/frpc.ini
|
|
echo "log_level = debug" >>/etc/frpc.ini
|
|
echo "log_max_days = 3" >>/etc/frpc.ini
|
|
echo "login_fail_exit = false" >>/etc/frpc.ini
|
|
echo "user = ${DEVICE_ID}" >>/etc/frpc.ini
|
|
echo "" >>/etc/frpc.ini
|
|
echo "[ssh]" >>/etc/frpc.ini
|
|
echo "type = tcp" >>/etc/frpc.ini
|
|
echo "local_ip = 127.0.0.1" >>/etc/frpc.ini
|
|
echo "local_port = 22" >>/etc/frpc.ini
|
|
echo "remote_port = 0" >>/etc/frpc.ini
|
|
|
|
echo "+++++++++ create /etc/frpc.ini +++++++++"
|
|
cat /etc/frpc.ini
|
|
echo ""
|
|
|
|
systemctl enable frpc.service
|
|
systemctl start frpc
|
|
|
|
}
|
|
|
|
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
|
|
|
|
# 翻转屏幕
|
|
ff_rotate right
|
|
|
|
update_frpc_config
|