Autorun für ext. Datenträger

Urban51

Benutzer
Mitglied seit
20. Dez 2011
Beiträge
114
Punkte für Reaktionen
0
Punkte
0
ich wollte gerne verschiedene versionen eines backups haben. siehe time backup. geht time backup jetzt mit autorun? ich find kein script analog zu localbackup.

mein trick für mehrere versionen mit localbackup:
DSM 3.2:
-mehrere identische aufgaben erstellen und alle in den gleichen INTERNEN (neuen) ordner sichern lassen.
-per skript diesen ordner mit verschiedenen ordnern auf der EXTERNEN platte mounten
-per skript gucken, welche aufgabe zuletzt ausgeführt wurde (zb datei mit abgespeicherter nummer) und entsprechend die nächste ausführen

DSM 4.0:
-hier kann man gleich unterordner auf der externen platte für jede aufgabe anlegen
-also per skript nur gucken, welche zuletzt ausgeführt wurde und entsprechend die nächste ausführen

nachteil dieser lösung: die daten werden n mal komplett abgespeichert und nicht immer nur die differenzen der einzelnen versionen.

siehe auch: ausführliche anleitung in meinem blog
 

Urban51

Benutzer
Mitglied seit
20. Dez 2011
Beiträge
114
Punkte für Reaktionen
0
Punkte
0
ich habe aus spaß mal timebackup genauer angeguckt und siehe da: der zeitplan für das erstellen neuer versionen bewirkt nichts anderes als einen crontab eintrag:
Rich (BBCode):
/usr/syno/bin/timebkp create_version --unique 1
wobei 1 die nummer der aufgabe ist. vorsicht: nicht die nummer in der aufgabenliste, sondern aller jemals angelegten aufgaben. also am besten im eigenen /etc/crontab prüfen.
das kann man natürlich so im terminal starten und sieht auch direkt die neue version im webgui. scheint auch bei erfolg 0 zurückzugeben, also schick im autorun skript integrierbar.
aus folgenden gründen hab ich aber nicht bis zu letzt ausprobiert und eingerichtet:
  • Timebackup kann nur Gemeinsame Ordner sichern und keine Anwendungen oder Einstellungen
  • Unterordner nicht abwählbar
  • normales Backup braucht den kompletten photo Ordner, um Photo Station und Blog zu sichern
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
@Urban51
Da für sich selbst ein Skript zu erstellen ist kein Problem, hast Du ja selbst gesehen. Um das aber richtig zu integrieren müsste das in die GUI mit rein. Das wird dann schon aufwändiger und da ich diese Funktion selbst nicht brauche, steht es auch nicht sonderlich weit oben auf meiner TODO-Liste. :p

@Lifeform
Kommt auch mit auf die TODO-Liste...
 

Urban51

Benutzer
Mitglied seit
20. Dez 2011
Beiträge
114
Punkte für Reaktionen
0
Punkte
0
danke, dass du das gleich als entwicklungshinweis aufgefasst hast. aber so meinte ich das gar nicht. das sollte nur ein tipp für andere begeisterte benutzer sein.
aber meine bitte steht: schreib doch bitte in eine readme, wie man dein log nutzt. dann muss man nicht in dein localbackup skript spionieren gehen.
 

MattDS

Benutzer
Mitglied seit
06. Jan 2012
Beiträge
207
Punkte für Reaktionen
16
Punkte
24
Benutze seit dem Wochenende nun auch das autorun packet für meine Backups und möchte hier mal ganz herzlich Danke sagen!

:)
 

Miniman76

Benutzer
Mitglied seit
22. Jul 2011
Beiträge
19
Punkte für Reaktionen
0
Punkte
1
Auch ich möchte DANKE!!!! sagen, klasse Arbeit. Noch nie war ein Backup so einfach, Platte einstecken und los geht es.....
 

Call911

Benutzer
Mitglied seit
10. Mai 2012
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Ich möchte mich erstmal ganz herzlich bedanken. Das Programm ist einfach, schlicht und macht genau das wonach ich gesucht habe.
Ein automatisiertes Backup! Per Zeitschaltuhr schalte ich meine USB-Festplatte und schon wird ein Backup gezogen.

Beim meinem System (DS1511+, DSM 4.0-2219) gibt es jedoch ein Problem. Meine USB-Festplatte wird anscheinend nicht schnell genug im System gemountet.
Folgender Fehler tritt auf: "Destination is not on-line." - "Local backup failed."

