Autorun für ext. Datenträger

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.737
Punkte für Reaktionen
1.646
Punkte
314

jan_gagel

Benutzer
Mitglied seit
05. Apr 2010
Beiträge
1.890
Punkte für Reaktionen
1
Punkte
0
Hallo,

ich hab mal eine doofe Frage. Und zwar hab ich zwei Backup-Jobs, die auf die gleiche Platte geschrieben werden. Im Prinzip starte ich die manuell immer nacheinander. Jetzt wollte ich das über autorun laufen lassen. Also hab ich die Platte angeschlossen und ein autorun-Skript erstellen lassen. In dem Skript hab ich dann die Zeile, mit der das Backup ausgeführt wird, einfach kopiert und auf den zweiten Backup-Job abgeändert. Beim ersten hab ich die 100 am Ende gegen eine 0 getauscht, damit der Datenträger nicht ausgeworfen wird. Beim zweiten Job ist die 100 am Ende, damit die Disk ausgeworfen wird.

Nur wird die Disk bereits nach dem ersten Job ausgeworfen, folglich fliegt der zweite Job auf die Schnauze. Was hab ich falsch gemacht? Geht das überhaupt?

Ciao Jan
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Zeig mal das Skript.
 

jan_gagel

Benutzer
Mitglied seit
05. Apr 2010
Beiträge
1.890
Punkte für Reaktionen
1
Punkte
0
#!/bin/sh
/var/packages/autorun/target/localbackup "My Backup Set 3" "/volumeUSB7/usbshare" "$1" 0
/var/packages/autorun/target/localbackup "My Backup Set 1" "/volumeUSB7/usbshare" "$1" 100
exit $?
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Das schaut eigentlich ok aus. Was sagt das Log?
 

jan_gagel

Benutzer
Mitglied seit
05. Apr 2010
Beiträge
1.890
Punkte für Reaktionen
1
Punkte
0
im autorun-log steht das:

2012-09-07 19:08:30: autorun installed
2012-09-07 19:08:31: autorun activated
2012-09-07 19:14:46: device 'sdr' - inserted, trying to find mount point
2012-09-07 19:14:52: device 'sdr' - mount point '/volumeUSB7/usbshare' found
2012-09-07 19:14:52: device 'sdr' - no script '/volumeUSB7/usbshare/autorun' found, no further actions
2012-09-07 20:07:06: device 'sdr' - inserted, trying to find mount point
2012-09-07 20:07:10: device 'sdr' - mount point '/volumeUSB7/usbshare' found
2012-09-07 20:07:11: device 'sdr' - script '/volumeUSB7/usbshare/autorun' found, executing
2012-09-07 20:07:11: device '/volumeUSB7/usbshare' - local backup 'My Backup Set 3' started
2012-09-07 20:07:28: device '/volumeUSB7/usbshare' - local backup 'My Backup Set 3' finished
2012-09-07 20:07:28: device '/volumeUSB7/usbshare' - local backup 'My Backup Set 1' started
2012-09-07 20:07:29: device '/volumeUSB7/usbshare' - local backup 'My Backup Set 1' finished
2012-09-07 20:07:29: device 'sdr' - script '/volumeUSB7/usbshare/autorun' finished, starting unmount
2012-09-07 20:07:38: device 'sdr' - unmounted and ejected
2012-09-07 20:22:28: autorun deactivated
2012-09-07 20:25:27: autorun activated
2012-09-07 20:26:19: device 'sdr' - inserted, trying to find mount point
2012-09-07 20:26:23: device 'sdr' - mount point '/volumeUSB7/usbshare' found
2012-09-07 20:26:23: device 'sdr' - script '/volumeUSB7/usbshare/autorun' found, executing
2012-09-07 20:26:23: device '/volumeUSB7/usbshare' - local backup 'My Backup Set 3' started
2012-09-07 20:26:42: device '/volumeUSB7/usbshare' - local backup 'My Backup Set 3' finished
2012-09-07 20:26:42: device '/volumeUSB7/usbshare' - local backup 'My Backup Set 1' started
2012-09-07 20:26:42: device '/volumeUSB7/usbshare' - local backup 'My Backup Set 1' finished
2012-09-07 20:26:42: device 'sdr' - script '/volumeUSB7/usbshare/autorun' finished, starting unmount
2012-09-07 20:26:51: device 'sdr' - unmounted and ejected
2012-09-07 20:49:09: autorun deactivated
2012-09-07 20:53:56: autorun activated

