- Registriert
- 11.08.10
- Beiträge
- 50
Ich weiß, dass es zu diesem Thema wahrscheinlich schon hunderte Themen gibt, zig Seiten im Netz, die das Theman aufgreifen, aber bisher hab' ich noch keine für mich wirklich passende Lösung gefunden (vielleicht gibt es keine?).
Das Problem ist folgendes:
Ein Kunde von mir hat ein MacMini Server im Einsatz. Als Backuplösung läuft Pressstore Backup. Zum sichern haben wir zwei Netzwerkplatten im Einsatz, welche täglich getauscht werden.
Momentan ist der Workaround, dass die Platte angeschlossen wird und anschließend die Platte über ein Skript gemountet wird, das Backup startet dann zur vorgegebenen Zeit. Am nächsten Tag dann das Gleiche Spiel mit der zweiten Platte.
Ich hätte halt gerne ein Skript, welches, sobald die Platte ans Netz angeschlossen wird, dieses evtl. die Platte einschaltet (falls möglich) und anschließend solange ein Ping absetzt, bis die Platte gefunden wird um diese dann anschließend zu mounten.
Im Netz hab' ich irgendwo das folgende Skript gefunden. Das ist auch wie ich finde schon recht mächtig, aber es befridigt mich dann doch nicht so ganz.
Was ich mich jetzt frage, gibt es für die Abfrage des Pings evtl. eine bessere Lösung, weil er vergleicht ja nach dem Absetzen nur den Text, ob er mit der Ausgabe übereinstimmt.
Aber sobald ja einmal ein Paket nicht ankommt, läuft das Ding ja schon ins Leere.
Eine andere Frage wäre, gibt es die Möglichkeit, falls die Platte WakeOnLan oder Ähnliches unterstützt, diese mit einem Skriptbefehl einzuschalten?
Ich hoffe ihr könnt mir helfen
Grüße Shadow
Das Problem ist folgendes:
Ein Kunde von mir hat ein MacMini Server im Einsatz. Als Backuplösung läuft Pressstore Backup. Zum sichern haben wir zwei Netzwerkplatten im Einsatz, welche täglich getauscht werden.
Momentan ist der Workaround, dass die Platte angeschlossen wird und anschließend die Platte über ein Skript gemountet wird, das Backup startet dann zur vorgegebenen Zeit. Am nächsten Tag dann das Gleiche Spiel mit der zweiten Platte.
Ich hätte halt gerne ein Skript, welches, sobald die Platte ans Netz angeschlossen wird, dieses evtl. die Platte einschaltet (falls möglich) und anschließend solange ein Ping absetzt, bis die Platte gefunden wird um diese dann anschließend zu mounten.
Im Netz hab' ich irgendwo das folgende Skript gefunden. Das ist auch wie ich finde schon recht mächtig, aber es befridigt mich dann doch nicht so ganz.
Code:
property usrn : "" --< do NOT pick in your username here!
property pswd : "" --< do NOT pick in your password here!
(* Just save this script as application. Within first script-start you will be asked
for username & password and it will be stored as property in the script-app for the future.
But please customize the vars "serv" and "volList" in the next two paragraphs,
that's all to do in Script Editor. *)
set serv to "IP"
set volList to {"Share"}
set firstMount to true
-- :::::::::::::::::::::::::::::::::::::::: hohabadu.de ::::::::::::::::::::::::::::::::::::::::
(* © by H =:o) L G I (alias Holger Hansen)
Ich würde mich freuen, wenn bei Verwendung des Codes oder Teilen davon
diese Zeilen erhalten bleiben, zumindest aber die Zeile m. d. Hinweis auf die Website *)
-- username & password configuration
if usrn is "" and pswd is "" then
set usrn to text returned of (display dialog "Username for Server \"" & serv & "\":" default answer "username")
set pswd to text returned of (display dialog "Password for Server \"" & serv & "\":" default answer "password" with hidden answer)
end if
-- mounting volumes, if necessary and the Server is available
-- check, if the server is available
if my checkServer(serv) then
repeat with vol in volList
-- check, if volume isn't already mounted
if vol is not in (list disks) then
-- check, if that's the first attempt to mount a volume of the server
if firstMount then
try
mount volume "afp://" & usrn & ":" & pswd & "@" & serv & "/" & vol
on error
-- mount volume "afp://" & serv & "/" & vol
end try
else
-- mount volume "afp://" & serv & "/" & vol
end if
end if
set firstMount to false
end repeat
else
activate
display dialog "Server \"" & serv & "\" isn't available at this moment!" with icon stop giving up after 20
end if
on checkServer(ServerIP)
try
set t to do shell script "ping -c 1 -t 3 " & ServerIP
if t contains "0% packet loss" then
return true
else
return false
end if
on error
return false
end try
end checkServer
Code:
set t to do shell script "ping -c 1 -t 3 " & ServerIP
if t contains "0% packet loss" then
Eine andere Frage wäre, gibt es die Möglichkeit, falls die Platte WakeOnLan oder Ähnliches unterstützt, diese mit einem Skriptbefehl einzuschalten?
Ich hoffe ihr könnt mir helfen
Grüße Shadow