public:radio:2024:yaddnet_data_backup
This is an old revision of the document!
Table of Contents
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 PyYadd #import pysql import time class ThreadedUDPRequestHandler(SocketServer.BaseRequestHandler): def handle(self): data = self.request[0].strip() socket = self.request[1] self.write_file(data) #pysql.load_logger("UDP", "%s : %s" % (data.split(";")[0][1:-1], self.client_address[0])) def write_file(self,text): filename = '/home/gm4slv/yaddlogs/yaddnet_udp_log.txt' f = open(filename, 'a+') #timenow = time.strftime("%d/%m/%Y %H:%M:%S", time.gmtime(time.time())) log = text #log = " ".join((timenow, text)) #print log f.write(log+"\n") f.close() return class ThreadedUDPServer(SocketServer.ThreadingMixIn, SocketServer.UDPServer): pass if __name__ == "__main__": #pysql.load_logger("yUDPSERV", "Starting YaDD UDP interface....") 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.1713516034.txt.gz · Last modified: 06/03/25 06:49 GMT (external edit)