im Sicherungs-Log steht lediglich (in etwa):
backup job 3 started
backup job 3 finished
backup job 1 started
backup job 1 faild
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Der zweite bricht also gleich ab. Probier mal ein sleep dazwischen, vielleicht so 10s. Eventuell passiert da ja noch was bei der Sicherung und deshalb wird der zweite Job abgebrochen.
 

jan_gagel

Benutzer
Mitglied seit
05. Apr 2010
Beiträge
1.890
Punkte für Reaktionen
1
Punkte
0
funktioniert leider auch nicht. Ich hab mal einen Mitschnitt von /var/log/messages gemacht. Dort steht was, daß der Backup-Job 3 ein Problem hat, der wird aber durchgeführt...

Sep 8 09:12:22 hotplugd: hotplugd.c:832 ##### complete device hotplug!!
Sep 8 09:12:22 hotplugd: hotplugd.c (1431) ==== USB disk [sdr] plugged in ====
Sep 8 09:12:22 hotplugd: hotplugd.c:1432 goto USB disk, szDeviceName=sdr
Sep 8 09:12:22 scemd: modules/usbcopy.c:55 USBCopy - Unknown Signal: 12
Sep 8 09:12:22 kernel: [511548.530000] EXT3-fs: sdr1: couldn't mount because of unsupported optional features (240).
Sep 8 09:12:25 synolocalbkp: backup_record.c:148 SLIBCFileSetSection() BACKUP My Backup Set 3 failed, synoerr=[0x2000]
Sep 8 09:12:25 synolocalbkp: backup_record.c:179 record_updat_waiting() failed.
Sep 8 09:12:42 synolocalbkp: backup_record.c:230 SLIBCFileRemoveSection() BACKUP My Backup Set 3 failed.
Sep 8 09:12:42 synolocalbkp: backup_record.c:258 record_updat_waiting() failed.
Sep 8 09:12:53 synolocalbkp: localbkp_context_operations.c:126 SYNOBackupConfGetOne() failed!!, szBkpset=[My Backup Set 1], bkptype=[BACKUP_TYPE_NETBKP], synoerr=[0x5000]
Sep 8 09:12:53 synolocalbkp: localbkp_context_operations.c:177 context_tmppath_create() failed.
Sep 8 09:12:53 synolocalbkp: main.c:521 localbkp_context_init() failed.
Sep 8 09:12:53 synolocalbkp: bkp_conf_update.c:8 Input bad parameter.
Sep 8 09:12:53 synolocalbkp: main.c:675 SYNOLocalBkpConfUpdate() failed!!
Sep 8 09:12:53 synolocalbkp: backup_record.c:230 SLIBCFileRemoveSection() BACKUP My Backup Set 1 failed.
Sep 8 09:12:53 synolocalbkp: backup_record.c:258 record_updat_waiting() failed.
Sep 8 09:13:04 hotplugd: ##### ACTION:remove
Sep 8 09:13:04 hotplugd: DEVNAME:sdr
Sep 8 09:13:04 hotplugd: DEVICE:/proc/bus/usb/001/020
Sep 8 09:13:04 hotplugd: DEVPATH:sdr
Sep 8 09:13:04 hotplugd: SUBSYSTEM:block
Sep 8 09:13:04 hotplugd: PHYSDEVPATH:/devices/platform/orion-ehci.0/usb1/1-1/1-1.2/1-1.2.3/1-1.2.3:1.0/host9/target9:0:0/9:0:0:0
Sep 8 09:13:04 hotplugd: hotplugd.c (1450) ==== USB disk [sdr] plugged out====
Sep 8 09:13:04 hotplugd: SYNOReadOneSectorFromDev(56): failed to open device [/dev/sdr] (errno = 6)
Sep 8 09:13:04 hotplugd: SYNOReadOneSectorFromDev(56): failed to open device [/dev/sdr] (errno = 6)
Sep 8 09:13:04 hotplugd: usbbkp_is_dev_bkp_disk.c:85 SYNOReadOneSectorFromDev failed. szDevPath=[sdr], errno=[0x0900]
Sep 8 09:13:04 hotplugd: volume_parts_info_get_by_dev.c:318 failed to get disk '/dev/sdr' size
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Dann hab ich auch keine Idee weiter. Wirst Du wohl die beiden Jobs zusammenlegen müssen.
 

