0 votos

Ejecutar script a la hora del amanecer

Estoy intentando configurar mi pc hackintosh para que se encienda cada vez que salga el sol y para que ejecute iTunes al arrancar el MacOS usando bash o AppleScript sin aplicaciones de terceros. He llegado a un punto en mi script en el que necesito ayuda para que iTunes se ejecute automáticamente con el arranque del sistema sólo después de la hora de salida del sol, pero no con cualquier otro arranque o reinicio. Para ello tengo la variable de la hora del amanecer en bash script y me gustaría intentar enlazarlo con el trabajo cron o encontrar cualquier otra solución para ejecutar iTunes cada vez que cambie la hora del amanecer.

Aquí está mi código script, que actualiza la hora del amanecer desde el sitio web específico cada hora y funciona bien con el despertar / encender mi hackintosh a la hora del amanecer:

#!/bin/bash

# Downloading webpage which contains the current sunrise time for my timezone
curl -L timezone.ru/suncalc.php?tid=193 > ~/sunrise-time &&

# Parsing the sunrise time stamp from the downloaded file
sunrise=$(grep 'Восход</b>: ' ~/sunrise-time | grep -o '[0-9]:[0-9][0-9]:[0-9][0-9]') &&

# Setting mac wake-up/turinng-on time reading variable from the previous line
echo "SYSTEMPASSWORD" | sudo -S /usr/bin/pmset -a repeat wakeorpoweron MTWRFSU $sunrise

Todo lo que necesito ahora, como dije, es ejecutar iTunes sólo cuando mi hackintosh arranca después de la hora del amanecer, pero no necesito ejecutarlo en ningún otro momento cuando el sistema arranca o se reinicia.

Intenté utilizar lo ofrecido por l0b0 at con algunos atributos pero sin suerte, tal vez no entendí el uso correcto del mismo.

Gracias por su ayuda.

2 votos

Si está dispuesto a considerar una herramienta de terceros, Power Manager puede encender su Mac al amanecer y ejecutar AppleScripts.

1 votos

¿Puede añadir el at comando que has probado?

0 votos

No estoy seguro de haber utilizado los argumentos correctos y de que la ejecución de comandos 'at' esté activada por defecto en MacOS. ¿Es posible dirigir la salida con la variable $ al comando 'at', quizás añadiendo algunos minutos de retraso después de la hora de salida del sol? Gracias.

2voto

Steve Evans Puntos 155

Ejecuta un script en el arranque o en el inicio de sesión. Dentro del script, ejecuta una comprobación para ver si el amanecer ha ocurrido recientemente. Si es así, ejecuta el script de iTunes.

Tu script necesita determinar cuánto tiempo hace que salió el sol. Si el tiempo transcurrido desde el amanecer es lo suficientemente corto, ejecute el script. Lo suficientemente corto podría ser hace cinco minutos; es poco probable que un Mac se reinicie a los cinco minutos de encenderse.

Encender un Mac puede llevar de segundos a minutos. Comprobar la hora desde el amanecer también ayuda a compensar este retraso desconocido.

Cómo resuelve Power Manager este problema

En Gestor de energía que puede tanto encienda su Mac al amanecer y ejecutar el script, dividimos este tipo de problema en dos secciones: el desencadenante y la acción.

El activador programa el Mac para que se encienda al amanecer. Para ello calcular la salida del sol tiempo localmente y poner en cola un IOPMQueue evento. Esto es similar a la consulta de su sitio web y pmset llamar.

La acción realiza el script. En este caso, Power Manager comprobaría en cada evento de encendido si el amanecer esperado se ha producido recientemente. Si es así, se ejecutaría el script. Dentro de Power Manager, esta sensibilidad se llama deriva .

0 votos

Muchas gracias por la explicación detallada. ¿Y es posible comparar si $currenttime > $sunrise que digamos 5 minutos? Sólo he encontrado cómo comparar si es mayor o menor sin utilizar un valor específico. Gracias.

1 votos

¿Esta pregunta se refiere a su script o a Power Manager? Si su script, entonces usted podría convertir el tiempo en tiempo unix o segundos desde una época. Esto facilitará las comparaciones reduciéndolas a simples enteros.

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