Ejecutar un script automáticamente cuando estoy conectado a Internet en Mac [duplicar]

1

Posible duplicado:
Ejecutar script en OS X 10.6 en conexión de red. (como /etc/network/if-up.d/)

Configuré los túneles ssh para poder acceder a varias computadoras en el trabajo a través de nuestra puerta de enlace. El problema es que no me gusta tener que configurar esto cada vez que enciendo mi computadora o me conecto / desconecto a Internet, por lo que espero que exista una forma en la que pueda ejecutar automáticamente un script de shell para configurar Los túneles cada vez que me conecto a internet. Tengo una configuración similar en mi estación de trabajo en la oficina que ejecuta Ubuntu y utiliza el /etc/network/if-up.d y if-down.d. ¿Hay un equivalente en la Mac?

thetaiko
fuente
Posible Duplicar
Daniel Beck

Respuestas:

2

Supongo que herramientas conscientes del contexto como Marco Polo Puede hacer el truco, seguramente si usa algún script de shell para configurar los túneles:

Coincidencia difusa basada en reglas flexibles en:

  • [..]
  • Direcciones IP asignadas
  • Enlaces de red activos
  • Redes wifi visibles

Acciones activadas al cambiar el contexto (ya sea entrando o saliendo), con un retraso opcional:

  • [..]
  • Montaje de recursos compartidos de red (smb: //, afp: //, etc.)
  • Cambio de ubicación de red de OS X
  • Salir de una aplicacion
  • Ejecutar un script de shell (o cualquier otro tipo de script, a través de Ornitorrinco )
  • Establecer o desconectar VPN
Arjan
fuente
Este es exactamente el tipo de cosas que MarcoPolo puede manejar y lo he usado en el pasado para establecer un túnel VPN cada vez que me conecto a una red específica (cuando muevo una computadora del trabajo al hogar y viceversa). Herramienta muy útil.
Ian C.
Esto parece bastante prometedor: tendré que jugar un rato con él durante unos minutos.
thetaiko
Exactamente lo que estaba buscando, gracias.
thetaiko
3

No incorporado; este tipo de cosas generalmente se maneja con launchd en OS X, pero los eventos de red up / down no están en su lista de activadores. Por suerte, PyMacAdmin incluye un programa, crankd, que proporciona esta capacidad. aquí es un ejemplo de uso de crankd para hacer algo similar (aunque lo está utilizando para lanzar un módulo Python en lugar de un script de shell, por lo que los detalles son un poco diferentes). No he intentado esto, pero parece que solo necesitarías crear un archivo de lista de crankd algo como esto:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>SystemConfiguration</key>
    <dict>
        <key>State:/Network/Global/IPv4</key>
        <dict>
            <key>command</key>
            <string>/usr/local/libexec/networkchangescript</string>
        </dict>
    </dict>
</dict>
</plist>

... luego escriba / usr / local / libexec / networkchangescript para detectar si la red está activa (AIUI se iniciará para cualquier cambio, ya sea hacia arriba, hacia abajo o hacia los lados) y configure túneles si corresponde. Finalmente, cree una lista de inicio para ejecutar crankd (vea el ejemplo que vinculé para más detalles).

Gordon Davisson
fuente