sb11
(Themenstarter)
Anmeldungsdatum: 8. Februar 2009
Beiträge: Zähle...
|
Hallo Vej, du hast natürlich Recht. Es ist besser das selber mal zu lernen, als es vorgekaut zu bekommen. Ich habe mal mit dem Script angefangen. Da ich aber wie gesagt absoluter Noob bin, würde ich mich freuen, wenn mal jemand über das Script schauen könnte, ob das prinzipiell Sinn macht: #!/bin/bash
# Identifikation der Platte
DISK=backup2
# Log File
LOG=/home/me/System/Logs/backup.log
if [ -e /dev/$DISK ]
then
echo $(date) $DISK '- udev erfolgreich' >> $LOG
mount /dev/$DISK /mnt/$DISK
if [ $? -eq 0 ]
then
echo $(date) $DISK '- mount erfolgreich' >> $LOG
# hier kommt rsnapshot
umount /mnt/$DISK
if [ $? -eq 0 ]
then
echo $(date) $DISK '- unmount erfolgreich' >> $LOG
sleep 5s
hdparm -y /dev/$DISK
if [ $? -eq 0 ]
then
echo $(date) $DISK '- standby erfolgreich' >> $LOG
echo $(date) $DISK '- Backup erfolgreich abgeschlossen' >> $LOG
else
echo $(date) $DISK '- standby nicht erfolgreich' >> $LOG
fi
else
echo $(date) $DISK '- unmount nicht erfolgreich' >> $LOG
fi
else
echo $(date) $DISK '- mount nicht erfolgreich' >> $LOG
fi
else
echo $(date) $DISK '- udev nicht erfolgreich' >> $LOG
fi
exit Das funktioniert schonmal prima - nur Erfolgsmeldungen im Logfile. 2 Fragen hätte ich noch: 1. Kann ich den Return Code der rsnapshot Sicherung analog abfragen, also mittels: if [ $? -eq 0 ] 2. Ich würde gerne ganz am Schluss im Erfolgsfall eine Meldung auf dem GUI ausgeben. Ich habe schon diverse Varianten mit notify-send ausprobiert, aber keine hat funktioniert. Hat jemand 'ne Idee, wie ich eine GUI Meldung aus dem udev Script ausgeben kann. Danke und Grüsse!
|
Benno-007
Anmeldungsdatum: 28. August 2007
Beiträge: 29240
Wohnort: Germany
|
Hat jemand 'ne Idee, wie ich eine GUI Meldung aus dem udev Script ausgeben kann.
Mit Zenity nach diesem Beispiel im Abschnitt cron#Eine-Crontab-fuer-einen-Benutzer-einrichten, 2. Codeblock.
|
sb11
(Themenstarter)
Anmeldungsdatum: 8. Februar 2009
Beiträge: Zähle...
|
Hallo zusammen, ich habe mal das folgende Script getestet: #!/bin/bash
# Identifikation der Platte
DISK=backup2
# Log File
LOG=/home/me/System/Logs/backup.log
if [ -e /dev/$DISK ]
then
echo $(date) $DISK '- udev erfolgreich' >> $LOG
mount /dev/$DISK /mnt/$DISK
if [ $? -eq 0 ]
then
echo $(date) $DISK '- mount erfolgreich' >> $LOG
rsnapshot -c /home/me/System/Config/$DISK.conf daily
umount /mnt/$DISK
if [ $? -eq 0 ]
then
echo $(date) $DISK '- unmount erfolgreich' >> $LOG
sleep 5s
hdparm -y /dev/$DISK
if [ $? -eq 0 ]
then
echo $(date) $DISK '- standby erfolgreich' >> $LOG
echo $(date) $DISK '- Backup erfolgreich abgeschlossen' >> $LOG
else
echo $(date) $DISK '- standby nicht erfolgreich' >> $LOG
fi
else
echo $(date) $DISK '- unmount nicht erfolgreich' >> $LOG
fi
else
echo $(date) $DISK '- mount nicht erfolgreich' >> $LOG
fi
else
echo $(date) $DISK '- udev nicht erfolgreich' >> $LOG
fi
exit Der Snapshot wird erfolgreich erstellt, d.h. das rsnapshot Log in /var/logs/rsnapshot enthält nur Erfolgsmeldungen und die Daten auf der Backup-Platte sehen auch gut aus. Allerdings wird mein o.g. Script nicht weiter ausgeführt, d.h. kein umount usw. In meinem eigenen Log in /home/me/System/Logs/backup.log steht als letzte Meldung "mount erfolgreich". Mir ist aufgefallen, dass in /var/logs/rsnapshot bereits zu einem Zeitpunkt x drin steht, dass der Snapshot erfolgreich abgeschlossen ist. Zum Zeitpunkt x konnte ich aber deutlich hören, dass die Backup-Platte noch arbeitet. Versuche ich den umount Befehl zu früh auszuführen? Wie kann ich im Script abfragen, dass rsnapshot sicher fertig ist, um erst dann den umount Befehl auszuführen? Danke und Grüsse! P.S.: Danke für den Zenity Tipp - probiere ich heute Abend aus.
|
sb11
(Themenstarter)
Anmeldungsdatum: 8. Februar 2009
Beiträge: 109
|
Benno-007 schrieb: Hat jemand 'ne Idee, wie ich eine GUI Meldung aus dem udev Script ausgeben kann.
Mit Zenity nach diesem Beispiel im Abschnitt cron#Eine-Crontab-fuer-einen-Benutzer-einrichten, 2. Codeblock.
Ich habe einen Test mit cron gemacht - da kommt das zenity Popup. Wenn ich den gleichen Befehl im udev Script verwende, kommt allerdings kein Popup. Noch jemand eine Idee, wie man es machen könnte?
|
Vej
Moderator, Supporter
Anmeldungsdatum: 7. März 2013
Beiträge: 3391
|
Hallo sb11, vielleicht hilft es wenn du mit dev eine Loginshell startest, in der das Skript ausgeführt wird: /bin/bash --login /PFAD/ZUM/SKRIPT.bash Nur so eine Idee. Viele Grüße Vej
|
sb11
(Themenstarter)
Anmeldungsdatum: 8. Februar 2009
Beiträge: 109
|
Vej schrieb: Hallo sb11, vielleicht hilft es wenn du mit dev eine Loginshell startest, in der das Skript ausgeführt wird: /bin/bash --login /PFAD/ZUM/SKRIPT.bash Nur so eine Idee. Viele Grüße Vej
Hallo Vej, ich nehme an, das soll das zenity Problem lösen, oder? Falls ja, würde ich das demnächst mal testen. Allerdings ist das GUI Popup auch nicht unbedingt das aller wichtigste. Wichtiger für mich wäre, dass nach dem rsnapshot ein sauberer Unmount gemacht wird. Ich hab noch mal das folgende probiert: rsnapshot -c /home/me/System/Config/$DISK.conf daily && sleep 10s
umount /mnt/$DISK Aber auch bei der Variante wird der rsnapshot erfolgreich abgeschlossen, aber kein Unmount gemacht. Hat noch jemand 'ne Idee, wie ich es hinbekommen kann, dass das Script nach dem rsnapshot sauber weiter läuft? Danke und Grüsse!
|
Vej
Moderator, Supporter
Anmeldungsdatum: 7. März 2013
Beiträge: 3391
|
Doppelpost wegen technischer Probleme. Entfernt.
|
Vej
Moderator, Supporter
Anmeldungsdatum: 7. März 2013
Beiträge: 3391
|
Hallo sb11. sb11 schrieb: Hallo Vej, ich nehme an, das soll das zenity Problem lösen, oder?
Ja genau. Wichtiger für mich wäre, dass nach dem rsnapshot ein sauberer Unmount gemacht wird. Ich hab noch mal das folgende probiert: rsnapshot -c /home/me/System/Config/$DISK.conf daily && sleep 10s
umount /mnt/$DISK Aber auch bei der Variante wird der rsnapshot erfolgreich abgeschlossen, aber kein Unmount gemacht.
Kannst du mal versuchen evtl. auftretende Fehlermeldungen zu loggen? Dazu einfach jedem Befehl die Ausgabeumleitung >> $LOG 2>&1 hintenan stellen. Viele Grüße Vej Edit: Ausgabeumleitung korrigiert, da wir ja auch an der Errorausgabe interessiert sind.
|
Benno-007
Anmeldungsdatum: 28. August 2007
Beiträge: 29240
Wohnort: Germany
|
Bin nur am Handy, aber falls du mit cd im Ordner stehst, klappt umount nicht.
|
sb11
(Themenstarter)
Anmeldungsdatum: 8. Februar 2009
Beiträge: 109
|
Benno-007 schrieb: Bin nur am Handy, aber falls du mit cd im Ordner stehst, klappt umount nicht.
umount ist Teil meines UDEV Skriptes.
|
Benno-007
Anmeldungsdatum: 28. August 2007
Beiträge: 29240
Wohnort: Germany
|
Wechsle mal davor mit cd aus dem Pfad raus, weil den das Backuptool/ Script vielleicht intern mit einem cd verändert hat. Sonst siehe Vej.
|
sb11
(Themenstarter)
Anmeldungsdatum: 8. Februar 2009
Beiträge: 109
|
Benno-007 schrieb: Wechsle mal davor mit cd aus dem Pfad raus, weil den das Backuptool/ Script vielleicht intern mit einem cd verändert hat.
Sorry, ich verstehe nicht was du meinst. Kannst du etwas konkreter schreiben, was ich machen soll. Ich habe noch versucht jedem Befehl die Ausgabeumleitung >> $LOG 2>&1 anzuhängen. Leider ohne Erfolg. Noch andere Ideen, was ich machen kann? Danke und Grüsse!
|
Vej
Moderator, Supporter
Anmeldungsdatum: 7. März 2013
Beiträge: 3391
|
Halo sb11. sb11 schrieb:
Ich habe noch versucht jedem Befehl die Ausgabeumleitung >> $LOG 2>&1 anzuhängen. Leider ohne Erfolg.
Bedeutet das, dass die Logdatei (/home/me/System/Logs/backup.log) keine neuen Einträge enthält (das ist nämlich der einzige Sinn der Ausgabeumleitung) ? Viele Grüße Vej
|
sb11
(Themenstarter)
Anmeldungsdatum: 8. Februar 2009
Beiträge: 109
|
Vej schrieb: Halo sb11. sb11 schrieb:
Ich habe noch versucht jedem Befehl die Ausgabeumleitung >> $LOG 2>&1 anzuhängen. Leider ohne Erfolg.
Bedeutet das, dass die Logdatei (/home/me/System/Logs/backup.log) keine neuen Einträge enthält (das ist nämlich der einzige Sinn der Ausgabeumleitung) ? Viele Grüße Vej
Ja, das hatte ich richtig verstanden. Meine Log-Datei enthält nur die Einträge, die ich per echo selbst reinschreibe. Viele Grüsse!
|
Benno-007
Anmeldungsdatum: 28. August 2007
Beiträge: 29240
Wohnort: Germany
|
sb11 schrieb: Benno-007 schrieb:
Wechsle mal davor mit cd aus dem Pfad raus, weil den das Backuptool/ Script vielleicht intern mit einem cd verändert hat. Sorry, ich verstehe nicht was du meinst. Kannst du etwas konkreter schreiben, was ich machen soll.
cd
|