[gelöst] Mailbenachrichtigung für RSYNC über SSH
- holger.lehn
- Beiträge: 81
- Registriert: 06.04.2004 22:11:38
- Wohnort: Waghäusel
[gelöst] Mailbenachrichtigung für RSYNC über SSH
Hallo,
ich tausche Daten mit Freunden aus und wir haben uns ein RSYNC / SSH Kontrukt über aus- und eingangsverzeichnisse gebaut...funktioniert auch, aber ....
Ich will, dass der Empfänger der Daten eine Mail kriegt, wenn was für ihn übertragen wurde. Über die Errorlevel kriege ich nur raus ob RSYNC ohne Fehler gearbeitet hat, aber nicht ob tatsächlich auch eine Übertragung von Daten stattgefunden hatte.
Hat jemand eine Idee wie ich das am besten hinkriege ??
BTW: Wenn jemand Interesse hat, kann ich mein Script auch gerne mal bereitstellen...das erste mal mit Funktionen, und CASE Konstukten !
ich tausche Daten mit Freunden aus und wir haben uns ein RSYNC / SSH Kontrukt über aus- und eingangsverzeichnisse gebaut...funktioniert auch, aber ....
Ich will, dass der Empfänger der Daten eine Mail kriegt, wenn was für ihn übertragen wurde. Über die Errorlevel kriege ich nur raus ob RSYNC ohne Fehler gearbeitet hat, aber nicht ob tatsächlich auch eine Übertragung von Daten stattgefunden hatte.
Hat jemand eine Idee wie ich das am besten hinkriege ??
BTW: Wenn jemand Interesse hat, kann ich mein Script auch gerne mal bereitstellen...das erste mal mit Funktionen, und CASE Konstukten !
Zuletzt geändert von holger.lehn am 06.11.2006 21:43:45, insgesamt 1-mal geändert.
Gruss
Holger
Holger
Ich würde ein Logfile vom "rsync" erstellen und anschließend verarbeiten. Damit könntest du auch die übertragenen Dateien in deinem Mail anführen.
Möglicherweise genügt es aber auch, wenn du die Anzahl der Dateien im jeweiligen Eingangsverzeichnis vergleichst:
Wenn Unterverzeichnisse auch erlaubt sind, ist es vielleicht besser "find" statt "ls" zu benutzen.
Gruß
gms
Möglicherweise genügt es aber auch, wenn du die Anzahl der Dateien im jeweiligen Eingangsverzeichnis vergleichst:
Code: Alles auswählen
OLDCOUNT=`ls -l "$INPUTFOLDER" | wc -l`
rsync ...
NEWCOUNT=`ls -l "$INPUTFOLDER" | wc -l`
if [ "$OLDCOUNT" -ne "$NEWCOUNT" ]; then
echo todo: send mail
fi
Gruß
gms
- deadeye
- Beiträge: 561
- Registriert: 14.04.2004 15:32:18
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Ukio, rechts hinterm Feld
-
Kontaktdaten:
Die Idee ist gut, schlägt aber fehl, wenn Dateien überschrieben worden aber keine neuen übertragen worden.
Mal so ne ganz wilde Idee: md5-Summen. Aber gerade mal in der manpage steht, md5sum kann nur Dateien verarbeiten. Schade. Aber vielleicht geht in der Richtung trotzdem was. Wenn man auch dabei, die verursachte Systemlast beachten sollte.
Hth,
deadeye
Mal so ne ganz wilde Idee: md5-Summen. Aber gerade mal in der manpage steht, md5sum kann nur Dateien verarbeiten. Schade. Aber vielleicht geht in der Richtung trotzdem was. Wenn man auch dabei, die verursachte Systemlast beachten sollte.
Hth,
deadeye
das würde schon auch funktionieren:deadeye hat geschrieben:Mal so ne ganz wilde Idee: md5-Summen. Aber gerade mal in der manpage steht, md5sum kann nur Dateien verarbeiten.
Code: Alles auswählen
find "$INPUTFOLDER" -ls | md5sum -
Code: Alles auswählen
OLDMD5=`find "$INPUTFOLDER" -ls | md5sum -`
rsync ...
NEWMD5=`find "$INPUTFOLDER" -ls | md5sum -`
if [ "$OLDMD5" != "$NEWMD5" ]; then
echo todo: send mail
fi
- deadeye
- Beiträge: 561
- Registriert: 14.04.2004 15:32:18
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Ukio, rechts hinterm Feld
-
Kontaktdaten:
Ich wollte erst sagen, dass ja auch nur bei neuen/gelöschten Dateien funktioniert, aber die md5-Summe wird ja auch über der Dateigröße, die in dem ls mit enthalten ist, gebildet.
Somit geht es auch für Änderungen, und zusätzlich ist ja das Änderungsdatum enthalten, und somit sollte es sogar gehen, wenn die Datei geändert wurde, aber die Größe gleich ist.
Schön.
Gruß
deadeye
Somit geht es auch für Änderungen, und zusätzlich ist ja das Änderungsdatum enthalten, und somit sollte es sogar gehen, wenn die Datei geändert wurde, aber die Größe gleich ist.
Schön.
Gruß
deadeye
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
- holger.lehn
- Beiträge: 81
- Registriert: 06.04.2004 22:11:38
- Wohnort: Waghäusel
Hi,
das sind ja interessante Vorschläge.
Die Idee mit dem Logfile hatte ich auch. Die mit MD5 klingt sehr interessant, aber ....
1. Die Zieldaten finden sich auf einem ganz anderen Rechner. Wie soll ich da die MD5 Daten über LS oder find abfragen ?
2. Es handelt sich auch um Unterordner (z.b. wollen wir quasi über Kreuz auch Backups machen,. z.B. unsere Programme und Konfigurationen /etc und so Sachen
3. Funktioniert trotz der Kommandozeile
Das löschen nicht. Im lokalen netz ohne SSH funktioniert das wunderbar.
das sind ja interessante Vorschläge.
Die Idee mit dem Logfile hatte ich auch. Die mit MD5 klingt sehr interessant, aber ....
1. Die Zieldaten finden sich auf einem ganz anderen Rechner. Wie soll ich da die MD5 Daten über LS oder find abfragen ?
2. Es handelt sich auch um Unterordner (z.b. wollen wir quasi über Kreuz auch Backups machen,. z.B. unsere Programme und Konfigurationen /etc und so Sachen
3. Funktioniert trotz der Kommandozeile
Code: Alles auswählen
rsync -avzru -e ssh /daten/transfer(holger/ausgang transfer@zielserver:/daten/transfer/holger/eingang --progress --delete
Gruss
Holger
Holger
ist auch nicht schwierig:holger.lehn hat geschrieben:Die Idee mit dem Logfile hatte ich auch. Die mit MD5 klingt sehr interessant, aber ....
1. Die Zieldaten finden sich auf einem ganz anderen Rechner. Wie soll ich da die MD5 Daten über LS oder find abfragen ?
Code: Alles auswählen
gms@gms1:~$ ssh gms4 'find /home/gms -ls | md5sum -'
ac0f6a432d83ba87b73cdc0124920ff0 -
Gruß
gms