Netzlaufwerke auswerfen

Tobich

Tobich

Aktives Mitglied
Thread Starter
Dabei seit
01.01.2010
Beiträge
2.994
Reaktionspunkte
163
Hallo zusammen

Ich habe ein Script mit dem ich vor dem Ausschalten automatisch die Netzlaufwerke aushänge:
Code:
do shell script "umount /Volumes/Cloud"
do shell script "umount /Volumes/music"
do shell script "umount /Volumes/MOVIE"
do shell script "umount /Volumes/Mac"
do shell script "umount /Volumes/ClientBackup"
do shell script "umount /Volumes/Musik"
do shell script "umount /Volumes/ServerHDD"
do shell script "umount /Volumes/Videos"
do shell script "umount /Volumes/Vmware"
Am Morgen wen das Nas Hochgefahren ist werden sie wieder gemountet.
Jedoch klappt es nicht wirklich gut, warum auch immer plötzlich habe ich am nächsten tag ein solches Laufwerk:
/Volumes/MOVIE-1

Bei diesem einfachen script ist es ja so wen jetzt zb. die Cloud schon ausgeworfen wurde aus irgend einem Grund bricht das script ab. wie kann ich das verhindern so das es Trotzdem weiter läuft, automatisch.
Wie verhindere ich das es zu Laufwerksnamens Änderungen kommt wie bsp. /Volumes/MOVIE-1.

Besten dank für eure Hilfe.
Die scripte werden Zeitgesteuert gestartet mit dem Tool Cronette das auswerfen erfolgt ca. 25 min vor dem Shutdown des NAS also sollte es doch reichen um alles auszuwerfen..
 
Code:
try
do shell script "umount /Volumes/Cloud"
end
try
do shell script "umount /Volumes/music"
end
try
do shell script "umount /Volumes/MOVIE"
end
try
do shell script "umount /Volumes/Mac"
end
try
do shell script "umount /Volumes/ClientBackup"
end
try
do shell script "umount /Volumes/Musik"
end
try
do shell script "umount /Volumes/ServerHDD"
end
try
do shell script "umount /Volumes/Videos"
end
try
do shell script "umount /Volumes/Vmware"
end
Warum zusätzliche Software bemühen? Zeitsteuern tut man Skripts am besten mit launchd. Siehe Programm LaunchControl.
 
Zuletzt bearbeitet:
Danke für deine Hilfe und mühe das Skript an zum passen.
Nur etwas gibt mir Rätsel auf und das ist das: /Volumes/MOVIE-1
Warum setzt OSX -1 vernein es gibt kein /Volumes/MOVIE ?
Code:
//server@192.168.0.28/Backup2                   5859205968  1411150512  4448055456    25%    88196905   278003466   24%   /Volumes/Backup2
//server@192.168.0.28/Movie-backup              7813365344  5742320752  2071044592    74%   358895045   129440287   73%   /Volumes/Movie-backup
//server@192.168.0.28/Backup3                   5859861344  3756975456  2102885888    65%   234810964   131430368   64%   /Volumes/Backup3
//server@192.168.0.28/Backup4                   7813365344  3871974272  3941391072    50%   241998390   246336942   50%   /Volumes/Backup4
//Mac-Server@192.168.0.176/Cloud               63723208704 34049604728 29673603976    54% 17024802362 14836801988   53%   /Volumes/Cloud
//Mac-Server@192.168.0.176/Mac                 63723208704 34049604728 29673603976    54% 17024802362 14836801988   53%   /Volumes/Mac
//Mac-Server@192.168.0.176/Musik               63723208704 34049604728 29673603976    54% 17024802362 14836801988   53%   /Volumes/Musik
//Mac-Server@192.168.0.176/ServerHDD           63723208704 34049604728 29673603976    54% 17024802362 14836801988   53%   /Volumes/ServerHDD
//Mac-Server@192.168.0.176/Vmware              63723208704 34049604728 29673603976    54% 17024802362 14836801988   53%   /Volumes/Vmware
//Mac-Server@192.168.0.176/music               63723208704 34049604728 29673603976    54% 17024802362 14836801988   53%   /Volumes/music
//Mac-Server@192.168.0.176/ClientBackup        63723208704 34049604728 29673603976    54% 17024802362 14836801988   53%   /Volumes/ClientBackup
//Mac-Server@192.168.0.176/Videos              63723208704 34049604728 29673603976    54% 17024802362 14836801988   53%   /Volumes/Videos
//Mac@192.168.0.77/ISO                         56226805192 43971852768 12254952424    79% 21985926382  6127476212   78%   /Volumes/ISO
//Mac@192.168.0.77/Filmediting                 56226805192 43971852768 12254952424    79% 21985926382  6127476212   78%   /Volumes/Filmediting
//Mac-Server@192.168.0.176/MOVIE               12884901888  8754952576  4129949312    68%  4377476286  2064974656   68%   /Volumes/MOVIE-1 Sollte als Movie gemundet werden nicht als MOVIE-1
Wie kann ich das Korigieren

