Überwachen Sie kontinuierlich den USB-Verbindungsstatus

Überwachen Sie kontinuierlich den USB-Verbindungsstatus

Ich habe ein Problem mit dem USB-Anschluss. Wenn ich ein mobiles Gerät an den USB-Anschluss meines PCs anschließe, wird die Verbindung manchmal getrennt und sofort wieder hergestellt. Deshalb möchte ich den Status der USB-Verbindung kontinuierlich überwachen. Gibt es eine Möglichkeit, den Verbindungsstatus live zu überwachen?

Es wäre gut, wenn man die Protokolldatei auch nur mit dem USB-Verbindungsstatus abrufen könnte

Antwort1

Sie könnten dies mit pyudeveinem Python-Skript tun, das USB-Verbindungen überwacht, die Ereignisse in einer Datei protokolliert und die Ereignisse auf der Konsole ausdruckt.

Beginnen Sie mit der Installation des Paketspip install pyudev

dann ist hier das Skript:

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)

verwandte Informationen