Ich habe hier mal ein Auszug aus den LOG files in zeitlicher Reihenfolge:
Rich (BBCode):
2012-05-10 20:25:06: device 'sdq' - inserted, trying to find mount point
2012-05-10 20:25:09: device 'sdq' - mount point '/volumeUSB1/usbshare' found
2012-05-10 20:25:09: device 'sdq' - script '/volumeUSB1/usbshare/autorun' found, executing
2012-05-10 20:25:09: device '/volumeUSB1/usbshare' - local backup 'BackItUp' started
2012/05/10 20:25:09	SYSTEM	Information	Local Backup task [BackItUp] started.
2012/05/10 20:25:09	SYSTEM	Error	Destination is not on-line.
2012/05/10 20:25:09	SYSTEM	Error	Local backup failed.
2012-05-10 20:25:09: device '/volumeUSB1/usbshare' - local backup 'BackItUp' finished
2012-05-10 20:25:09: device 'sdq' - script '/volumeUSB1/usbshare/autorun' finished, no further actions
2012/05/10 20:25:13	SYSTEM	Information	External disk [USB Disk 1] is mounted and shared folder [usbshare1] is exported.

Hier sieht man, dass das Script die Festplatte schon 4 Sekunden früher erkennt und das Backup startet.
Das Backup schlägt fehl, da der shared folder noch nicht exported ist und somit noch nicht bekannt.

Ich habe im Script /var/packages/autorun/target/localbackup am Anfang eine Verzögerung (sleep 10s) eingefügt und schon funktioniert es.

@Merthos
Vielleicht findest Du eine elegantere Lösung zur Überprüfung ob der Pfad schon exportiert ist und dann erst das Backup zu starten.
 

dakkar

Benutzer
Mitglied seit
04. Jul 2012
Beiträge
41
Punkte für Reaktionen
0
Punkte
0
Ein Bug m.M.n.:
Das Paket lässt sich nur als User admin starten.
Den User hab ich aber disabled und einen anderen in die Gruppe der administratoren getan.

Praktisch gehört der Check am Anfang nicht auf User Admin sondern gruppe Administratoren.
perl ist leider nicht meine Stärke, aber (ungetestet auf der syno!) könnte das so klappen:

Rich (BBCode):
--- index.cgi   2012-07-14 12:22:59.379374900 +0200
+++ index_patched.cgi   2012-07-14 12:27:27.508711000 +0200
@@ -8,8 +8,22 @@
     $user=<IN>;
     chop($user);
     close(IN);
+
+    # verify $user is in group administrators
+    $isadmin=false;
+
+    ($name, $passwd, $gid, $members) = getgrnam('administrators');
+    for ($members)
+    {
+      if ( "$_" == $user )
+      {
+        $isadmin="true"
+      }
+    }
 }
