Zusammenfassung der vorgenommenen Änderungen und Konfigurationen
Inhaltsverzeichnis
Zusammenfassung der vorgenommenen Änderungen und Konfigurationen
Dieses Dokument fasst die wichtigsten Änderungen und Konfigurationen zusammen, die wir besprochen und durchgeführt haben.
1. Python Logging (sync.py und logging_config.py)
Um die Log-Ausgabe des sync.py-Skripts zu verbessern, wurde eine modulare Logging-Konfiguration mit Log-Rotation erstellt und in eine separate Datei ausgelagert.
logging_config.py erstellt
Zweck: Enthält die Funktion setup_logging() zur Konfiguration eines Root-Loggers, der Logs in eine Datei (sync_log.log) schreibt, diese bei Erreichen einer Größe von 5 MB rotiert und 5 Backups behält. Optional kann auch ein Konsolen-Logger aktiviert werden.
Inhalt der Datei (/home/jonnybravo/Projekte/python_tests/rclone/logging_config.py):
import logging
from logging.handlers import RotatingFileHandler, TimedRotatingFileHandler
import os
def setup_logging(console_logging=False):
"""Konfiguriert das Root-Logging für die Anwendung mit Rotation.
Diese Funktion richtet einen Root-Logger ein, der Log-Nachrichten in eine Datei schreibt,
welche bei Erreichen einer bestimmten Größe rotiert wird.
:param console_logging: Wenn True, werden Logs zusätzlich zur Datei auch auf der Konsole ausgegeben.
Standardmäßig ist dies deaktiviert (False).
"""
# --- Allgemeine Einstellungen ---
log_file = "sync_log.log" # Name der Log-Datei
# Maximale Größe der Log-Datei in Bytes, bevor sie rotiert wird (hier 5 MB)
max_log_size = 5 * 1024 * 1024
# Anzahl der rotierenden Backup-Dateien, die behalten werden sollen (hier 5)
backup_count = 5
# --- Logger-Initialisierung ---
logger = logging.getLogger()
if logger.hasHandlers():
return
# --- Logging-Level einstellen ---
# Mögliche Levels: DEBUG, INFO, WARNING, ERROR, CRITICAL
logger.setLevel(logging.INFO)
# --- Formatter erstellen ---
# Definiert das Layout der Log-Nachrichten.
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
# --- Handler erstellen und dem Logger hinzufügen ---
# 1. RotatingFileHandler (immer aktiv)
file_handler = RotatingFileHandler(
log_file,
maxBytes=max_log_size,
backupCount=backup_count,
encoding='utf-8'
)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
# 2. StreamHandler für Konsolen-Ausgabe (optional)
if console_logging:
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)
# --- Weitere Referenzen und alternative Handler ---
# (Ausführliche Kommentare sind in der Datei enthalten, hier gekürzt)
sync.py angepasst
Zweck: Importiert die setup_logging-Funktion und ruft sie ganz am Anfang des Skripts auf, um die Logging-Konfiguration zu initialisieren.
Relevanten Änderungen in /home/jonnybravo/Projekte/python_tests/rclone/sync.py:
from logging_config import setup_logging
# Logging so früh wie möglich einrichten
setup_logging() # Optional: setup_logging(console_logging=True) für Konsolen-Logs
from rclone_python import rclone as rc
from rclone_python.utils import RcloneException
import os
import logging
# ... (restlicher Code)
2. DNS-Konfiguration auf dem Manjaro-System
Um den AdGuard Home-Server 10.50.0.3 als primären DNS-Server für das gesamte System und alle Verbindungen zu nutzen, wurden folgende Schritte durchgeführt:
Globale systemd-resolved Konfiguration
Zweck: Setzt 10.50.0.3 als systemweiten DNS-Server für systemd-resolved.
Änderungen in /etc/systemd/resolved.conf:
[Resolve]
DNS=10.50.0.3
# FallbackDNS= # Auskommentieren oder auf FallbackDNS= setzen, um Fallback zu verhindern
Nach der Bearbeitung: sudo systemctl restart systemd-resolved
NetworkManager Überschreibung für alle Verbindungen
Zweck: Weist NetworkManager an, bei allen Netzwerkverbindungen (bestehende und neue) den vom DHCP-Server angebotenen DNS zu ignorieren. Dadurch wird der globale DNS von systemd-resolved verwendet.
Neue Datei erstellt: /etc/NetworkManager/conf.d/99-global-dns-override.conf
[connection]
# Diese Einstellung gilt für alle neuen und bestehenden Verbindungen.
# Sie weist NetworkManager an, den DNS-Server vom DHCP zu ignorieren.
ipv4.ignore-auto-dns=true
ipv6.ignore-auto-dns=true
Nach der Erstellung: sudo systemctl restart NetworkManager
Anpassung des spezifischen WLAN-Profils (SweetHome-5G)
Zweck: Hinzufügen der DNS-Suchdomäne, damit lokale Hostnamen ohne vollen Domain-Namen aufgelöst werden können.
Befehle für die Kommandozeile (nmcli): (Ersetzen Sie “Ihr Verbindungsname” durch den tatsächlichen Namen, z.B. “SweetHome-5G”)
nmcli connection modify "Ihr Verbindungsname" ipv4.dns-search "speedport.ip"
# optional für IPv6: nmcli connection modify "Ihr Verbindungsname" ipv6.dns-search "speedport.ip"
nmcli connection up "Ihr Verbindungsname"
3. AdGuard Home Konfiguration
Installation & SSL-Einrichtung
Zweck: Installation von AdGuard Home auf einem Linux-Server und Absicherung der Weboberfläche mit einem selbstsignierten SSL-Zertifikat und eigener CA.
Schritte (ausführlich in vorherigen Antworten beschrieben):
- AdGuard Home installieren (
curl ... install.sh). - Eigene CA (
MyCA.key,MyCA.pem) und Server-Zertifikat (adguard.key,adguard.crt) mitopensslerstellen, inklusive SAN-Erweiterung für IP-Adresse/lokalen Hostnamen. - Zertifikate in AdGuard Home (
adguard.crt,adguard.key) unter Einstellungen → Verschlüsselungseinstellungen konfigurieren. MyCA.pemauf Client-Geräten als vertrauenswürdige Stammzertifizierungsstelle installieren.
Bedingte Weiterleitung für lokale Namen
Zweck: Ermöglicht AdGuard Home die Auflösung lokaler Hostnamen durch Weiterleitung an den Router.
Konfiguration in der AdGuard Home Weboberfläche:
- Gehen Sie zu Einstellungen → DNS-Einstellungen.
- Im Abschnitt “Upstream-DNS-Server” die folgende Zeile hinzufügen (zusätzlich zu öffentlichen DNS-Servern):
[/speedport.ip/]192.168.50.1 - Einstellungen speichern.
4. Problembehebung WireGuard DNS
Zweck: Behebung des Konflikts, bei dem WireGuard die DNS-Einstellungen überschrieben und auf einen nicht existierenden Server (10.50.0.3 ohne installierten DNS-Dienst) gezeigt hat.
Änderung in der WireGuard-Konfigurationsdatei:
- In
/etc/wireguard/wg0.conf(im Abschnitt[Interface]) die ZeileDNS = 10.50.0.3auskommentieren oder auf einen anderen DNS-Server ändern.[Interface] # DNS = 10.50.0.3 - WireGuard neu starten:
sudo systemctl restart wg-quick@wg0(odersudo wg-quick down wg0 && sudo wg-quick up wg0).