Visão geral:
Crie um agente launchd (um script básico neste caso) para nos montar os compartilhamentos que gostarmos a cada dois minutos. Não é perfeito, mas funciona. Isso é para compartilhamentos do Samba, mas você pode modificá-lo para fazer outros tipos.
Feito com a ajuda de Dave Nicoll sobre o compartilhamento de bibliotecas do windows / x do iTunes.
Estou usando a placa sem fio do meu laptop para determinar se estou conectado ao SSID da minha casa. Você pode, claro, usar qualquer coisa que quiser para a execução condicional.
Se você vai usar o SSID como uma condição para a montagem, eu acho que você pode achar que é um bom alias o utilitário Airport que vem com o OS X para seu / usr / bin /. Se não pular para a próxima seção.
Abra o Terminal e execute:
sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/sbin/airport
Lembre-se da saída disso:
airport -I | grep '.* SSID:' | sed 's/^.* SSID: //'
O script:
Minhas condicionais verificam
- O compartilhamento ainda não está montado (linha 1-4)
- O SSID da nossa rede de cartões do aeroporto não é nulo (linha 5-8)
- O nosso SSID deve ser igual a um SSID predefinido, no meu caso "2600leagues" (linha 9)
Abra seu editor de texto favorito e inicie um novo arquivo, eu chamo o meu MountShares.sh
if [ -d '/Users/kyle/Music/iTunes/Podcasts/' ]; then
#echo Nothing to do, share is mounted
exit
else
if [ -z 'airport -I | grep '.* SSID:' | sed 's/^.* SSID: //'' ]; then
#echo SSID is Null, we're not connected with the Airport to any Network.
exit
else
if [ 'airport -I | grep '.* SSID:' | sed 's/^.* SSID: //'' == "2600leagues" ]; then
#echo SSID is 2600leagues!
/sbin/mount -o nodev,nosuid -t smbfs '//Kyle:[email protected]/media/Music' '/Users/kyle/Music/'
fi
fi
fi
Em seguida, precisamos editar a linha 11 para representar suas necessidades específicas. Você só precisa editar as partes negrito :
/sbin/mount -o nodev,nosuid -t smbfs
'//User:Password@ServerIP_or_Name/Share'
'/Where/You/Want/it_to_mount/'
Exemplo:
/sbin/mount -o nodev,nosuid -t smbfs '//Kyle:[email protected]/media/Music' '/Users/kyle/Music/'
Agora que temos nosso comando de montagem editado, tente executá-lo no Terminal . Se for bem sucedido, a sua parte deve estar disponível no local de montagem. (no meu exemplo /Users/kyle/Music/
)
Edite a linha 1 do script bash para refletir um arquivo ou diretório dentro do compartilhamento montado. Se você vai usar o SSID como uma condição que eu tenho, você vai querer mudar linha 5 substituindo 2600leagues pelo seu SSID.
Salve o script bash em um local conveniente. (Eu uso ~/Library/Scripts/NetworkMounts/MountShares.sh
)
Agora você precisa tornar o script bash executável, usamos chmod para fazer isso.
No Terminal :
chmod 777 ~/Library/Scripts/NetworkMounts/MountShares.sh
Se o compartilhamento de rede ainda estiver montado, desmonte / ejete-o agora. ( Localizador funciona)
Tente executar o script por meio do Terminal :
~/Library/Scripts/NetworkMounts/MountShares.sh
Se tudo correr bem, a sua parte deve ser montada. Agora tudo o que resta a fazer é fazer com que o script seja executado de vez em quando. Normalmente, você usaria crontab para esse tipo de coisa, mas 10.6 o desaprovou. A Apple prefere que você use o serviço launchd .
Fazendo o launchd Agent
Para ajudar você a fazer um agente launchd, obtenha Lingon do sourceforge.
- Abrir o Lingon
- Crie um novo agente de usuário (meu agente)
- Dê um nome como
com.kyle.MountShares
- Escolha ou digite o caminho para o bash
roteiro
%código%
- Especifique quando você gostaria que
corre. (Eu tenho Run quando é carregado
pelo sistema e * Run it every
10 minutos)
- Salvar
- Sair do Lingon
É isso
Deixe-me saber se isso ajuda; Eu digitei tudo isso o mais rápido possível.