• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Problem bei der Automatisierung eines nfsd mount.

MacFreak1234

Erdapfel
Registriert
15.03.11
Beiträge
1
Hallo,
vorab, ich hab lediglich Anfängerkenntnisse im Bereich des Unix Scripting, bin aber für jeden Rat offen.

Problemstellung:

Ich besitze zwei Macs. An jedem von ihnen Synchronisiere ich ab und zu mein Iphone. Jedoch so möchte ich lediglich ein mal die Daten haben. Hierfür dachte ich mir das ich einfach die Dateien von Mac 1 an Mac 2 Freigebe und so immer dieselben Daten habe.

Problemumfeld

1x Mac Mini (192.168.0.101 Homeverzeichnis und Username =TV)
1x Mac Book (192.168.100. Homeverzeichnis und Username=ABC)
Betriebssystemversion 10.6.6

In beiden Macs ist die /etc/hosts Datei so angepasst das man lediglich den Namen und nicht mehr die IP eingeben muss.

Erster Versuch

Der Mac Mini ist so angepasst das er den Ordner Music via nfsd frei gibt.
Prinzipiell funktioniert es schon was ich vor habe. Hierfür muss ich folgenden Befehl eingeben.

mac Book Konsole:
sudo mount -o -P 192.168.0.101/Users/TV/Music /Users/ABC/Music

Automatisierung des Prozesses und Probleme:
Dies funktioniert auf manuellem Weg wunderbar, ich kann die Dateien ohne Verzögerungen öffnen, sie anhören und sie bearbeiten als wären sie Local auf dem mac Book.

Nun habe ich aber den Wunsch den ganzen Prozess automatisch im Hintergrund ablaufen zulassen. Aber da hängt es schon am Anfang. Ich benötige zum mounten den Superuser rechte. Obwohl ich als ABC Administrator bin, kann ich den mount Befehl nicht ausführen.
Durch Recherche im Internets hab ich folgenden Ansatz hierfür erstellt:

#!/bin/sh
sudo mount -o -P 192.168.0.101:/Users/TV/Music /Users/ABC/Music
expect "password:"
# Send the password, and then wait for a shell prompt.
send "MeinPasswort\r"

Das funktioniert so leider nicht. Es kommt immer die Fehlermeldung:
couldn't read file "Password:": no such file or directory

Wenn ich dieses Problem gelöst habe, wollte ich das ganze in eine Doppelschleife einbetten. Sodass ich alle 10 sec. einen Ping auf mac Mini mache und sobald dieser eine Antwort sendet, ich den Mount Befehl ausführe sofern der Ordner noch nicht gemountet ist.



Falls jemand eine Lösung für eins der beiden Problem bitte Antwortet. ich bin echt am verzweifeln.

Liebe Grüße
 
Ich würde empfehlen, nicht ein Schell sondern ein AppleScript zu verwenden (bzw. ne Kombi, kommt drauf an, wie du das aufrufen willst). Dann hast du das Problem mit den root Rechten nicht.
Allerdings mountet der dann automatisch nach /Volumes/$SHARENAME und nicht nach /Users/ABC/Music
Du kannst dir allerdings ganz einfach mit nem symbolic link verhelfen oder, wenn unbedingt nötig (kommt vor), mit nem Alias.

Der Befehl würde dann für ein Shell Script ungefähr so lauten:
Code:
ln -sfv "$(osascript -e 'POSIX path of (mount volume "nfs://user@server/share")'|sed 's/\/$//')" /path/to/link/dest

Das führst du zunächst mal anwesend aus, dann wirst du das PW eingeben müssen, das speicherst du im Keychain (auf dt. Schlüsseldings... ähm... bums ... oder bund), und danach geht es ganz ohne deine Interaktion.

Wenn du einen Alias brauchst, musst du nochmal Applescript bemühen.