Bekijk de volledige versie : Filesystem 'bearbeiten'
tobitobsen
03-10-2007, 14:48
Hiho!
Hab diesmal ne Linux-noob Frage :rolleyes:
Vorgeschichte:
Wollte für mich 'autobackup' für meine Cam-Speicherkarten realisieren.
Die Engländer haben da auch was ausgetüftelt... Link (http://wl500g.info/showthread.php?t=6826)
Habs etwas angepasst, bzw den hotplug teil weggelassen, da der Kartenleser automatisch erkannt wird und dann unter /dev/discs/ bzw /tmp/harddisk/ auftaucht:
http://content.screencast.com/media/53f7599b-eaa2-4a4a-9a97-95631849379f_4c23aea7-9f13-4baf-9ff2-f6cef6108159_static_0_0_image.png
Mit nem post-mount Script kann ich dann auch locker kopieren und das Laufwerk danach ausklinken.
Problem:
Jetzt 'kennt' der Router ja die discs vom Kartenleser (disc1- disc4). Und wenn ich ne Karte reinsteck passiert nix - post-mount wird nicht angesprochen.
Kann ich die disc1 - bis disc4 'löschen'?
In der Hoffnung dass er dann - wenn ich ne Karte reinpack - wieder zu nem post-mount gezwungen wird?
zeig uns doch mal die Ausgabe von:
ls -l /opt
tobitobsen
04-10-2007, 09:35
@ britnet
Was erhoffst Du Dir davon?
Oder suchst du nach sowas wie diesem 'part1' was sich da immer wieder einschleicht? ;)
http://content.screencast.com/media/c2e66363-9910-4ca5-8384-836718ef04e4_4c23aea7-9f13-4baf-9ff2-f6cef6108159_static_0_0_image.png
Situation ist wie oben beschrieben. Die 2 Bilder könnte man also auch direkt 'zusammenkleben' und wie ein Großes lesen ....
Ich kopiere die Dateien von dem Kartenleser direkt von dem Mountpoint vie smbmount auf meine NAS und umounte beide Mountpoints wieder.
/usr/local/sbin/post-mount
#!/bin/sh
dirs=`ls /tmp/harddisk`;
for dir in $dirs; do
if [ -e /tmp/harddisk/$dir/100canon ]; then
mkdir /tmp/harddisk/pic
/opt/bin/smbmount //192.168.1.5/Share /tmp/harddisk/pic -o guest
folder=`date +%Y%m%d_%H%M%S`;
mkdir -p /tmp/harddisk/pic/Digicam
mkdir -p /tmp/harddisk/pic/Digicam/$folder;
cp -ar /tmp/harddisk/$dir/100canon/* /tmp/harddisk/pic/Digicam/$folder;
umount /tmp/harddisk/pic
umount /tmp/harddisk
fi
done
1. umount killt den smbmount
2. umount killt den mount den die firmware mit automount gebaut hat ...
übrig bleiben die disc0-4 *gg
tobitobsen
07-10-2007, 12:03
hat keiner ne Idee? *push*
newbiefan
07-10-2007, 17:45
So wie ich das verstehe, brauchst Du (wie ich) dringend ein frei konfigurierbares Automount.
Ich habe mir dazu einen workaround erarbeitet:
http://wl500g.info/showthread.php?t=10892
Dann funzt Dein Automount wie Du es willst und nicht wie die Firmware will!
Weiters hast Du in Deinem Script einen etwas argen Fehler, der macht Dir
alle mounts kaputt.
Ich stelle Dir hier einen Script zum download bereit, der toggled Dir
die smbmounts, Du musst nur die richtige Adresse einfuegen.
Dann brauchst Du nur jeweils den Script aufrufen, einmal zu mounten
und zum unmounten. Ach, bitte die Extension .txt entfernen!
Diesen Script kopierts Du einfach in /opt/sbin und machst ihn ausfuehrbar.
chmod +x samba
Natuerlich kannst Du einen beliebigen Namen verwenden, nicht jedoch bei
der neuen Automount.
Have fun.....
LG Newbiefan
tobitobsen
07-10-2007, 18:21
Coole Sache - wenn das alles so läuft ...
Dein attached-Script wird ja jetzt einmalig beim booten aufgerugen - wäre es nicht sinnvoll, in post-mount ebenfalls auf das Script zu verweisen?
Hey, nix gegen mein Script, dass hat bis jetzt gut funktioniert - werds halt jetzt nochmal an die neuen Verzeichnisnamen anpassen ;)
newbiefan
07-10-2007, 18:36
Also, Dein Script ist ja soweit supi......;)
Lediglich smbumount muss eben verwendet werden.
Ach ja, so nebenbei......
Du kannst ja am Ende vom atmnt-script eine Abfrage fuer einen gueltigen pic-file und falls dieser exisitiert, deinen Script aufrufen.
Wichtig: im Automount wird ein directory selbst angelegt, falls dieses nicht existiert.
Also, z.Bspl. Die Variable sambasharefolder wird auf /tmp/harddisk gesetzt, dann wird ein diretoryc mit dem Namen attachname angelegt.
Und noch etwas: die bloeden Cardreader werden immer mit 4 Discs eingebunden, das neue Automount mounted aber nur die Discs, in welchen auf Karten stecken.
Verbesserungen sind natuerlich moeglich, aber die brauche ich vorerst nicht.
Eh, fast vergessen: attached darf auf keinen Fall von der Post-boot aufgerufen werden, der aufrufende script wird nicht mehr beendet, ansonsten wird ein Feler erzeugt, weil ich den aufrufenden Script ja am Anfang von attached kille.
Newbiefan
tobitobsen
07-10-2007, 18:41
also was auch immer dein Script da macht - es mountet mir nicht die Verzeichnisse.
http://content.screencast.com/media/f3344805-a636-404f-b546-ecc5bb841975_4c23aea7-9f13-4baf-9ff2-f6cef6108159_static_0_0_image.png
Ok - das Verzeichnis pic - legt das Script ganz richtig an. Aber dcim, dass vom system-auto mount nach /tmp/harddisk verfrachtet wurde hätt ich jetzt in oic erwartet ;)
Muss ich das Sys-auto-mount irgendwie noch abstellen?
Braucht dein Script noch "spezielle" Tools wie find oder so?
EDIT
SORRY - hab bei der Pfadangabe nen / zuviel gemacht
newbiefan
07-10-2007, 19:12
Schaue einmal in den folder pic und in dcim nach, es kann sehr wohl sein, dass dcim zwar angelegt wird, aber nicht gemounted, weil die Daten in Pic stehen.
Und das ist ja der Sinn der Sache...
Uebrigens, bei mir erscheint auch immer wieder ein part1, das ist aber leer.
newbiefan
edit: mache einfach ein mkdir /tmp/harddisk/dcim und lege den Sambasharefolder danach auf /tmp/harddisk/dcim
danach hast Du das gewuenschte Ergebnis.
tobitobsen
07-10-2007, 19:20
joa also jetzt wird es so gemountet wie dein Script das machen soll.
Aber das eigentliche Problem bleibt:
Wenn die Karte gemountet wurde,
das copy-script alles runterkopiert hat,
und die Karte unmountet wurde
kann ich die Karte rausmachen - OK - nix besonderes.
Wenn ich die Karte wieder reinstecke passiert nix - kein mount - kein auto-mount. einfach nix.
bedeutet, wenn ich die Karte der digicam oder dem USB-Stick anstecke müsste ich den Router immer rebooten damit die Daten kopiert werden. Das kann ja nicht die Lösung sein ;)
heißt das ich müsste dein Script alle paar Sekunden via Cron durchlaufen lassen?
newbiefan
07-10-2007, 19:30
Nein, das Problem ist ein anderes......
Also, der script attached laeuft immer, der start-script S99attached wurde gekillt.
Der Script attached laeuft in einer Endlos-Schleife siehst Du mit ps axf...
Leider ist in der Firmware ein Fehler, wenn ein USB Geraet abgesteckt wird,
bleiben die Eintraege bestehen, deshalb kann auch dieser Script vorerst dieses
Wunder nicht vollbringen.
Dennoch ist es moeglich, aber kompliziert. Das Script muss nachsehen, ob dirs oder files existieren und nur wenn solche da sind, auch mounten, ansonsten unmounten.
Aber da hast mich bereits auf die naechste Verbesserung gesetzt...lol :cool:
Werde es in den naechsten Tagen implementieren.
Uebrigens, Du kannst ja leicht dein Script anpassen, nur wenn die files da sind, wird kopiert, ansonsten wird nichts gemacht.
Edit: was meine Loesung macht: wnn ein Stick od. Hdd zur Laufzeit eingesteckt wird, also zusaetzlich, wird er richtig erkannt und gemounted!
LG
Newbiefan
tobitobsen
07-10-2007, 20:02
Na das mit meinem Script ist kein Problem - da ist ja ne entsprechende Abfrage drinn.
ich probier noch ne runde rum
Vielen Dank für die Script-Combo ;)
mal im englischen Forum Oleg aufmerksam machen - der sollte den Fehler mal beheben *gg
LG
Tobias
newbiefan
07-10-2007, 20:15
Am Cardreader liegt es nicht.
Aber es gibt sehr wohl eine ganz einfache Loesung fuer Dich.
Wenn Dein Script die Karte unmounted, ist die Loesung sehr einfach....
Entferne S99attached und attached, und starte mit cron alle 10 Sekunden atmnt, denn atmnt sieht nach, ob nicht nur discs da sind, sondern auch die gueltige Partition - und die kann ja (hoffentlich) nur da sein, wenn die Karte da ist.
Dann mounted Dir atmnt die Karte immer wieder, egal was drauf ist, es muss nur eine gueltige Partition drauf sein, diese erscheint in /dev/discs/discx/part1
und genau das prueft atmnt.
hehe, gefaellt mir, mit vereinten Kraeften wird der Asus zum echten Wunderbaum....
Edit: faellt mir gerade auf: das angelegte directory muesste doch pic1 heissen..........naja