Zum Inhalt springen

Version 2 von autogit push: Unterschied zwischen den Versionen

Aus Home Wiki
Die Seite wurde neu angelegt: „#!/bin/bash cd "$(dirname "$0")" FILES=( "docker-compose.yml" "homepage/config/settings.yaml" "homepage/config/services.yaml" ) while true; do inotifywait -e close_write "${FILES[@]}" git add "${FILES[@]}" if ! git diff --cached --quiet; then git commit -m "Auto-update: $(date '+%Y-%m-%d %H:%M:%S')" git push origin main fi done“
 
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
= 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''':
<syntaxhighlight lang="bash">
#!/bin/bash
#!/bin/bash


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


# Zu überwachende Dateien
FILES=(
FILES=(
   "docker-compose.yml"
   "docker-compose.yml"
Zeile 9: Zeile 20:
)
)


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


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


    # Prüfen, ob Änderungen vorliegen
     if ! git diff --cached --quiet; then
     if ! git diff --cached --quiet; then
        # Commit erstellen und pushen
         git commit -m "Auto-update: $(date '+%Y-%m-%d %H:%M:%S')"
         git commit -m "Auto-update: $(date '+%Y-%m-%d %H:%M:%S')"
         git push origin main
         git push origin main
     fi
     fi
done
done
</syntaxhighlight>
== 2. Script ausführbar machen ==
<syntaxhighlight lang="bash">
chmod +x auto-git-push.sh
</syntaxhighlight>
== 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:
<syntaxhighlight lang="bash">
sudo systemctl restart auto-git-push@homepage.service
</syntaxhighlight>
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:'''
<syntaxhighlight lang="bash">
systemctl status auto-git-push@homepage.service
</syntaxhighlight>
'''Live-Logs beobachten:'''
<syntaxhighlight lang="bash">
journalctl -u auto-git-push@homepage.service -f
</syntaxhighlight>
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

Aktuelle Version vom 13. Februar 2026, 14:40 Uhr

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