Autorun für ext. Datenträger

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Hmm, keine Ahnung, ich mach meine DS nicht aus. Ich hatte gedacht, dass es weiterläuft bzw. automatisch wieder gestartet wird. Was sagt denn das Log?
 

maze128

Benutzer
Mitglied seit
03. Jan 2010
Beiträge
227
Punkte für Reaktionen
0
Punkte
16
Hm, das kann ich dir aktuell nicht sagen weil die DS grade ein Update macht.
Aber im Paketmanagement stand es auf jeden Fall als angehalten, itaris Admin-Tool steht z.B. auf ausführen.

Ich meine im Log ständ entweder nichts oder no further action.
Müsste ich aber nochmal nachschauen.

Jedenfalls funktioniert es dann gut wenn ich im Paketmanagement auf ausführen klicke. Ich will das nur nicht jedes mal machen müssen.
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Die wird erstellt, wenn das Paket startet, und wieder gelöscht, wenn beendet. Ich schau es mir am WE mal an.
 

maze128

Benutzer
Mitglied seit
03. Jan 2010
Beiträge
227
Punkte für Reaktionen
0
Punkte
16
Ok, danke.

Mich hat es gewundert, dass sie halt nach einem Neustart verschwindet. Wäre es vielleicht eine Idee sie manuell in den Ordner zu kopieren?
Deaktivieren will ich nicht.
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Die Frage ist halt, verschwindet sie, weil das Paket beim Runterfahren beendet wird, oder löscht dort irgendwer anderes. Bei zweiterem dürfte auch manuelles Kopieren nicht helfen... Aber probieren kannst Du es ja mal.
 

maze128

Benutzer
Mitglied seit
03. Jan 2010
Beiträge
227
Punkte für Reaktionen
0
Punkte
16
Naja, ich geh mal fest davon aus, dass die beim runterfahren durch das Beenden des Pakets entfernt wird.
Dann wird sie aber erst wieder durch das manuelle starten wieder hinzugefügt. Die Frage wäre halt ob man das nicht durch
manuelles kopieren erreicht. Oder alternativ das "Nicht-Entfernen" beim runterfahren.

Würde beides mein Problem lösen, allerdings seh ich meine Chancen eher beim manuellen kopieren. Es sei denn du hättest eine Idee was man da auf die Schnelle ändern könnte/müsste.
Hab mal kurz in die Scripte reingeschaut, allerdings fehlt mir aktuell die Muße mich damit zu beschäftigen.
 

maze128

Benutzer
Mitglied seit
03. Jan 2010
Beiträge
227
Punkte für Reaktionen
0
Punkte
16
So, hab mir auch nochmal paar Gedanken gemacht:

Meine DS kann anscheinend mit diesem Befehl nichts anfangen:

Rich (BBCode):
cp "${SYNOPKG_PKGDEST}/hotplug" /usr/syno/hotplug.d/default/99autorun.hotplug

Bekomme immer folgende Meldung:

Rich (BBCode):
cp: can't stat '/hotplug': No such file or directory

Wenn ich die 99autorun.hotplug manuell nach /usr/syno/hotplug.d/default/ kopiere,
klappt alles wunderbar. Hast du eine Idee woran das liegt?

BTW: Hat jemand eine Idee wieso ich meine Beiträge nicht editieren kann??
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.160
Punkte für Reaktionen
407
Punkte
393
Hallo,
BTW: Hat jemand eine Idee wieso ich meine Beiträge nicht editieren kann??
zumindest im alten Forum war eine Zeitspanne von 2 Stunden um einen Beitrag zu ändern. Wahrscheinlich ist es jetzt auch wieder so.

Gruß Götz
 

Super-Grobi

Benutzer
Mitglied seit
28. Sep 2010
Beiträge
1.913
Punkte für Reaktionen
0
Punkte
62
Code:

cp "${SYNOPKG_PKGDEST}/hotplug" /usr/syno/hotplug.d/default/99autorun.hotplug

Bekomme immer folgende Meldung:

Code:

cp: can't stat '/hotplug': No such file or directory

Was dann ja darauf hinweisen sollte, dass ${SYNOPKG_PKGDEST} bei Dir nicht mit dem richtigen Wert gefüllt ist.

Ich bin ja nicht soo der Spezialist für Shellcommandos, aber könnte es vielleicht sein, dass das quoting hier daneben geht und es statt
cp "${SYNOPKG_PKGDEST}/hotplug" /usr/syno/hotplug.d/default/99autorun.hotplug vielleicht besser
cp ${SYNOPKG_PKGDEST}"/hotplug" /usr/syno/hotplug.d/default/99autorun.hotplug oder gar
cp ${SYNOPKG_PKGDEST}/hotplug /usr/syno/hotplug.d/default/99autorun.hotplug
heißen sollte?

Grüße
S.Grobi
 

maze128

Benutzer
Mitglied seit
03. Jan 2010
Beiträge
227
Punkte für Reaktionen
0
Punkte
16
Ich bin ja nicht soo der Spezialist für Shellcommandos, aber könnte es vielleicht sein, dass das quoting hier daneben geht und es statt
cp "${SYNOPKG_PKGDEST}/hotplug" /usr/syno/hotplug.d/default/99autorun.hotplug vielleicht besser
cp ${SYNOPKG_PKGDEST}"/hotplug" /usr/syno/hotplug.d/default/99autorun.hotplug oder gar
cp ${SYNOPKG_PKGDEST}/hotplug /usr/syno/hotplug.d/default/99autorun.hotplug
heißen sollte?

Grüße
S.Grobi

Funktioniert auch nicht, vielleicht liegt's ja auch an meiner DS.
Jedenfalls klappt die manuelle Lösung wunderbar.
 

Super-Grobi

Benutzer
Mitglied seit
28. Sep 2010
Beiträge
1.913
Punkte für Reaktionen
0
Punkte
62
Und wenn Du statt der Variablen gleich den festen Pfad an die Stelle schreibst? Oder wechselt der?
 

maze128

Benutzer
Mitglied seit
03. Jan 2010
Beiträge
227
Punkte für Reaktionen
0
Punkte
16
Also ich hab mich jetzt auf Grund von akutem Zeitmangel für ne quick'n'dirty-Methode entschieden,
ich habe einfach am Anfang des Scripts die Datei aus user/bin (hab sie dort abgelegt) in den passenden Ordner kopiert und die Rechte gesetzt,
dann kann das Script machen was es will, zur Not auch mit Fehler durchlaufen, aber der Autostart funktioniert wenigstens.

Werd mich eventuell nächten Monat nach meiner Hochzeit nochmal dran setzen, dann hab ich wieder Zeit für so Späße ;)

Aber eventuell findet ja der Autor noch eine Lösung. Nutzt du die Funktion auch? Klappts bei dir?
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Also die DS beendet das Paket beim Runterfahren und startet es beim Neustart wieder. Allerdings werden dabei die Umgebungsvariablen nicht gesetzt, so dass das Skript nicht weiss, wo die Dateien sind. Hab das jetzt so geändert, dass immer /var/packages... verwendet wird.
 

Anhänge

  • autorun-0.5.spk
    30 KB · Aufrufe: 47

Lifeform

Benutzer
Mitglied seit
19. Apr 2011
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Verschlüsseltes lokales Backup

Hallo Merthos,

das autorun-Paket enthält ein Tool, welches das lokale Backup der DS startet, sobald man eine entsprechende Platte ansteckt.

Eine hilfreiche Ergänzung dazu wäre, verschlüsselte Backups in das Tool zu integrieren, wie hier http://www.synology-wiki.de/index.php/Verschlüsseltes_Backup beschrieben. Man kann sich zwar vermutlich selbst ein Skript schreiben, was das tut, aber integriert in das Tool ist es einfacher anzuwenden...

Evtl hast du ja mal Lust, das umzusetzen :)

Grüße,
Lifeform
 

wolfgang362

Benutzer
Mitglied seit
08. Feb 2010
Beiträge
37
Punkte für Reaktionen
0
Punkte
0
Eigentlich sollte es warten. Welche DSM-Version hast Du?
DSM 3.1-1613

Bin zwar nicht der OP, freue mich aber trotzdem über das Skript. Der selbe Fehler, die Sicherung läuft eigentlich länger als das Skript, daher schlägt der unmount fehl:
Rich (BBCode):
2011-04-22 10:56:27: autorun activated
2011-04-22 10:57:17: device 'sdq' - inserted, trying to find mount point
2011-04-22 10:57:20: device 'sdq' - mount point '/volumeUSB1/usbshare' found
2011-04-22 10:57:20: device 'sdq' - script '/volumeUSB1/usbshare/autorun' found, executing
2011-04-22 10:57:20: local backup 'DatenSichern' started
2011-04-22 10:57:20: local backup 'DatenSichern' finished
2011-04-22 10:57:20: device 'sdq' - script '/volumeUSB1/usbshare/autorun' finished, starting unmount
2011-04-22 10:57:41: device 'sdq' - error while unmounting '/volumeUSB1/usbshare', aborting
2011-04-22 11:00:43: autorun deactivated

Grüße,
w.

[Edit: Nach Neustart der DiskStation klappt es jetzt - klasse.]
Rich (BBCode):
2011-04-22 11:21:09: autorun activated
2011-04-22 12:29:42: device 'sdq' - inserted, trying to find mount point
2011-04-22 12:29:45: device 'sdq' - mount point '/volumeUSB1/usbshare' found
2011-04-22 12:29:45: device 'sdq' - script '/volumeUSB1/usbshare/autorun' found, executing
2011-04-22 12:29:45: local backup 'DatenSichern' started
2011-04-22 12:29:46: local backup 'DatenSichern' finished
2011-04-22 12:29:46: device 'sdq' - script '/volumeUSB1/usbshare/autorun' finished, starting unmount
2011-04-22 12:29:52: device 'sdq' - unmounted and ejected
2011-04-22 12:37:32: device 'sdq' - inserted, trying to find mount point
2011-04-22 12:37:35: device 'sdq' - mount point '/volumeUSB1/usbshare' found
2011-04-22 12:37:35: device 'sdq' - script '/volumeUSB1/usbshare/autorun' found, executing
2011-04-22 12:37:36: local backup 'DatenSichern' started
2011-04-22 12:37:36: local backup 'DatenSichern' finished
2011-04-22 12:37:36: device 'sdq' - script '/volumeUSB1/usbshare/autorun' finished, starting unmount
2011-04-22 12:37:41: device 'sdq' - unmounted and ejected
 
Zuletzt bearbeitet:

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Nach Neustart der DiskStation klappt es jetzt - klasse.
Das dürfte daran liegen, dass das Backup keine Änderungen hatte und deshalb schnell zu Ende war.


Die 0.6 sollte das Problem beheben. Das Backup wurde als Hintergrundtask ausgeführt (-a vs. -b), und darum konnte nicht das Ende abgewartet werden.


Da ich jetzt auf DSM 3.1 bin, keine Garantie mehr für die 3.0. Im Zweifel die 0.5 nehmen.
 

Anhänge

  • autorun-0.6.spk
    30 KB · Aufrufe: 46

wolfgang362

Benutzer
Mitglied seit
08. Feb 2010
Beiträge
37
Punkte für Reaktionen
0
Punkte
0
Das dürfte daran liegen, dass das Backup keine Änderungen hatte und deshalb schnell zu Ende war.
Hatte ich zwischenzeitlich bemerkt, wollte nur das WE abwarten, bevor ich wieder nerve. Vielen herzlichen Dank für das Osterpräsent V0.6, kann aber erst morgen abend wieder testen.

Grüße,
w.
 

mapero

Benutzer
Mitglied seit
21. Feb 2011
Beiträge
33
Punkte für Reaktionen
0
Punkte
0
Hallo.

Erstmal finde ich die Idee echt super. Leider funktioniert es bei mir noch nicht ganz. Ich möchte gerne ein Backup auf eine externe Festplatte mit 2 Partitionen machen, genauer gesagt auf die zweite. Diese wird auch ohne Probleme von der Diskstation erkannt und eingebunden. Auch das BackupSet konnte ich auf der 2ten Partition erstellen.
/dev/sdq1 on /volumeUSB1/usbshare1-1 type fuseblk (rw,allow_other,blksize=4096,default_permissions)
/dev/sdq2 on /volumeUSB1/usbshare1-2 type ext4 (nodelalloc,synoacl)

Leider erkennt "autorun" diese zweite Partition wohl nicht, sondern nur die erste.
2011-04-30 12:52:53: device 'sdq' - inserted, trying to find mount point
2011-04-30 12:52:58: device 'sdq' - mount point '/volumeUSB1/usbshare1-1' found
2011-04-30 12:52:59: device 'sdq' - no script '/volumeUSB1/usbshare1-1/autorun' found, no further actions

Wäre super wenn dies funktionieren würde.

Edit: Vielleicht noch eine Idee: Eine Whitelist welche die UUID der Partition enthält und beim verbinden überprüft wird. So könnte man verhindern, das eine x-beliebige Person eine Festplatte anschließt und ein Skript ausführt. Sondern nur "zugelassene" Festplatten Skripte ausführen.

Edit2: Für paar Infos für TimeBackup
Rich (BBCode):
/usr/syno/bin/timebkp 
Usage:
	timebkp COMMAND [ARGS]

	available COMMAND:
		create_task
		delete_task
		edit_task
		list_task
		create_version
		delete_version
		list_version
		get_path
		lookup
		recycle
	available ARGS:
		--name
		--src
		--dst
		--server
		--user
		--pass
		--task
		--version
		--path
		--smart
		--debug
	example:
		create_task --name=<task_name> --src=<source_shares> --dst=<destination_share>
		delete_task --name=<task_name>
		create_version --task=<task_name> [--name=<version_name>]
		list_version --task=<task_name>
		get_path --task=<task_name> --version=<version_name>
		lookup --task=<task_name> --version=<version_name> --path=<path>
		recycle --task=<task_name>

mit folgender "autorun" konnte ich erfolgreich ein Backup erstellen:
Rich (BBCode):
#!/bin/sh
LOGDIR="/var/packages/autorun/target"
echo "`date +%Y-%m-%d` `date +%H:%M:%S`: TimeBackup '$1' started<br/>" >> $LOGDIR/log
/usr/syno/bin/timebkp create_version --unique 1
echo "`date +%Y-%m-%d` `date +%H:%M:%S`: TimeBackup '$1' finished<br/>" >> $LOGDIR/log
exit $?
Natürlich verbesserungsfähig. Aber es tut fürs erste.

Gruß, mapero
 
Zuletzt bearbeitet:

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Leider erkennt "autorun" diese zweite Partition wohl nicht, sondern nur die erste.
Ich denke nicht, dass ich das aufnehmen werde, sowas machen nicht viele. Aber Du kannst das Skript ja auf die erste Partition packen, damit sollte es funktionieren.

Eine Whitelist welche die UUID der Partition enthält und beim verbinden überprüft wird. So könnte man verhindern, das eine x-beliebige Person eine Festplatte anschließt und ein Skript ausführt.
Ich hatte ursprünglich vor, die Skripte auf der DS zu haben und über die Geräte-ID die Zuordnung zu machen. Leider ist das aber ziemlich wüstes Zeug, um an die UUID oder sowas ranzukommen, so dass ich es dann irgendwann aufgegeben habe.

Für paar Infos für TimeBackup
Danke, schau ich mir bei Gelegenheit mal an.
 


 

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