¿Se pregunta si hay alguna forma de eliminar un error en Apple Script para montar el servidor?

3

Me preguntaba si alguien podría ayudarme con esto. Lo siento por la pregunta de noob. Recientemente creé un script para montar automáticamente una imagen de Time Machine en un disco duro conectado a mi enrutador. En su mayor parte, el script funciona muy bien. Conecta la unidad cuando enciendo la computadora y, si se desconecta por alguna razón, vuelve a conectar y monta la imagen. Aquí está el guión:

on idle
set mySSID to do shell script "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk '/ SSID/ {print substr($0, index($0, $2))}'"
set mountedDiskName to "Time Machine"
set diskIsMounted to false
if mySSID is "TALKTALK844E28" or mySSID is "TALKTALK844E285G" then
    tell application "System Events" to set diskNames to name of every disk
    if mountedDiskName is in diskNames then
        set diskIsMounted to true
    end if
    if mountedDiskName is not in diskNames then
        set diskIsMounted to false
    end if
    if diskIsMounted is false then
        mount volume "smb://192.168.1.1/"
        delay 30
        do shell script "hdiutil attach -mountpoint '/Volumes/Time Machine' /Volumes/Guille/TimeMachine.sparsebundle"
    end if
    if diskIsMounted is true then
    end if
end if
return 300
end idle

Sin embargo, de vez en cuando, recibo este error:

Realmente no me molesta porque si simplemente hago clic en Aceptar, desaparece y vuelve a intentarlo 5 minutos después. Sin embargo, me gustaría saber si hay una forma de asegurarme de que estos cuadros de diálogo se eliminen automáticamente para que no interrumpan mi flujo de trabajo y Time Machine permanezca discretamente en segundo plano hasta que, accidentalmente, envíe algo a la basura :-)

    
pregunta Gurbinav 30.06.2017 - 09:55

1 respuesta

1

Realmente solo soy un principiante en scripting, pero me pregunto por qué tienes tanto código en tu script. Pude lograr los mismos resultados con solo usar un par de comandos.

mount volume "smb://192.168.2.66/"
do shell script "hdiutil attach -noverify '/Volumes/Data_Smokestack_ATC/James’s MacBook Pro.sparsebundle'"

Tengo ambas Cápsulas de hora de mi aeropuerto configuradas con direcciones IPv4 estáticas, por lo que su IP nunca cambia (por lo que siempre sé cómo conectarme si es necesario)

La parte del script de shell do de mi código espera hasta que finalice el comando de volumen de montaje, por lo tanto, no tuve que insertar un comando de retardo. En mi sistema que utiliza la última versión de macOS Sierra, si ejecuto este código nuevamente mientras el volumen ya está montado, esta secuencia de comandos simplemente se completa sin errores ni mensajes.

Dicho esto, mi pensamiento es ¿no sería simplemente más "eficiente en código" ejecutar estas dos líneas de código dentro de un ciclo de repetición a intervalos de 15 minutos durante 12 o 24 horas o algo así? ¿Entonces para ser guardado como una aplicación abierta?

    
respondido por el wch1zpink 01.07.2017 - 05:56

Lea otras preguntas en las etiquetas