Aktion ausführen wenn Festplatte angeschlossen oder ausgeworfen wird

Swabke

Aktives Mitglied
Thread Starter
Dabei seit
04.06.2012
Beiträge
106
Reaktionspunkte
1
Hallo

Ich habe neben meinem iMac eine Festplatte stehen die permanent angeschlossen ist, die ich aber von überall mit meinem Handy auswerfen und wieder mounten kann. Dies habe ich schon so eingerichtet. Jetzt will ich aber auch von überall aus erkennen können ob die Festplatte schon gemounted ist oder nicht. Ich habe mir dies so vorgestellt dass ich eine Website habe auf der entweder steht "Festplatte läuft" oder "Festplatte läuft nicht" oder so was :). Dies würde ich mit zwei verschiedenen index.html Dateien und Dropbox machen. Je nach dem ob die Festplatte läuft oder nicht wird das entsprechende index.html in den entscheidenden Dropbox Ordner kopiert.
Der ganze Dropbox- und Kopierkram habe ich schon geregelt, das einzige was mir fehlt ist eine Art Programm dass erkennt wenn die Festplatte angeschlossen wird und in dem Moment einen Befehl ausführen kann und auch wieder erkennt wenn die Festplatte ausgeworfen wird (oder der Stecker gezogen wird oder so was) und auch dann wieder einen Befehl ausführt.

Ich habe mir gedacht ich könnte das so Machen:

Ich habe folgende .plist Datei:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.swabke.festplatte</string>
<key>Program</key>
<string>/Users/swabke/Dropbox/Public/festplatte/festplatte.sh</string>
<key>QueueDirectories</key>
<array>
<string>/Volumes/</string>
</array>
<key>RunAtLoad</key>
<false/>
</dict>
</plist>



Und ich habe folgende shell Datei welche ich von dem zuvor erwähnten "Festplatte Mounten und Auswerfen Programm" übernommen und abgeändert habe. Deshalb ist es etwas komisch. Den Teil mit egrep versteh ich selber nicht ganz und habe deshalb einfach als 2. abc reingeschrieben und gehofft dass es trotzdem klappt weil mir nichts besseres gewusst habe.
Mal angenommen das würde so funktionieren hätte ich noch 2 Probleme:
1. Das Script würde so lange immer wieder durchlaufen bis die Festplatte wieder ausgeworfen wurde
2. den Teil mit dem erkennen wenn die Festplatte ausgeworfen wird habe ich jetzt noch gar nicht drin.

Hier bräuchte ich Hilfe.
(LaCie d2 ist der Name der Festplatte):

#!/bin/zsh -f


# Important! DIR _must_ be the same as whatever directory you used
# for `QueueDirectories` in the `com.swabke.festplatte.plist`
DIR="/Volumes/"

# if the directory does not exist, exit
cd "$DIR" || exit 0

# get rid of this file, which will cause `launchd` to keep triggering
rm -f .DS_Store

command ls -1 \
| egrep 'LaCie\ d2|abc' \
| while read line
do

case "$line" in
LaCie\ d2*)

###########################################################################
## BEGIN OPTIONAL SECTION for when LaCie d2 appears in Volumes
## Change this in this section to suit your needs


#Hier später Befehl einfügen um die index.html zu verschieben


## END OPTIONAL SECTION
###########################################################################

;;

abc*)

###########################################################################
## NOTHING
###########################################################################

;;

esac

done

exit 0
# End of shell script
 
Google mal nach "DoSomethingWhen". Leider ist die Site momentan down.
 
Zurück
Oben Unten