8 votos

¿Cómo puedo automáticamente a mantener un seguimiento de las horas de oficina cuando me conecto a mi oficina, Wi-Fi?

Estoy buscando una solución que se inicia un temporizador cada vez que inicio sesión en mi oficina wifi y la detiene cuando he dejado. Esencialmente, debe de registro de las horas que he pasado en la oficina. Soy consciente de que hay software iOS para esto, pero me gusta la batería de mi tiempo como es.

Bono Extra sería si la solución podría registro de las horas en iCal de forma automática.

9voto

binarybob Puntos 6395

ControlPlane podría ser algo que usted puede utilizar para lograr esto:

ControlPlane determina dónde está o qué está haciendo, basado en un número de pruebas disponibles de fuentes y, a continuación, automáticamente reconfigura su Mac basado en sus preferencias. La evidencia de las fuentes incluya su ubicación actual, visible redes wi-fi, USB conectado los dispositivos, las aplicaciones en ejecución y más. Usted puede incluso escribir su propia las fuentes de evidencias mediante secuencias de comandos de shell!

En pocas palabras, usted puede dar ControlPlane una "evidencia" de origen, tales como

  • WiFi, redes dentro de su rango o función de la red que se actualmente conectado a

enter image description here

Luego de realizar un conjunto de acciones a la hora de entrar (o salir) de un contexto particular, tales como

  • Abrir cualquier archivo, incluidos el inicio de Aplicaciones
  • Ejecutar una secuencia de comandos, tales como AppleScript o secuencia de comandos de shell

enter image description here

Mi pensamiento es que si ControlPlane sabe lo que su oficina wifi se llama, puede crear reglas para que cuando se conecte a ella inicia una aplicación o script de shell para iniciar el registro de sus horas. Entonces, cuando se desconecta, se detiene la aplicación o ejecutar otro script de shell para detener el registro de sus horas.

Me doy cuenta de que esto podría no ser la "bala de plata" de la solución que estaba buscando, pero podría ser vale la pena intentarlo. Usted todavía tiene que encontrar algún tipo de temporizador de aplicación/script, pero eso es probablemente la parte más fácil del problema :)

4voto

dbkk Puntos 5305

Puede utilizar el comando networksetup -getairportnetwork <device> para obtener el nombre de su actualmente conectados a la red inalámbrica (donde es el ID de dispositivo de su aeropuerto--probablemente en1).

A partir de allí, se puede utilizar launchd para programar un script para que se ejecute cada 5 minutos más o menos lo que va a obtener el nombre de la red inalámbrica a la que estás conectado y el registro de sucesos cuando se conecte por primera vez a su obra wi-fi gratuita.

Dependiendo de lo que usted quiere, puede, a continuación, utilizar la misma secuencia de comandos para iniciar sesión otra entrada cuando nota que no están conectados a tu trabajo, wi-fi, o publicar algún tipo de notificación (tal vez usando un gruñido) en intervalos específicos. Algo a lo largo de las líneas de "he estado en el trabajo durante 9 horas-hora de ir a casa".

O usted podría utilizar el inicio/fin de los tiempos en un registro de ejecución y escribir otro guión analizar y crear algún tipo de informe.

Tengo partes y piezas de estos tipos de secuencias de comandos de ahí, si el tiempo en el trabajo lo permite, voy a añadir algo aquí.

man launchd es bastante útil.

1voto

moodforaday Puntos 2633

Aquí es otra opción para la gente tratando de hacer esto.

En lugar de ejecutar un comando cada 5 minutos, puede ejecutar cada vez que la carpeta /Library/Preferences/SystemConfiguration/ cambios. Generalmente, esto ocurre sólo cuando hay algún tipo de cambio en la red.

Usted puede hacer esto mediante Lingon o hacer su propio launchd plist que sería algo como esto:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>AbandonProcessGroup</key>
        <true/>
        <key>Label</key>
        <string>localhost.on_networkchange</string>
        <key>ProgramArguments</key>
        <array>
                <string>/path/to/your/script.sh</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>WatchPaths</key>
        <array>
                <string>/Library/Preferences/SystemConfiguration/</string>
        </array>
</dict>

Obviamente, usted quiere reemplazar /path/to/your/script.sh a la ruta real.

Tenga en cuenta que puede que tenga que incluir un "sleep 10" cerca del inicio de la secuencia de comandos para dar el Mac una oportunidad para hacer todas sus ajustes después de un cambio de la red que ha sucedido.

También, la manera más fácil para obtener el nombre (SSID) de la red del Aeropuerto que está conectado:

airport -I | awk -F': ' '/ SSID/{print $NF}'

El airport comando se puede encontrar en /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport , en un 10,8 (y creo 10.7 y 10.6)

Yo generalmente enlace a /usr/local/bin:

ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport

puede que necesite sudo ese comando, dependiendo de cómo su /usr/local/bin/ es de la instalación.

Por último, pero no menos importante, es necesario considerar qué hacer cuando usted pone su computadora portátil para dormir. Por ejemplo, si usted está en la oficina de 9 a 5 y el sueño de su computadora portátil en el 5, que desea grabar que demasiado, ¿verdad? De lo contrario, ¿cómo se sabe cuando te fuiste?

Para que os recomiendo SleepWatcher 2.2, que está disponible a partir de http://www.bernhard-baehr.de (libre, de código fuente incluido). Que te permitirá ejecutar una secuencia de comandos de shell cada vez que el Mac se despierta o se duerme.

La única otra consideración es qué hacer si la sesión o apagar el equipo, en lugar de dormir. No tengo una buena respuesta para eso. Teóricamente un LogoutHook sería la respuesta, pero esos parecen poco fiables, especialmente en el cierre vs cerrar la sesión.

Algo completamente diferente sugerencia

Usted ha dicho que usted tiene un dispositivo iOS. Tal vez una manera de resolver este problema sería crear un Recordatorio para cuando usted Llegue o salga del trabajo. Cuando se apague el recordatorio, gatillo Siri y dicen que "Recordar salí del trabajo a las 5 de la tarde" o "Acuérdate de llegar al trabajo a las 9 am" y Siri va a hacer una nota de ello. No es elegante ni completamente automática, pero si me estuviera mirando en el seguimiento de las horas facturables, no me importaría un poco de redundancia :-)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X