Skrypty_do_bram/rakupgrade.sh

63 lines
1.7 KiB
Bash

#!/bin/bash
set -e
INTERFACE="enp5s0"
LOCAL_IP_SUFFIX=100
LOCAL_PATH="./WisGateOS_2.2.13_RAK_b198_RAK636.rwi"
REMOTE_PATH=" /tmp/WisGateOS_2.2.13_RAK_b198_RAK636.rwi"
REMOTE_USER="root"
SSH_OPTIONS="-o StrictHostKeyChecking=no"
echo "🔎 Pobieram MAC adres swojego interfejsu..."
OWN_MAC=$(cat /sys/class/net/${INTERFACE}/address | tr '[:lower:]' '[:upper:]')
echo "✅ Własny MAC interfejsu $INTERFACE: $OWN_MAC"
echo "🎧 Podsłuchuję DHCP pakiety, czekam na bramę..."
DEVICE_MAC=$(sudo timeout 60 tcpdump -i $INTERFACE -nn -l -v udp port 67 or udp port 68 \
2>/dev/null | \
grep -oEi '([0-9a-f]{2}:){5}[0-9a-f]{2}' | \
grep -vi "$OWN_MAC" | \
head -n1)
if [ -z "$DEVICE_MAC" ]; then
echo "❌ Nie udało się znaleźć żadnego pakietu DHCP poza własnym interfejsem."
exit 1
fi
echo "✅ Znaleziony MAC bramy: $DEVICE_MAC"
# Rozbij MAC na bajty
IFS=':' read -ra mac_bytes <<< "$DEVICE_MAC"
LAST_B1=${mac_bytes[4]}
LAST_B2=${mac_bytes[5]}
LAST_B1_DEC=$((16#${LAST_B1}))
LAST_B2_DEC=$((16#${LAST_B2}))
GATEWAY_IP="169.254.${LAST_B1_DEC}.${LAST_B2_DEC}"
LOCAL_IP="169.254.${LAST_B1_DEC}.${LOCAL_IP_SUFFIX}"
echo "🌐 Gateway IP: $GATEWAY_IP"
echo "🌐 Local IP: $LOCAL_IP"
echo "⚙️ Konfiguruję interfejs $INTERFACE..."
# Ustawiamy IP lokalne
sudo ip addr flush dev $INTERFACE
sudo ip addr add ${LOCAL_IP}/24 dev $INTERFACE
sudo ip link set $INTERFACE up
echo "✅ Interfejs skonfigurowany."
#Wgrywanie nowego FW
echo "📤 Kopiuję plik ${LOCAL_PATH} na urządzenie..."
ssh $SSH_OPTIONS ${REMOTE_USER}@${GATEWAY_IP} "cat > ${REMOTE_PATH}" < $LOCAL_PATH
echo "✅ Plik skopiowany."
ssh $SSH_OPTIONS ${REMOTE_USER}@${GATEWAY_IP} "\
sysupgrade ${REMOTE_PATH}"
echo "✅ System upgraded successfull."
echo "🎉 Wszystko gotowe!"