[gelöst] Auto restart des Dienstes mit md5sum

Bash, Shell, PHP, Python, Perl, CGI
time-walker
Posts: 48
Joined: 2006-02-15 14:17
Location: Osna

[gelöst] Auto restart des Dienstes mit md5sum

Post by time-walker » 2008-01-04 14:50

Hey Leute,

habe auf meine Server eine Shoutcast Server installiert für nen kumpel.
über ftp kann er die config dateien erreichen.
nun möchte er aber gerne auch den Server steuren, dass heisst wenn er mal die config bearbeitet möchte er natürlich den Server neustarten.
Da ich aber keinem einen Shell zugang zu meinem Server geben will, habe ich mir überlegt ein script zu schreiben, welches eine md5 checksumme erstellt von der config
und jedes mal wenn diese summe abweicht, soll der Server neugestartet werden.
Nun haperts aber bei mir aber in der Praxis, da ich noch nicht so gut shell script schreiben kann bzw nicht so richtig weiß wie ich da ran gehen sollen um aus dateien die werte die ich brauche zu lesen.

md5 checksumme erstellen

Code: Select all

find /virtual/webimperia.de/sc1/ -type f | xargs md5sum > /tmp/sc.md5

ausgabe wenn md5 checksumme übereinstimmt:

Code: Select all

/var/www/virtual/user1/sc1/sc_trans.conf: OK
/var/www/virutal/user1/sc1/sc_serv.conf: OK

nicht ok:

Code: Select all

/var/www/virtual/user1/sc1/sc_trans.conf: OK
/var/www/virutal/user1/sc1/sc_serv.conf: FEHLSCHLAG
md5sum: Warnung: 1 von 2 berechneten Prüfsumme passten NICHT


aktueller stand des scriptes:

Code: Select all

#!/bin/bash
# md5 file
MD5FILE=/tmp/sc1.md5
# Pfad zu den config dateien
CONFDIR=/var/www/virtual/user1/sc1/

function createmd5() {
find $CONFDIR -type f | xargs md5sum > $MD5FILE   
}

function checkmd5file() {
md5sum -c $MD5FILE
}

rueckgabe=checkmd5file
if nicht ok , mache -> /etc/init.d/shoutcast1 restart;
und erstelle neue checksumme;
else tuhe nix;

return 0;
Last edited by time-walker on 2008-01-05 22:17, edited 1 time in total.

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Auto restart des Dienstes mit md5sum

Post by Roger Wilco » 2008-01-04 15:41

time-walker wrote:Da ich aber keinem einen Shell zugang zu meinem Server geben will, habe ich mir überlegt ein script zu schreiben, welches eine md5 checksumme erstellt von der config
und jedes mal wenn diese summe abweicht, soll der Server neugestartet werden.

Warum so kompliziert? Es reicht doch die ctime oder mtime zu überprüfen. Wenn die Datei bearbeitet wurde, verändert sich auch dieses Attribut.

time-walker
Posts: 48
Joined: 2006-02-15 14:17
Location: Osna

Re: Auto restart des Dienstes mit md5sum

Post by time-walker » 2008-01-04 15:43

hmm stimmt auch, könntes mir dabei ein bisschen behilflich sein ?
wie könnte es denn ungefähr aussehen bzw ababschnitt ?

die frage wäre nun für mich wie krieg ich nun die zeit aus der ausgabe ausgelesen bzw. in deine datei geschrieben ?

oder ich schreibe den die uhrzeit in einer variable im script und wenn die sich ändert sollte, soll der dienst neugestartet werden und der variablen eintrag geändert werden im script.
könnte mir da einer ein beispiel geben ?

simcen
RSAC
Posts: 338
Joined: 2003-02-12 14:35
Location: Bern, Schweiz

Re: Auto restart des Dienstes mit md5sum

Post by simcen » 2008-01-04 18:52

Hatte mal eine ähnliche Anforderung, allerdings das Problem das es beim Restart und zugleichem Schreiben der Datei zu Konflikten geführt hat.
Allerdings weiss ich nicht wie Shoutcast damit umgeht.

Hatte damals folgende Lösung:
1. Per FTP wurde nach fertigem Hochladen/Bearbeiten eine Datei mit dem Namen "restart" erstellt
2. Ein Skript checkt alle x Minuten (hierbei kann das Interval relativ kurz gehalten werden), ob diese Datei existiert
3. Wenn ja, Restarte Daemon XY und lösche die "restart"-Datei

Du musst nur dafür sorgen, dass das Kontrollscript nicht "abschmiert". Ausserdem lässt es sich problemlos mit "stop" und "start" (oder weiteren Kommandos) erweitern.

Bsp. um die Existenz einer Datei zu prüfen:

Code: Select all

if [ -f /pfad/zur/datei ]; then
  echo "Datei existiert"
fi

time-walker
Posts: 48
Joined: 2006-02-15 14:17
Location: Osna

Re: Auto restart des Dienstes mit md5sum

Post by time-walker » 2008-01-05 13:21

Ich hab das problem beim init script, das es einfach mitten drin abbricht

http://www.rootforum.org/forum/view ... 32&t=48024