Zum Inhalt springen

Version 2 von autogit push

Aus Home Wiki
Version vom 13. Februar 2026, 14:40 Uhr von Saya (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Auto-Git-Push mit inotifywait und systemd

Diese Seite beschreibt, wie du Änderungen an bestimmten Dateien automatisch per Git pushen kannst.

1. Bash-Script erstellen

Speichere folgendes Script z. B. als auto-git-push.sh:

#!/bin/bash

# Zum Verzeichnis des Scripts wechseln
cd "$(dirname "$0")"

# Zu überwachende Dateien
FILES=(
  "docker-compose.yml"
  "homepage/config/settings.yaml"
  "homepage/config/services.yaml"
)

# Endlosschleife zur Überwachung
while true; do
    # Warten auf Änderungen an den Dateien
    inotifywait -e close_write "${FILES[@]}"

    # Dateien zum Git-Index hinzufügen
    git add "${FILES[@]}"

    # Prüfen, ob Änderungen vorliegen
    if ! git diff --cached --quiet; then
        # Commit erstellen und pushen
        git commit -m "Auto-update: $(date '+%Y-%m-%d %H:%M:%S')"
        git push origin main
    fi
done

2. Script ausführbar machen

chmod +x auto-git-push.sh

3. systemd-Service erstellen

Falls du mehrere Services nutzt, z. B. auto-git-push@homepage.service, achte darauf, dass du den richtigen Service neu startest:

sudo systemctl restart auto-git-push@homepage.service

Dies:

  • Stoppt den alten Prozess
  • Startet den neuen Service mit der aktualisierten Script-Version

4. Prüfen, ob alles läuft

Service-Status prüfen:

systemctl status auto-git-push@homepage.service

Live-Logs beobachten:

journalctl -u auto-git-push@homepage.service -f

Wenn du jetzt eine der überwachten Dateien änderst (z. B. settings.yaml), sollte:

  • inotifywait die Änderung erkennen
  • Das Script automatisch committen und pushen

5. Checkliste

  • ✅ Script gespeichert
  • ✅ Script ausführbar gemacht
  • ✅ systemd-Service neu gestartet
  • ✅ Logs überprüft