Applescript: controlla e rimonta automaticamente il volume del server smesso di funzionare

3

Ieri ho trovato uno script che fa sì che il mio Mac (MacBook Pro che esegue El Capitan) controlli automaticamente la presenza di un volume su un server e lo rimetta in sesto se la connessione si interrompe. L'ho adattato leggermente, quindi il mio media server si rimonterebbe quando cade (che è frequente):

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

Ho salvato lo script come app di Script Editor utilizzando l'opzione "Resta aperto dopo l'esecuzione del gestore", quindi viene eseguito in background.

Ieri ha funzionato bene. Oggi, quando tenta di rimontare il volume Plex, viene visualizzato un errore "Si è verificato un problema di connessione al server".

Tuttavia, posso collegarmi al server utilizzando il comando "Connetti al server" immettendo lo stesso indirizzo IP, ID utente e password.

Sto accedendo al NAS con un account amministratore, quindi non dovrebbero esserci problemi di autorizzazione del disco.

C'è qualcosa nello script che ho criptato o si tratta di un problema con il Mac o il NAS?

Sono completamente nuovo nello scripting, quindi potrei chiedere chiarimenti su eventuali risposte.

Vorrei includere un collegamento allo script originale, ma non riesco a ricordare dove l'ho trovato.

Grazie.

    
posta Richard Cosgrove 13.10.2015 - 16:52
fonte

2 risposte

1

Sono riuscito a risolvere questo problema prendendo in prestito un codice da un blog che ho trovato .

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

Ho anche scoperto che se tu aggiungi questo codice alla fine del file info.plist di un'app, la sua icona non viene visualizzata nel Dock.

Basta copiare e incollare queste righe prima della voce finale / dict.

Il lato negativo è che devo usare Activity Manager o Terminal per uccidere l'app, ma è un Dock più ordinato.

<key>LSUIElement</key>
<true/>
    
risposta data 15.10.2015 - 01:57
fonte
0

AppleScript può essere un po 'buggato. Recentemente, ho avuto alcuni script che si stavano verificando senza alcun motivo apparente. Ho apportato una piccola modifica, ho salvato, poi ho annullato la modifica e l'ho salvata di nuovo, e il problema è andato via ... Fino a quando non è tornato una settimana dopo (un vecchio problema ricorrente). Non sono del tutto sicuro se questo lo risolverà nel tuo caso, ma un punto di nota: non è necessario specificare il numero di porta alla fine del nome di dominio o dell'indirizzo IP, se la porta è l'impostazione predefinita per il protocollo. La porta 445 è l'impostazione predefinita per SMB. È possibile rimuovere l'intera parte ": 445". Con lingue inaffidabili, non sai mai cosa potrebbe risolvere il tuo problema.

    
risposta data 14.10.2015 - 04:10
fonte

Leggi altre domande sui tag