python-aprs-beacon/install.sh

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/*