Applescript: comprobar automáticamente y volver a montar el volumen del servidor dejó de funcionar

3

Ayer, encontré una secuencia de comandos que hace que mi Mac (MacBook Pro con El Capitan) busque automáticamente un volumen en un servidor y vuelva a montarlo si se interrumpe la conexión. Lo adapté ligeramente a esto, por lo que mi servidor de medios se volvería a montar cuando se caiga (lo cual es frecuente):

on idle
    tell application "Finder"
        set isConnected to disk "Plex" exists
    end tell
    if isConnected = false then
        try
            mount volume "Plex" on server "smb://USER:[email protected]:445"
        end try
    end if
    return 5
end idle

Guardé la secuencia de comandos como una aplicación del Editor de secuencias de comandos con la opción "Mantener abierto después de ejecutar el controlador", por lo que se ejecuta en segundo plano.

Ayer funcionó bien. Hoy, cuando intenta volver a montar el volumen Plex, aparece el error "Hubo un problema al conectarse al servidor".

Sin embargo, puedo conectarme al servidor usando el comando 'Conectar al servidor' ingresando la misma dirección IP, ID de usuario y contraseña.

Estoy iniciando sesión en el NAS con una cuenta de administrador, por lo que no debería haber problemas con los permisos del disco.

¿Hay algo en el script que he codificado o es un problema con Mac o NAS?

Soy completamente nuevo en scripting, por lo que puedo pedir aclaraciones sobre cualquier respuesta.

Me gustaría incluir un enlace al script original, pero no recuerdo dónde lo encontré.

Gracias.

    
pregunta Richard Cosgrove 13.10.2015 - 16:52

2 respuestas

1

Logré resolver este problema 'tomando prestado' un código de un blog que encontré .

on idle
    set intnt to do shell script "ping -c 1 192.168.0.10; echo -n"
    set paras to number of paragraphs in intnt
    if paras < 5 then
    else
        set serverIP to "smb://192.168.0.10/Plex"
        set UserAccount to "[USERNAME]"
        set ServerPassword to "[PASSWORD]"
        set serverVolume to UserAccount
        tell application "Finder"
            try
                if disk serverVolume exists then
                else
                    mount volume serverIP as user name UserAccount with password ServerPassword
                end if
            end try
        end tell
    end if
    return 5
end idle

También encontré que si agregue este código al final del archivo info.plist de una aplicación, su icono no aparece en el Dock.

Simplemente copie y pegue estas líneas antes de la entrada final / dict.

El inconveniente es que tengo que usar el Administrador de Actividades o la Terminal para matar la aplicación, pero hace que para un Dock más ordenado.

<key>LSUIElement</key>
<true/>
    
respondido por el Richard Cosgrove 15.10.2015 - 01:57
0

AppleScript puede ser un poco buggy. Recientemente, he tenido algunas secuencias de comandos que se han solucionado sin ninguna razón aparente. Hice un pequeño cambio, guardé, luego deshice el cambio y lo guardé de nuevo, y el problema desapareció ... Hasta que volvió una semana después (un problema antiguo y recurrente). No estoy del todo seguro de si eso lo solucionará en su caso, pero sí un punto importante: no es necesario que especifique el número de puerto al final del nombre de dominio o la dirección IP, si el puerto es el predeterminado para el protocolo. El puerto 445 es el predeterminado para SMB. Puede eliminar toda la parte ": 445". Con idiomas poco confiables, nunca se sabe qué podría solucionar su problema.

    
respondido por el William T Froggard 14.10.2015 - 04:10

Lea otras preguntas en las etiquetas