Supervise continuamente el estado de la conexión USB

Supervise continuamente el estado de la conexión USB

Tengo un problema con el puerto USB. Cuando conecto un dispositivo móvil al puerto USB de mi PC, a veces se desconecta y se conecta inmediatamente. Por eso quiero monitorear el estado de la conexión USB continuamente. ¿Hay alguna manera de poder monitorear el estado de la conexión en vivo?

Sería bueno si pudiera obtener el archivo de registro también con solo el estado de la conexión USB.

Respuesta1

Puede hacerlo con pyudevun script de Python que monitoree las conexiones USB, registre los eventos en un archivo e imprima los eventos en la consola.

Comience instalando el paquete.pip install pyudev

entonces aquí está el guión:

import os
import sys
import pyudev

from datetime import datetime

def log_event(event_type, device):
    timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    message = f"{timestamp} - {event_type}: {device.get('ID_SERIAL_SHORT') or device.get('ID_SERIAL')} - {device.get('ID_MODEL')}"

    with open("usb_connection_log.txt", "a") as log_file:
        log_file.write(message + "\n")

    print(message)

def monitor_usb_events():
    context = pyudev.Context()
    monitor = pyudev.Monitor.from_netlink(context)
    monitor.filter_by(subsystem='usb')

    for action, device in monitor:
        if action == 'add' and 'ID_SERIAL' in device:
            log_event("Connected", device)
        elif action == 'remove' and 'ID_SERIAL' in device:
            log_event("Disconnected", device)

if __name__ == "__main__":
    try:
        monitor_usb_events()
    except KeyboardInterrupt:
        print("\nMonitoring stopped.")
        sys.exit(0)

información relacionada