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.
 
 

163 lines
3.6 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 create_rc_local() {
#!/bin/bash
echo "#!/bin/bash" >/etc/rc.local
echo "cd /app/" >>/etc/rc.local
echo "./startup.sh" >>/etc/rc.local
chmod +x /etc/rc.local
echo "++++++++++ create /etc/rc.local ++++++++++"
cat /etc/rc.local
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是否为空
echo "" >/etc/device_info.env
for item in "${DEVICE_INFO[@]}"; do
echo "$item" >>/etc/device_info.env
done
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
FIX_MAC=""
PARAMETERS=$@
EXEC_IN_BOARD=false
for i in "$@"; do
case $i in
--device_info)
shift
DEVICE_INFO+=("$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 ./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
# update_frpc_config
generate_device_info
#
# 在这里下面添加一些,针对目标板定制的内容
# 例如:
# 1. 翻转屏幕
# 2. apt-get安装一些依赖包
# 3. 修复一些当前文件系统的部分BUG
#
create_rc_local
apt-get update
apt install psmisc