jan_gagel

Benutzer
Mitglied seit
05. Apr 2010
Beiträge
1.890
Punkte für Reaktionen
1
Punkte
0
schade. Zusammenlegen bedeutet, es werden alle Daten erneut komplett (tagelang) gesichert. TimeBackup kann man nicht mit autorun starten, oder? Sonst würde ich die TimeBackup-Platten mit autorun ausstatten
 

jan_gagel

Benutzer
Mitglied seit
05. Apr 2010
Beiträge
1.890
Punkte für Reaktionen
1
Punkte
0
ich hab gerade auf einem USB-Stick (mit bereits angelegtem Backup-Job) autorun konfiguriert und den Stick angeschlossen. Er soll nicht ausgeworfen werden, was ja auch funktioniert. Meine Beobachtung war wie folgt:
- Einstecken des Stick
- DS erkennt den Stick
- autorun-Skript läuft an
- DS piept und LED wird auf Orange geschaltet
- DS-Platten rappeln
- DS piept und LED wird wieder auf Grün geschaltet
- DS-Platten rappeln stärker
- USB-Stick arbeitet heftig
- nach einiger Zeit kommt dann das EMail und Ereignis im DSM Desktop, Sicherung ist fertig

Das gibt mir zu denken. Wird das Skript abgearbeitet und der Backup-Job läuft im Hintergrund? Wird von autorun überwacht, bis der Prozess beendet ist? Wenn das Skript durchläuft, ohne abzuwarten, bis die jeweiligen Ereignisse abgearbeitet sind (wie es ausschaut), wird der Stick ja sehr schnell versucht auszuwerfen. Deshalb kann es zu dem von mir berichteten Problem kommen.

- Skript läuft und wirft den Backup-Job an, wirft anschließend den Stick aus. Das wird wohl überwacht, solange der Backup-Job läuft wird das Auswerfen wohl pausiert. Ist der Job fertig, wird das Medium ausgeworfen. Im Skript wird dann bei mir der nächste Job angeschmissen, was natürlich nicht funktioniert, da das Ziel-Medium nicht mehr da ist.
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Am Ende wird nur "/usr/syno/bin/synolocalbkp -b "NAME"" aufgerufen, der Rest drumherum ist nur Logging und Fehlerbehandlung. Eigentlich sollte das warten, bis das Backup fertig ist. Hat sich das in 4.1 geändert (bin noch auf 4.0)?

TimeBackup ginge auch, da musst Du "/usr/syno/bin/timebkp create_version --unique NUMMER" aufrufen.
 

mapero

Benutzer
Mitglied seit
21. Feb 2011
Beiträge
33
Punkte für Reaktionen
0
Punkte
0
Zum Timebackup:
Das wird ausgelöst und läuft im Hintergrund. D.h. Der Befehl ist sofort abgeschlossen während das Backup noch läuft. Man muss selbst überprüfen ob das Backup noch am laufen ist. Hab es damals probiert aber dann keine Lust mehr gehabt. Müsste aber sicher über die pid oder irgend eine Lock-Datei machbar sein.
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Ok, das wusste ich nicht. Warten wird schwierig, weil das auch diverse Sub-Prozesse (rsync) startet. Man könnte die Ausgabe von "/usr/syno/bin/timebkp list_version --task "NAME"" pollen und dort den Status auswerten...
 

jan_gagel

Benutzer
Mitglied seit
05. Apr 2010
Beiträge
1.890
Punkte für Reaktionen
1
Punkte
0
scheint so, daß das normale Backup jetzt ähnlich funktioniert, kann das sein? Ich hab 4.1 drauf.
 

