Come posso far montare il mio Mac su un'unità di rete all'avvio di un'applicazione?

7

Ho esternalizzato lo spazio di archiviazione per i miei "iTunes Media", "iTunes Music" e "Mobile Applications" utilizzando i link simbolici su un'unità di rete.

Non ho esternalizzato la libreria multimediale completa per motivi di prestazioni con iTunes.

Sarebbe bello connettersi alla mia unità di rete quando avviò iTunes poiché ha esito negativo in modo meno che normale quando l'archivio di rete non è già montato.

C'è un modo per montare un'unità di rete prima dell'avvio di un'applicazione particolare?

    
posta choise 20.06.2012 - 02:50
fonte

4 risposte

5

Usando Automator e l'eccellente utility SleepWatcher , ho una configurazione che si connette automaticamente alla mia unità di rete all'avvio del computer, quindi si riconnette automaticamente quando il computer si riattiva dallo stato di stop.

Ho scritto un tutorial in un post sul blog .

Un aggiornamento in risposta alla domanda di CajunLuke:

L'app di Automator si connette all'unità di rete e incorpora un ritardo di 10 secondi per garantire che la connessione di rete sia pronta.

SleepWatcher viene eseguito come un demone e consente di pianificare l'esecuzione di script quando il computer va in stop o si riattiva. In questo caso lo configuri per eseguire uno script di shell quando il computer si sveglia che chiama la suddetta app di Automator.

    
risposta data 03.10.2012 - 12:39
fonte
2

E la soluzione più semplice sarebbe avere automaticamente le condivisioni di rete montate per te quando accedi. Un programma come Network Drive Launcher aiuta a eseguire automaticamente lo scripting e la connessione alle condivisioni in rete quando si accede.

In alternativa, potresti scrivere uno script Apple che sostituirà il clic sull'icona di iTunes per avviare iTunes, non ideale dato che dovresti prima fare clic sullo script.

  1. Apri l'applicazione AppleScript Editor.
  2. Digita il seguente

--open the network location first
tell application "Finder"
    open location "smb://... OR afp://..."
end tell

--wait 10 seconds adjust this time to meet your needs
delay 10

--open iTunes
tell application "iTunes"
    activate
end tell
  1. Salva il file di script > Salva

  2. Assegna un nome a ciò che ti piace, ma assicurati di impostare il formato del file su "Applicazione" nel menu a discesa "Formato file:".

  3. Esegui lo script, puoi trattarlo come qualsiasi altra applicazione.

Infine, sembra che sia possibile scrivere uno script Apple che faccia esattamente quello che vuoi, ecco un link a qualcosa che potrebbe essere in grado di funzionare con qualche modifica. Non riuscivo a farlo funzionare su Lion, alcuni problemi di sintassi devono essere risolti. Esegui uno script ogni volta che un'applicazione si apre

What you need is an applescript that stays open all the time and performs its tasks periodically. So here's an example applescript for you. Save it as an application and check the "stay open" box to make it stay open after you launch it. The way a stay-open script works is there's 2 main handlers, the "on run" and the "on idle". "on run" runs once at application launch. "on idle" runs every so often. You set how often it runs by returning a number of seconds at the end of the handler. So here's the example... it sets up the application parameters in the "on run" handler and then in "on idle" it can check those parameters. Right now this script just displays the results but you can make it do whatever you want at this point. global applicationsToWatch, idleTime ...

    
risposta data 20.06.2012 - 16:44
fonte
1

Ho creato uno script che si connette a un'unità di rete quando iTunes è in esecuzione. Puoi scaricarlo da questa pagina di prova (cerca "raw" link per il download).

#!/bin/sh

HOST="hostname" # AFP server, e.g. server.local or 192.168.1.94 or…
USER="your_user_name" # for connection to AFP server
PASS="your_password" # for connection to AFP server
VOLUMENAME="your_volume_name" # name of volume to be mounted, typically username on AFP server.

while :
do
    if [[  $(ps axo pid,command | grep "/Applications/[i]Tunes.app/Contents/MacOS/iTunes ") ]]; then

        if [ ! -d "/Volumes/${VOLUMENAME}" ]; then # iTunes runs, Server not mounted
            echo "iTunes runs, now mounting ${VOLUMENAME}..."
            mkdir "/Volumes/${VOLUMENAME}"
            mount_afp afp://${USER}:${PASS}@${HOST}/${VOLUMENAME} "/Volumes/${VOLUMENAME}"
        fi
    fi
sleep 2
done # start over

Fondamentalmente, viene eseguito in un ciclo infinito e controlla ogni due secondi se iTunes.app è in esecuzione. In tal caso, controlla se il tuo volume AFP è già montato, e lo fa in caso contrario.

Dovrai configurare lo script prima di eseguirlo per la prima volta, vedere le variabili in cima allo script. VOLUMENAME è il nome della normale finestra di dialogo di connessione AFP ( ssd in questo caso):

Perverificareselacosafunzionainlineadiprincipio:supponiamocheloscriptsiasuDesktop,intipoTerminalecd~/Desktop/,poi./mount_afp_when_itunes_running.sh.

IncasodiPermissiondenied,impostaleautorizzazionidelfileinmodochetupossaeseguireloscriptconchmod755mount_afp_when_itunes_running.sh,quindiriprova.

Infine,setuttofunziona,puoiavviarequestoscript automaticamente tramite un Launch Agent .

    
risposta data 07.09.2012 - 14:08
fonte
0

Questo potrebbe essere un po 'fuori tema, ma non c'è bisogno di collegare in modo simbolico le directory di iTunes! Per selezionare qualsiasi libreria di iTunes che risieda ovunque su qualsiasi disco, tieni premuto subito dopo aver avviato iTunes.

    
risposta data 07.08.2012 - 23:11
fonte

Leggi altre domande sui tag