Konfigurationsfile updatefest machen

Für Modifikationen in und um KeyHelp.
Post Reply
User avatar
Jolinar
Community Moderator
Posts: 3609
Joined: Sat 30. Jan 2016, 07:11
Location: Weimar (Thüringen)
Contact:

Konfigurationsfile updatefest machen

Post by Jolinar »

Da hier desöfteren mal Nachfragen kommen, wie man spezifische Konfigurationsparameter, welche man manuell in einzelne Configfiles eingepflegt hat, updatesicher machen kann, stelle ich mal meinen Weg vor, wie ich das löse.

Ich nutze eine altbewährte Methode, indem ich mittels diff das entsprechende Configfile mit einer (vorher angelegten) Kopie vergleiche und bei Feststellung von Unterschieden einfach durch die Kopie ersetze.

Das Ganze in ein Shellscript verpackt sieht so aus:

Code: Select all

#!/bin/bash

# Definiere das Zielverzeichnis
target_dir="/Pfad/zum/Zielverzeichnis"

# Definiere den Dateinamen der zu prüfenden Datei
filename="datei.txt"

# Definiere die Empfänger-Mailadresse
empfaenger="empfaenger@example.com"

# Pfad zur Kopie der zu prüfenden Datei
copy_path="$filename.copy"

# Wechsle ins Zielverzeichnis
cd "$target_dir" || exit

# Überprüfe, ob eine Kopie der Datei existiert, andernfalls erstelle eine Kopie
if [ ! -f "$copy_path" ]; then
    cp "$filename" "$copy_path"
fi

# Vergleiche die zu prüfende Datei mit der Kopie
diff_output=$(diff "$filename" "$copy_path")

# Überprüfe, ob Unterschiede zwischen den Dateien bestehen
if [ -n "$diff_output" ]; then
    # Ersetze die zu prüfende Datei durch die Kopie
    cp "$copy_path" "$filename"
    
    # Sende eine E-Mail
    subject="Datei $filename wurde wiederhergestellt"
    body="Die Datei $filename wurde wiederhergestellt."
    echo "$body" | mail -s "$subject" "$empfaenger"
fi
Am Anfang des Scripts müssen doch die Variablen angepaßt werden.
Das Script prüft zu Beginn, ob die Kopie schon existiert, wenn nicht, wird diese angelegt (das passiert nur beim ersten Durchlauf des Scripts). Dann prüft es auf Unterschiede, ersetzt das File, wenn nötig und schickt eine Mail bei Ersetzung (kann man rausnehmen, wenn nicht gebraucht).

Jetzt noch das Script mit chmod +x ausführbar machen und als root minütlich als Cron abfeuern.



Warnung:

Ihr solltet wissen, was ihr da macht! Im schlimmsten Fall konfiguriert ihr euch euer System kaputt!
Bedenkt bitte auch, daß Änderungen an Configfiles nicht ohne Grund passieren...es ist also nicht mit der Ersetzung getan, man muß noch manuell prüfen!
Wenn jemand inkompetent ist, dann kann er nicht wissen, daß er inkompetent ist. (David Dunning)

Data Collector für Community Support
___
Ich verwende zwei verschiedene Schriftfarben in meinen Beiträgen /
I use two different font colors in my posts:
  • In dieser Farbe schreibe ich als Moderator und gebe moderative Hinweise oder begründe moderative Eingriffe /
    In this color, I write as a moderator and provide moderative guidance or justify moderative interventions
  • In dieser Farbe schreibe ich als Community Mitglied und teile meine private Meinung und persönlichen Ansichten mit /
    In this color, I write as a community member and share my personal opinions and views
Post Reply