Wen ich:
Code:
macmini-server:~ user$ diskutil unmount /Volumes/MOVIE-1
Unmount successful for /Volumes/MOVIE-1
Wird das Volumen MOVIE-1 ausgeworfen..
Verbinde ich es wieder mit gehe zu server verbinden habe ich wieder ein MOVIE-1

Alles voll mit weiteren laufenden Volumen?
Bildschirmfoto 2017-08-12 um 21.27.56.png


Kann ich das Auswerfen auch erzwingen? welchen parameter müsste ich da noch setzten?

Das Problem ist GoodSync läuft noch währen die Laufwerke ausgeworfen werden..
Oder ich beende den und starte ihn danach jeweils wieder...
 
Nun das mit dem "-1" liegt darin, dass das Movie als Verzeichnis unter /Volumes ziemlich wahrscheinlich existiert.
Das Problem ist nicht so ganz unbekannt.

Ich habe es damals für mich so gelöst
- zuerst von Hand alles Volimes von Servern getrennt
- alle verbleibende Verzeichnisse von Hand gelöscht

Für Mount Skript habe ich dann eingebaut, dass zuerst geschaut wird ob eins von den Verzeichnissen die ich mounten will existiert. Wenn ja löschen und erst dann mounten.
 
Für Mount Skript habe ich dann eingebaut, dass zuerst geschaut wird ob eins von den Verzeichnissen die ich mounten will existiert. Wenn ja löschen und erst dann mounten.

Hast du mir dafür die nötigen Befehle, wie dies aussehen muss ?

Besten Dank
 
Hast du mir dafür die nötigen Befehle, wie dies aussehen muss ?

Jupp. ich habe noch mal nachgeschaut wie ich das wirklich gemacht habe.
Also das löschen habe ich in dem unmount Skript.

In Deinem Fall wäre es

Code:
do shell script "umount /Volumes/Cloud"
do shell script "umount /Volumes/music"
do shell script "umount /Volumes/MOVIE"
do shell script "umount /Volumes/Mac"
do shell script "umount /Volumes/ClientBackup"
do shell script "umount /Volumes/Musik"
do shell script "umount /Volumes/ServerHDD"
do shell script "umount /Volumes/Videos"
do shell script "umount /Volumes/Vmware"

do shell script "rmdir /Volumes/Cloud"
do shell script "rmdir /Volumes/music"
do shell script "rmdir /Volumes/MOVIE"
do shell script "rmdir /Volumes/Mac"
do shell script "rmdir /Volumes/ClientBackup"
do shell script "rmdir /Volumes/Musik"
do shell script "rmdir /Volumes/ServerHDD"
do shell script "rmdir /Volumes/Videos"
do shell script "rmdir /Volumes/Vmware"


Ich habe das ganze als Shellscript und nicht als AppleScript. Dürfte hier kein Unterschied machen. mit dem "rmdir" ist sichergestellt, dass nur das Verzeichnis gelöscht wird. Liegen da Dateine drin weil z.B das umount nicht geklappt hat, wird auch das Verzeichnis nicht gelöscht weil nicht leer.
 
  • Gefällt mir
Reaktionen: Tobich
@ObiTobi

Danke für deine Hilfe
Ich bekomme jedoch immer diese Fehlermeldung:
Bildschirmfoto 2017-08-20 um 19.11.33.png

Was ja klar ist wen das auswerfen erfolgreich war.. wie kann ich diese Meldung unterbinden ? oder Automatisiert bestätigen ?
 
Hallo,

siehe unten…

Ich habe es Dir mal "besser" getippt.
Könnte man noch schöner machen in dem man auf Existenz prüft.
Aber das wäre Deine "Hausaufgabe".

Viele Grüße

Code:
--

set theText to "/Volumes/Cloud
/Volumes/music
/Volumes/MOVIE
/Volumes/Mac
/Volumes/ClientBackup
/Volumes/Musik
/Volumes/ServerHDD
/Volumes/Videos
/Volumes/Vmware"

--

set allVolumes to paragraphs in theText

--

