Mi chiedo se c'è un modo per sbarazzarsi di un errore in Apple Script per montare il server

3

Mi chiedevo se qualcuno potesse aiutarmi con questo. Ci scusiamo per la domanda noob. Di recente ho creato uno script per montare automaticamente un'immagine Time Machine su un disco rigido collegato al mio router. Per la maggior parte, la sceneggiatura funziona alla grande. Attacca l'unità quando accendo il computer e, se si disconnette per qualsiasi motivo, ricollega e monta di nuovo l'immagine. Ecco lo script:

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

Tuttavia, ogni tanto ottengo questo errore:

In realtà non mi infastidisce, perché se clicco su OK, si spegne e riprova dopo 5 minuti. Tuttavia, vorrei sapere se c'è un modo per assicurarsi che queste finestre di dialogo vengano automaticamente ignorate in modo che non interrompano il mio flusso di lavoro e Time Machine rimanga discreto in background finché non invii qualcosa nel cestino: -)

    
posta Gurbinav 30.06.2017 - 09:55
fonte

1 risposta

1

Sono davvero solo un principiante nello scripting, ma mi chiedo perché tu abbia così tanto codice nel tuo script. Sono stato in grado di ottenere gli stessi esatti risultati usando solo un paio di comandi.

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

Ho entrambi i miei Airport Time Capsules impostati con indirizzi IPv4 statici, quindi i loro IP non cambiano mai (quindi so sempre come collegarli se necessario)

La parte di script shell fa del mio codice attende fino al completamento del comando mount volume, quindi non ho bisogno di inserire un comando delay. Sul mio sistema che utilizza l'ultima versione di macOS Sierra, se eseguo nuovamente questo codice mentre il volume è già montato, lo script si completa in modo silenzioso senza errori o messaggi.

Detto questo, il mio pensiero non sarebbe solo un "codice efficiente" per eseguire queste due righe di codice all'interno di un ciclo ripetuto a intervalli di 15 minuti per 12 o 24 ore o qualcosa del genere? Quindi per essere salvato come applicazione di soggiorno aperto?

    
risposta data 01.07.2017 - 05:56
fonte

Leggi altre domande sui tag