-if ($user ne "admin") {
+
+if ( "$isadmin" ne "true" )
+{
     print "<HTML><HEAD><TITLE>Login Required</TITLE></HEAD><BODY>Please login as admin first, before using this webpage<br/><br/></BODY></HTML>\n";
     die;
 }

Feedback und eine neue Version sind gern gesehn :D

LG
Dakky

EDIT: Habs grad mal so reingepatcht: geht :D
EDIT2: naja fast, merk grad, du hast den Check öfters eingebaut. das müsste dann halt überall wie oben gepatcht werden

EDIT3: :D Hoffentlich das letzte :D Das im root der Platte erzeugte Script hatte bei mir wiederholt die falschen rechte:
Code:
-r----x--t    1 root     root           116 Jul 14 13:08 autorun
 
Zuletzt bearbeitet:

Tommes

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

Erstmal auch von mir ein ganz großes Lob und ein Dank für dieses geniale Tool, welches du da gezaubert hast, Merthos. Mit meiner USB 3.0 HDD funktioniert das wirklich einwandfrei. Super! Aber es wäre ja zu einfach gewesen...

...denn mit meinem USB-Stick klappt das irgendwie nicht. Ich installiere den Stick mit "autorun" und entferne ihn dann über die "externen Geräte"! Wenn ich ihn wieder einstöpsel, passiert folgendes:

2012-07-28 20:45:28: device 'sdq' - inserted, trying to find mount point
2012-07-28 20:45:31: device 'sdq' - mount point '/volumeUSB1/usbshare' found
2012-07-28 20:45:31: device 'sdq' - script '/volumeUSB1/usbshare/autorun' found, executing
2012-07-28 20:45:31: device '/volumeUSB1/usbshare' - local backup 'Backup 64GB USB-Stick' started
2012-07-28 20:45:32: device '/volumeUSB1/usbshare' - local backup 'Backup 64GB USB-Stick' finished
2012-07-28 20:45:32: device 'sdq' - script '/volumeUSB1/usbshare/autorun' finished, no further actions

Du siehst, soweit scheint alles i.O. zu sein. Aber der Backupauftrag wird nicht ausgeführt. Er wird in der 31. Sekunde gestartet und in der 32. Sekunde wieder gestoppt. Dabei leuchtet die LED der DS auch mal kurzeitig orange und piep um im nächsten Moment auch gleich wieder mit einem piepen auf grün umzuschalten.

In der Datensicherung- und wiederherstellung habe ich keinen "geplanten Job" angelegt für diesen Zweck. Und auf dem USB Stick liegt die autorun-Datei mit folgendem Inhalt:

#!/bin/sh
/var/packages/autorun/target/localbackup "Backup 64GB USB-Stick" "/volumeUSB1/usbshare" "$1" 0
exit $?

Woran kann es also liegen, das der Job nicht ausgeführt wird, wo doch scheinbar alles in normalen Parametern läuft?

Tommes!
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.737
Punkte für Reaktionen
1.646
Punkte
314
ich denke am ende des kommandos darf nicht 0 sondern 100 stehen.
wenn ich mich recht erinnere, läuft das nur mit 100.

Hi!

Ich hab das grad mal ausprobiert. Die "100" steht immer dann am Ende des Kommandos, wenn der Stick nach dem Sicherungsvorgang "Ejekt", also "umount" werden soll. Ist diese Option nicht gewählt, dann steht dort eine "0". Das ändert auch nichts an meinem Stick!

nächste gedanke: ist die backupaufgabe auch so eingerichtet, dass sie auf diesen stick speichert? der parameter im kommando dient eigentlich nur der kontrolle.

Jep, ich habe diesen Backupauftrag sonst immer "automatisch", wöchentlich auf den Stick gezogen! Habe dann die Zeitplanung deaktiviert, ohne Erfolg. Habe auch mal einen neuen Backupauftrag angelegt, auch ohne Erfolg. Ich denke es liegt am USB-Stick selber, warum weiß der Geier. Mit meiner USB-3.0 HDD geht es ja!

Ich werd das später mal mit einem anderen USB-Stick ausprobieren, hab dafür grad keine Zeit! Meld mich dann nochmal!

Edit: OK, hab das jetzt mal mit einem anderen USB-Stick (anderer Hersteller) ausprobiert, ist aber das Gleiche in grün! Geht auch nicht. Geht das denn überhaupt mit USB-Sticks, oder geht das nur bei bestimmten Typen? Es ist zwar nicht lebensnotwendig für mich, aber schön wäre es ja schon, wenn es funktionieren würde!

Tommes!
 
Zuletzt bearbeitet:

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Ich teste auch immer nur mit einem Stick, von daher sollte das gehen. Die Leerzeichen im Namen wären jetzt noch das Einzige, was mir einfällt, probier mal ohne.
 

Tommes

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

Hm, das mit den Leerzeichen hat auch nicht geklappt. Hab aber nochmal einen Blick in das Sicherungsprotokoll des DSM geschaut und dort steht....

Sicherungsprotokoll.jpg

... vielleicht kannst du damit ja was anfangen. Ansonsten gehen mir auch langsam die Ideen aus.

Tommes!
 

Tommes

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

Hatte grade noch die "geplante Sicherung" noch eingeschaltet. Die Fehlermeldung im DSM ist folgende...

sicherungsprotokoll2.png

Scheinbar wird der Stick zu spät erkannt und aber die Sicherung fängt schon mal an. Kann man da irgendwo was drehen?

Tommes!
 

Merthos

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

Tommes

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

Problem ist gelöst. Nachdem ich den letzten Beitrag gespeichert hatte, bin ich erstmal eine Runde laufen gegangen. Und da kam es mir wieder... dieser Gedanke :D (nicht das was ihr denkt)!

Irgendwo beim Querlesen diese Threads habe ich irgendwas gelesen von einer Pause die irgendwo eingefügt wurde... und schwupps...

Die Lösung hat sich im Beitrag #88 versteckt! Also schnell mal Itari's AdminTool gestartet, einen "Sleep 10" eingefügt und es läuft. Großartig, ich bin begeistert. Super!

Seht ihr, Laufen macht Geist und Seele frei und man kann wieder klar denken!

Danke nochmal für diese geniale Tool!

Tommes!
 


 

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