John's Vademecum

Try to learn something about everything, and everything about something -Thomas Huxley “Darwin's bulldog” (1824-1895)

User Tools

Site Tools


public:radio:2024:yaddnet_data_backup

This is an old revision of the document!


2024 Radio Topics

Yaddnet Data Backup

Offsite Text file backups of all DSC messages

YaDDNet UDP Mirror

def send_to_mirror(data):
    log_data = "[log];"+data
    port = 2505
    host = "aaa.bbb.ccc.ddd.eee"
    host2 = "fff.ggg.hhh.iii"
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    sock.sendto(log_data, (host, port))
    sock.sendto(log_data, (host2, port))
 
    return

Backup UDP receive and logrotate

#!/usr/bin/env python
 
import SocketServer
import socket
import threading
import re
 
import time
 
 
 
 
class ThreadedUDPRequestHandler(SocketServer.BaseRequestHandler):
 
 
    def handle(self):
        data = self.request[0].strip()
        socket = self.request[1]
        self.write_file(data)
 
 
    def write_file(self,text):
        filename = '/home/gm4slv/yaddlogs/yaddnet_udp_log.txt'
        f = open(filename, 'a+')
        log = text
        f.write(log+"\n")
        f.close()
        return
 
class ThreadedUDPServer(SocketServer.ThreadingMixIn, SocketServer.UDPServer):
    pass
 
if __name__ == "__main__":
    HOST, PORT = "", 2505
    server = ThreadedUDPServer((HOST, PORT), ThreadedUDPRequestHandler)
    ip, port = server.server_address
    server.serve_forever()
    # Start a thread with the server -- 
    # that thread will then start one
    # more thread for each request
    server_thread = threading.Thread(target=server.serve_forever)
    # Exit the server thread when the main thread terminates
    server_thread.daemon = True
    server_thread.start()
    server.shutdown()

John Pumford-Green 19/04/24 09:31 BST

Further Information

public/radio/2024/yaddnet_data_backup.1713516139.txt.gz · Last modified: 06/03/25 06:49 GMT (external edit)