mapero

Benutzer
Mitglied seit
21. Feb 2011
Beiträge
33
Punkte für Reaktionen
0
Punkte
0
Ok, das wusste ich nicht. Warten wird schwierig, weil das auch diverse Sub-Prozesse (rsync) startet. Man könnte die Ausgabe von "/usr/syno/bin/timebkp list_version --task "NAME"" pollen und dort den Status auswerten...

Habe gerade mit herumgespielt. Dabei ist mir aufgefallen wenn ich "/usr/syno/bin/timebkp create_version --unique X" über die Konsole benutze, die komplette DS lahmgelegt wird. Ich kann mich zwar noch per SSH einloggen und im rootfs "navigieren". Sobald ich allerdings versuche auf /volume1 zu zugreifen, stürzt das Terminal ab bzw. hängt. Webinterface etc sind auch nicht mehr erreichbar. Und ein reboot/halt endet damit, dass die DS "nicht" herunterfährt und nicht mehr per telnet/ssh erreichbar ist.

Ein Backup über das Webinterface funktioniert ohne Probleme.
 

jan_gagel

Benutzer
Mitglied seit
05. Apr 2010
Beiträge
1.890
Punkte für Reaktionen
1
Punkte
0
kann es sein, daß da der dev-mapper dazwischen funkt? Der verbiegt, soweit ich weiß, das originale /volume1
 

mapero

Benutzer
Mitglied seit
21. Feb 2011
Beiträge
33
Punkte für Reaktionen
0
Punkte
0
Naja, der dürfte aber ja nicht die ganze DS lahmlegen. Ich kann ja nichtmal mehr übers Webinterface rein oder neustarten. Ging nur noch per "Stromstecker".

Ähnliches verhalten: http://www.synology-forum.de/showthread.html?22881-DS211-Systemabsturz

Muss dem ganzen mal auf den Grund gehen.
Gibt es jemand der ähnliches bei sich feststellen konnte?

Edit: Funktioniert irgendwie heute wieder. KA, was das gestern war.

PS: Hier mal meine autorun für time backup, ist sicher noch verbesserungsfähig. Ohne Gewähr und auf eigene Verantwortung. Danke an Merthos für die Idee mit dem pollen. Funktioniert.

Code:
#!/bin/sh

LOGFILE="/var/log/autorun"
TASK_NAME="BackupHome"
TASK_ID=4

log() {
       echo `date +%c` $1 >> $LOGFILE
}

log "TimeBackup $TASK_NAME started"
/usr/syno/bin/timebkp create_version --unique $TASK_ID
sleep 10
while [ "$( /usr/syno/bin/timebkp list_version --task=$TASK_NAME | grep processing )" ]
do
        sleep 10
done
log "TimeBackup $TASK_NAME finished"
sleep 5
exit 100
 
Zuletzt bearbeitet:

MI-6

Benutzer
Mitglied seit
10. Jul 2012
Beiträge
56
Punkte für Reaktionen
1
Punkte
8
Moin,

ich habe das Tool noch nicht zum laufen gebracht - unter "Create an autorun script for the local backup" bekomme ich keine Local Backups angezeigt, obwohl 2 manuelle existieren und der USB Datenträger laut autorun Protokoll (es existiert noch kein autorun Skript) und auch vom Local Backup Programm erkannt wird. Auf Reload klicken bringt auch nix.

DSM 4.1

Habe ich was übersehen?
 

Urban51

Benutzer
Mitglied seit
20. Dez 2011
Beiträge
114
Punkte für Reaktionen
0
Punkte
0
Time Backup

Hi,
hat jemand eine Idee, wie man das vernünftig mit Time Backup nutzen könnte?
Erstellen einer neuen Version ist kein Problem:
Rich (BBCode):
/usr/syno/bin/timebkp create_version --task=<taskname>
allerdings wartet die rückgabe nicht bis die version fertig erstellt worden ist, sondern gibt schon nach wenigen sekunden 0 zurück.
es müsste also eine abfrage hat, ob die version schon fertig ist. vlt mit dem list_version befehl; da steht drin, ob die letzte version schon fertig ist.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat