Autorun für ext. Datenträger

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
0
Punkte
0
Nachfolgend zu http://www.synology-forum.de/showthread.html?p=126856#post126856 hab ich doch noch weitergemacht. Das funktioniert jetzt soweit bei mir mit DS1010+ DSM 3.0 für USB und eSATA. Wäre schön wenn das noch jemand auf anderer Hardware testen könnte.

/usr/syno/hotplug.d/default/99autorun.hotplug (chmod 700)
Rich (BBCode):
#!/bin/sh

if [ "$1" != "block" ]
then
        return
fi
if [ "$ACTION" != "add" ]
then
        return
fi
if [ "$DEVTYPE" != "disk" ]
then
        return
fi
if [ -z "$DEVNAME" ]
then
        return
fi

/usr/syno/hotplug.d/default/autorun $DEVNAME &
/usr/syno/hotplug.d/default/autorun (chmod 700)
Rich (BBCode):
#!/bin/sh

if [ -z "$1" ]
then
        return
fi

TRIES=20
LOGFILE="/volume1/backup/autorun.txt"
MOUNTPATH=""
COUNT=0

echo "device '$1' inserted, trying to find mount path" >> $LOGFILE

while ([ -z "$MOUNTPATH" ] && [ $COUNT -lt $TRIES ])
do
        MOUNTPATH=`/bin/mount 2>&1 | /bin/grep "/dev/$1" | /usr/bin/cut -d ' ' -f3`
        COUNT=$(($COUNT+1))
        /bin/sleep 1s
done

if [ -z "$MOUNTPATH" ]
then
        echo "unable to find mount point for device '$1'" >> $LOGFILE
        return
fi

echo "mount point '$MOUNTPATH' found" >> $LOGFILE
Schreib im Moment erst mal nur ein Log. Das würde ich dann so erweitern, dass auf der Disk ein Skript aufgerufen wird. Da drin kann man dann machen was man will (Backup starten, ....) und dann über den Rückgabewert steuern, ob die Disk anschließend ausgeworfen wird.
 

jahlives

Super-Moderator
Mitglied seit
19. August 2008
Beiträge
18.275
Punkte für Reaktionen
0
Punkte
0
Website
911-research.info
@Merthos
Bent u een daarbij ;)
Werde es auf jeden Fall mal testen und berichten. Wenn es das macht was ich mir vorstelle, dann ist das ein Topptool :)

Gruss

tobi
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
0
Punkte
0
Hab mal ein spk draus gemacht, wollte ich schon immer mal probieren. :D

Macht weiterhin noch nichts sinnvolles außer loggen. Mit Start / Stop des Paketes wird das Ganze an- / ausgeschaltet. Die Logs stehen im Protokoll (Info abrufen).
 

Anhänge

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
0
Punkte
0
So, nächste Version. Die macht jetzt auch schon was sinnvolles.

Nach erfolgreichem Mounten wird geschaut, ob ein Skript namens "autorun" dort existiert. Wenn ja, wird es aufgerufen. Als Parameter werden der Mount Point ($1) und der Gerätename ($2) übergeben. Nach Abschluss des Skripts wird der Rückgabewert ausgewertet. Bei 0 passiert nichts weiter, alle anderen Werte mach ein umount und werfen den Datenträger aus.

Zur Kontrolle gibt es einen Pieps am Anfang und Ende und die Status-LED wird auf orange geschaltet, solange das Skript läuft.
 

Anhänge

Matthieu

Super-Moderator
Teammitglied
Mitglied seit
03. November 2008
Beiträge
13.048
Punkte für Reaktionen
0
Punkte
332
Website
matthieu-ds.dyndns.org

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
0
Punkte
0
Version 0.3 hat jetzt Optionen (eigentlich nur, weil ich das mal probieren wollte). Ansonsten hab ich den Auswerftrigger auf den Wert 100 beschränkt.

Lizenz: BSD
Abhängigkeiten: DSM 3.0+
Getestet mit: DS1010+ DSM 1337
 

Anhänge

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
0
Punkte
0
Version 0.4 erlaubt das Erstellen eines passenden Skripts für für das lokale Backup (für die Leute, die sich nicht mit der Kommandozeile rumschlagen wollen). Damit kann man dann ein im DSM konfiguriertes lokales Backup beim Anschluss der Platte starten und (optional) die Platte nach Abschluss wieder aushängen.
 

Anhänge

Matthieu

Super-Moderator
Teammitglied
Mitglied seit
03. November 2008
Beiträge
13.048
Punkte für Reaktionen
0
Punkte
332
Website
matthieu-ds.dyndns.org
Uhhhh :D
Das probier ich demnächst mal aus, sieht sehr interessant aus. Darauf haben so einige gewartet!

MfG Matthieu
 

Super-Grobi

Benutzer
Mitglied seit
28. September 2010
Beiträge
1.913
Punkte für Reaktionen
0
Punkte
62
Gooill !! :D:D

wat 'n Glück, dass der Merthos sowat kann.

Grüße
 

jan_gagel

Benutzer
Mitglied seit
05. April 2010
Beiträge
1.890
Punkte für Reaktionen
1
Punkte
0
Website
jan-siegfried.myftp.org
Hallo,

per Zufall beim einem Streifzug im Forum hab ich diesen Thread gefunden. Darüber bin ich total begeistert, daß es ein solches Modul gibt, wenngleich ich wenig Ahnung von Shellscript-Programmierung hab, DOS-Batch-Skripte erstelle ich ganz gerne, aber C ist für mich einfach zu viel.

Gäbe es auch die Möglichkeit, einen TimeBackup-Job mit diesem Autostart-Mechanismus zu starten? Oder schnell mal einen bestimmten Ordner auf den USB-Stick ziehen?

Ciao Jan
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
0
Punkte
0
TimeBackup habe ich nicht installiert, von daher kann ich das nicht genau sagen. Geht das denn überhaupt mit wechselnden externen Platten?

Ordner kopieren ist relativ simpel, dafür ein Skript zu schreiben.
 

jan_gagel

Benutzer
Mitglied seit
05. April 2010
Beiträge
1.890
Punkte für Reaktionen
1
Punkte
0
Website
jan-siegfried.myftp.org
ja, TimeBackup kann mit verschiedenen Platten umgehen. So habe ich zwei verschiedene USB-Platten mit zwei verschiedenen Jobs. Je nach Geräte-Größe (vielmehr RAM-Größe) können mehrere TimeBackup-Jobs angelegt werden.
 

randfee

Benutzer
Mitglied seit
08. April 2010
Beiträge
1.048
Punkte für Reaktionen
1
Punkte
62
sehr cool... werde ich testen - genau das habe ich beim DSM zu bemängeln. Wenn ich damit die Backups auf externe Platten einfach per Anstöpseln erledigen kann ... SUPER.
 

wizjos

Benutzer
Mitglied seit
03. September 2008
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
Cool!'

Im text gibt's ein Typo: 'You can savely remove the...' etc. sollte sein: 'You can safely remove the...

Grüße

Wizjos
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
0
Punkte
0
Via PN, aber vielleicht betrifft es ja auch andere:
ich hab dein Paket Autorun auf meiner DS210j (DSM3.1) installiert. Den Gedanken alleine finde ich schon super, ich verwende allerdings nicht das interne Backup-System, sondern Time-Backup. Kann man TimeBackup auch mit einem autorun-Skript starten?
TimeBackup hab ich nicht installiert. Da ich nur eine Produktiv-DS habe, will ich auf der eigentlich nichts (für mich) unnötiges installieren. Wenn dies aber wie das normale Backup über ein Kommando gestartet wird, dann sollte dafür auch ein Skript möglich sein.

3.1 habe ich auch noch nicht installiert, von daher kann ich nicht ausschließen, dass es dort Probleme gibt. Vielleicht hat es ja schon jemand damit probiert.

Ich hab mal zum "Aufwärmen" erst mal ein mini-Skript gemacht und auf einem USB-Stick abgelegt. Der Stick ist ext3 formatiert und das Skript ist ausführbar für root. Im Skript selbst ist lediglich ein Kopier-Kommando, welches manuell aufgerufen auch funktioniert. Allerdings findet der Dienst, der auf der DS läuft, das autorun-Skript nicht, steht zumindest so im Protokoll. Das Skript liegt in /volumeUSB1/volumeusb/autorun, genau dort sucht er das Skript, findet es allerdings nicht.
Hat sich der Mount-Point für ext. Geräte schon wieder geändert? Weil mit 3.0 ist das /volumeUSB1/usbshare.

Ich bin zwar Informatiker, schreibe selbst sehr gerne DOS / Windows-Batch-Dateien, Linux-Skripte sind für mich allerdings viel zu kompliziert, da in C geschrieben.
Also C ist das nicht. Wenn es Dich genauer interessiert kannst Du das spk auspacken, ist nur ein tar. Alternativ, wenn installiert, auf der DS unter /var/packages/autorun/target. "hotplug" ist das Shell-Skript, das vom Hot-Plug-Daemon gestartet wird, "autorun" sucht den Mount-Point und übernimmt die Ausführung. Sollte man prinzipiell lesen können.
 

Gvou6

Benutzer
Mitglied seit
03. März 2011
Beiträge
1
Punkte für Reaktionen
0
Punkte
0
Hallo Merthos,

ich habe mir Dein Paket einmal runtergeladen und ausprobiert. Ich möchte es für ein Backup auf eine externe Platte nutzen. Soweit funktioniert es auch alles. Vielen Dank schon mal dafür.

Was nicht funktioniert ist das automatische Auswerfen der USB Platte nach dem Backup.

In der Logdatei sehe ich folgende Meldung:

2011-04-08 13:35:53: local backup 'Backup' started
2011-04-08 13:35:54: local backup 'Backup' finished
2011-04-08 13:35:54: device 'sdq' - script '/volumeUSB1/usbshare/autorun' finished, starting unmount
2011-04-08 13:36:00: device 'sdq' - error while unmounting '/volumeUSB1/usbshare', aborting

Was natürlich nicht funktioniern kann, weil das backup doch länger als 1 Sekunde braucht. Es es irgendwie möglich das Script zu erweitern damit er mit dem unmout wartet, bis das Backup wirklich fertig ist?

Gruß
Andreas
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
0
Punkte
0
Eigentlich sollte es warten. Welche DSM-Version hast Du?
 

maze128

Benutzer
Mitglied seit
03. Januar 2010
Beiträge
227
Punkte für Reaktionen
0
Punkte
0
Website
www.bergengel.com
Hi,

hab das Ding mal getestet, prinzipiell auch eine sehr coole Idee.
Funktioniert so weit auch auf der DS410J, mit Version 3.1_1605.
Allerdings mit einem Problem:

Es geht nur wenn ich mich vorher auf der DS einlogge und das Paket manuell starte/ausführe.
So macht das natürlich wenig Sinn, dann kann ich auch direkt das Script manuell starten, wäre sehr schön wenn das zu ändern wäre.

Die nächste Frage wäre ob es normal ist, dass die 99autorun.hotplug bei mir nicht existiert, die autorun ebenfalls nicht, also in /usr/syno/hotplug.d/default/ Ich habe nur die spk installiert. Sonst nichts. Fehlt da eventuell noch was?
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
0
Punkte
0
Du musst das Paket einmal starten, das ist bei allen spk so. Wenn es dann läuft, werden auch die entsprechenden Skripte im hotplug hinterlegt. Und dann läuft es auch solange, bis das Paket wieder beendet wird. Darüber kannst man dann steuern, ob man den autorun haben will oder nicht, wenn ein Datenträger angeschlossen wird.
 

maze128

Benutzer
Mitglied seit
03. Januar 2010
Beiträge
227
Punkte für Reaktionen
0
Punkte
0
Website
www.bergengel.com
Ja, das ist schon klar.
Ich hab das Paket installiert, einmal gestartet und getestet, das klappte wunderbar.
Nach einem Neustart ging dann plötzlich nichts mehr, ich muss das Paket erst wieder manuell starten.

Ist das so gewollt? Das macht für mich dann wenig sinn oder gibt es eine Möglichkeit das Paket immer direkt starten zu lassen?
 
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten, denn dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit einem hohen technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive oder Themen fremde Werbung. Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.