repeat with nVolume in allVolumes
   
    --
   
    -- display alert "path" message nVolume
   
    --
   
    try
       
        --
       
        do shell script "umount " & quoted form of nVolume
       
        --
       
        do shell script "rm -fR " & quoted form of nVolume -- Obacht, ob gewollt?
       
        --
       
    on error errorText number errorNumber
       
        --
       
        -- display alert (errorNumber as text) as critical message errorText
       
        --
       
    end try
   
    --
   
end repeat

--
 
  • Gefällt mir
Reaktionen: Tobich
Ich sehe gerade, pass mit dem "rm -fR" auf…

Viele Grüße
 
Hier mal ein Beispiel:

Ich habe in einem Automatismus folgenden Pfad angegeben "/Volumes/Mein Daten/Pfad/Zum/Ordner".
Dann hat das Teil dort auch immer schön rein gespeichert.

Da das Ding selbstständig arbeitet ist es mal passiert, dass das Laufwerk ausgeworfen und als "Mein Daten-1" wieder eingehängt wurde.
Nach einem Neustart ist mir der Misstand aufgefallen und ich habe die Festplatte ausgeworfen.

Dann blieb noch der "Mein Daten" verwaist übrig und so "klug" wie ich war mit "rm" mal schnell gelöscht.
Dumm nur, dass darin die Daten lagen, da sie nie auf der Festplatte "Mein Daten" gelandet sind, da der Pfad eben "/Volumes/Mein Daten-1/Pfad/Zum/Ordner" nicht angesprochen wurde.

Also Obacht beim Löschen von Mounting Points…

Viele Grüße
 
könnte mann rm -fr nicht durch den Befehl rmdir ersetzten ?
wie oben bereits genannt ?
 
Was ja klar ist wen das auswerfen erfolgreich war.. wie kann ich diese Meldung unterbinden ? oder Automatisiert bestätigen ?

Tja das ich zumindest für mich immer so das Problem mit dem Zusammenspiel AppleScript/ Shell

Spontan fällt mir hier nur:
Code:
if [ -d "/Volumes/Cloud" ]; then
     rmdir /Volumes/Cloud
fi

Das musstest Du dann in eine Schleife mit allen Mountpoints einbinden, damit Du diesen Code nicht X mal tippen/ abarbeiten musst.
 
Warum was kann da im Worst case Passieren ?
Im Worst Case, sprich der unmount-Befehl vorher hat nicht funktioniert, löschst du alle Dateien und Verzeichnisse auf deiner Freigabe.
 
Spontan fällt mir hier nur:
das reicht alleine nicht. du willst ja wissen, ob das DIR leer ist.
am besten prüft man, ob das volume wirklich noch gemountet ist (evtl. halt mit semaphoren), dann, wenn's unmountet, aber noch da ist, ob es leer ist.

falls man nicht alles, oder später, prüfen will/kann:
Code:
do shell script "rmdir DIR; exit 0"
das wirft keinen fehler und damit kann fast nix passieren, ausser ein gemountetes volumes wäre tatsächlich leer.
 
das reicht alleine nicht. du willst ja wissen, ob das DIR leer ist.

Damit wäre es meiner Meinung nach Sinnvoller das löschen der Verzeichnisse ins "mount-Script" zu verlagern. Denn hier ist schon vorab sicher - nichts ist gemounted und damit muss Verzeichnis leer sein, sonst ist schon woanders ein Fehler
 
bin ich anderer meinung und vorab ist es ja auch nicht sicher, wenn du irgendwann vorher schon mal gemountet hast und dir jetzt einfach eine passende ordnerleiche rumliegt. für mich gehört das schon zum unmounten – mount weg -> DIR abräumen -> ende.
da gehört beim mounten eine ordentliche meldung hin, wenn der ordner schon existiert, aber als mountpoint nicht genutzt werden kann und der user kann/muss eingreifen. automatisch einfach zahlen dranzuhängen ist für mich, als workflower, ein kompletter witz. genauso beim abräumen, wenn das fehlschlägt, muss da eine meldung kommen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: dg2rbf
da gehört beim mounten eine ordentliche meldung hin

Na ja dafür wäre aber Apple zuständig ;)
Das was wir hier machen ist Unzulänglichkeiten der Fa. irgendwie umzugehen.

Prinzipiell hast natürlich mit den Prüfungen recht, da ist die Frage nach Aufwand und vorherigen überlegen was kann wirklich wann passieren.
 
Hm:confused: das ganze scheint ziemlich komplex zu sein, ich glaube ich belasse es einmal mit dem
rmdir Befehl die Meldung kann ich ja dan weg klicken..:) Ist einfacher und schneller als ein Backup ein zu spielen auf einem versehentlich gelöschten Shar..:D

Aber besten dank für eure Mühe.:clap:
 
Zurück
Oben Unten