143 lines
5.3 KiB
Bash
143 lines
5.3 KiB
Bash
if [[ $EUID -ne 0 ]]; then
|
|
whiptail --title "Python APRS Beacon" --msgbox "Debe ejecutar este script como usuario ROOT" 0 50
|
|
exit 0
|
|
fi
|
|
#!/bin/bash
|
|
|
|
apps=("python3" "sudo" "curl" "sed")
|
|
|
|
for app in "${apps[@]}"
|
|
do
|
|
# Verificar la instalación de las aplicaciones
|
|
if ! dpkg -s "$app" >/dev/null 2>&1; then
|
|
# Aplicación no instalada
|
|
apt-get install -y "$app"
|
|
else
|
|
# Aplicación ya instalada
|
|
echo "$app ya está instalada"
|
|
fi
|
|
done
|
|
|
|
|
|
if [ -d "/opt/python-aprs" ]
|
|
then
|
|
rm -r /opt/python-aprs
|
|
fi
|
|
mkdir /opt/python-aprs
|
|
|
|
|
|
sudo cat > /lib/systemd/system/py-aprsb1.service <<- "EOF"
|
|
[Unit]
|
|
Description=Python APRS BEACOM1
|
|
After=network.target
|
|
|
|
[Service]
|
|
ExecStart=/usr/bin/python3 /opt/python-aprs/bcom1.py
|
|
WorkingDirectory=/opt/python-aprs/
|
|
Restart=on-failure
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
|
|
|
|
|
|
EOF
|
|
#
|
|
sudo cat > /opt/python-aprs/bcom1.py <<- "EOFB"
|
|
import socket
|
|
import time
|
|
|
|
callsign = "HP0XX-10" # Callsign
|
|
password = "12345" # aprspasscode (12345)
|
|
latitude = "08.31.27N" # DD.MM.mmN (08.31.27N)
|
|
longitude = "080.21.59W" # DDD.MM.mmW (080.21.59W)
|
|
comment = "Python APRS BEACON-1" # coment beacon
|
|
text = "Python APRS Beacon by HP3ICC" # state beacon
|
|
simbol_primary = "/" # simbol id
|
|
simbol_secundary = "r" # simbol code
|
|
serverHost = "rotate.aprs2.net" # aprs server url
|
|
serverPort = 14580 # aprs server port
|
|
every = 20 # time minute every send beacon
|
|
|
|
|
|
|
|
|
|
##############################################################################
|
|
address = f"{callsign}>APHPIB,TCPIP:"
|
|
login = f"user {callsign} pass {password} vers emq-TE1 Python APRS Beacon 1.3"
|
|
latg = latitude.replace(".", "", 1)
|
|
long = longitude.replace(".", "", 1)
|
|
packet = f"{address}!{latg}{simbol_primary}{long}{simbol_secundary}{comment}"
|
|
packet2 = f"{address}>{text}"
|
|
print(packet)
|
|
print(len(comment))
|
|
|
|
while True:
|
|
try:
|
|
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
sock.connect((serverHost, serverPort))
|
|
sock.send(f"{login}\n".encode())
|
|
sock.send(f"{packet}\n".encode())
|
|
sock.send(f"{packet2}\n".encode())
|
|
sock.close()
|
|
except Exception as e:
|
|
print(f"Error al enviar el paquete: {e}")
|
|
|
|
time.sleep(every * 60)
|
|
|
|
|
|
|
|
EOFB
|
|
cp /lib/systemd/system/py-aprsb1.service /lib/systemd/system/py-aprsb2.service
|
|
cp /lib/systemd/system/py-aprsb1.service /lib/systemd/system/py-aprsb3.service
|
|
cp /lib/systemd/system/py-aprsb1.service /lib/systemd/system/py-aprsb4.service
|
|
cp /lib/systemd/system/py-aprsb1.service /lib/systemd/system/py-aprsb5.service
|
|
cp /lib/systemd/system/py-aprsb1.service /lib/systemd/system/py-aprsb6.service
|
|
cp /lib/systemd/system/py-aprsb1.service /lib/systemd/system/py-aprsb7.service
|
|
cp /lib/systemd/system/py-aprsb1.service /lib/systemd/system/py-aprsb8.service
|
|
|
|
cp /opt/python-aprs/bcom1.py /opt/python-aprs/bcom2.py
|
|
cp /opt/python-aprs/bcom1.py /opt/python-aprs/bcom3.py
|
|
cp /opt/python-aprs/bcom1.py /opt/python-aprs/bcom4.py
|
|
cp /opt/python-aprs/bcom1.py /opt/python-aprs/bcom5.py
|
|
cp /opt/python-aprs/bcom1.py /opt/python-aprs/bcom6.py
|
|
cp /opt/python-aprs/bcom1.py /opt/python-aprs/bcom7.py
|
|
cp /opt/python-aprs/bcom1.py /opt/python-aprs/bcom8.py
|
|
|
|
sudo sed -i "s/BEACOM1/BEACOM2/g" /lib/systemd/system/py-aprsb2.service
|
|
sudo sed -i "s/BEACOM1/BEACOM3/g" /lib/systemd/system/py-aprsb3.service
|
|
sudo sed -i "s/BEACOM1/BEACOM4/g" /lib/systemd/system/py-aprsb4.service
|
|
sudo sed -i "s/BEACOM1/BEACOM5/g" /lib/systemd/system/py-aprsb5.service
|
|
sudo sed -i "s/BEACOM1/BEACOM6/g" /lib/systemd/system/py-aprsb6.service
|
|
sudo sed -i "s/BEACOM1/BEACOM7/g" /lib/systemd/system/py-aprsb7.service
|
|
sudo sed -i "s/BEACOM1/BEACOM8/g" /lib/systemd/system/py-aprsb8.service
|
|
|
|
sudo sed -i "s/bcom1/bcom2/g" /lib/systemd/system/py-aprsb2.service
|
|
sudo sed -i "s/bcom1/bcom3/g" /lib/systemd/system/py-aprsb3.service
|
|
sudo sed -i "s/bcom1/bcom4/g" /lib/systemd/system/py-aprsb4.service
|
|
sudo sed -i "s/bcom1/bcom5/g" /lib/systemd/system/py-aprsb5.service
|
|
sudo sed -i "s/bcom1/bcom6/g" /lib/systemd/system/py-aprsb6.service
|
|
sudo sed -i "s/bcom1/bcom7/g" /lib/systemd/system/py-aprsb7.service
|
|
sudo sed -i "s/bcom1/bcom8/g" /lib/systemd/system/py-aprsb8.service
|
|
|
|
sudo sed -i "s/Python APRS BEACON-1/Python APRS BEACON-1/g" /opt/python-aprs/bcom1.py
|
|
sudo sed -i "s/Python APRS BEACON-1/Python APRS BEACON-2/g" /opt/python-aprs/bcom2.py
|
|
sudo sed -i "s/Python APRS BEACON-1/Python APRS BEACON-3/g" /opt/python-aprs/bcom3.py
|
|
sudo sed -i "s/Python APRS BEACON-1/Python APRS BEACON-4/g" /opt/python-aprs/bcom4.py
|
|
sudo sed -i "s/Python APRS BEACON-1/Python APRS BEACON-5/g" /opt/python-aprs/bcom5.py
|
|
sudo sed -i "s/Python APRS BEACON-1/Python APRS BEACON-6/g" /opt/python-aprs/bcom6.py
|
|
sudo sed -i "s/Python APRS BEACON-1/Python APRS BEACON-7/g" /opt/python-aprs/bcom7.py
|
|
sudo sed -i "s/Python APRS BEACON-1/Python APRS BEACON-8/g" /opt/python-aprs/bcom8.py
|
|
|
|
sudo chmod 644 /lib/systemd/system/py-aprsb1.service
|
|
sudo chmod 644 /lib/systemd/system/py-aprsb2.service
|
|
sudo chmod 644 /lib/systemd/system/py-aprsb3.service
|
|
sudo chmod 644 /lib/systemd/system/py-aprsb4.service
|
|
sudo chmod 644 /lib/systemd/system/py-aprsb5.service
|
|
sudo chmod 644 /lib/systemd/system/py-aprsb6.service
|
|
sudo chmod 644 /lib/systemd/system/py-aprsb7.service
|
|
sudo chmod 644 /lib/systemd/system/py-aprsb8.service
|
|
|
|
systemctl daemon-reload
|
|
chmod +x /opt/python-aprs/*
|