9 votos

Ejecutar el acceso directo de Mac en un horario

¿Hay alguna manera de ejecutar una de las nuevas (en MacOS 12) tareas de acceso directo en un horario? Parece que se puede hacer manualmente de varias maneras, pero no veo una manera de automatizarlo.

No parece que se conecte con la antigua aplicación Automator, que creo que probablemente va a desaparecer en algún momento de todos modos. No parece estar disponible como una acción de alerta en el calendario.

En concreto, estoy mirando el acceso directo para enviar un correo electrónico de la agenda diaria -este es un caso bastante perfecto para programar algo, ya que el Calendario de iCloud no lo tiene como opción- pero es bastante inútil si tengo que acordarme de pulsar un botón cada mañana.

6voto

Michael Thompson Puntos 1104

Basándome en la respuesta de @Gintaras, como se puede ejecutar un acceso directo desde un shell script, he podido conseguirlo - pero no con launchd.

En su lugar, he creado una nueva aplicación en la aplicación Automator, para ejecutar un shell script, con el contenido:

#!/bin/sh

cd /Users/MY_USER_NAME
shortcuts run "Email Schedule to Yourself"

Entonces añadí una entrada de calendario recurrente a las 6 de la mañana, con una alerta personalizada para abrir un archivo, y seleccioné esta aplicación. Cuando llegó la hora, el correo electrónico se envió con éxito.

He leído rumores de que Automator va a desaparecer algún día, así que puede que esto no sea una solución permanente, pero estoy seguro de que nos servirá para los próximos años.

Y para que sepas: intenté saltarme el paso de Automator y ejecutar ese script directamente desde Calendar, pero aparentemente a Calendar no le gusta ejecutar script.

5voto

Gintaras Puntos 62

Pregunta relacionada en Stack Overflow:

Programar un comando de terminal o un archivo script para que se ejecute diariamente a una hora determinada Mac OS X

La gente está utilizando launchd para conseguirlo. Personalmente, uso eventos del servidor mysql con lib_mysqludf_sys-master y eventos de replicación de tablas dedicadas. Es difícil configurar todo, pero es muy conveniente añadir/editar/eliminar trabajos simplemente editando las filas de la tabla mysql.

Para ejecutar un acceso directo desde el terminal:

shortcuts run "YOUR SHORTCUT NAME"

Para ejecutar con launchd su archivo plist debe ser algo así:

<?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>Label</key>
        <string>com.example.volume</string>
        <key>ProgramArguments</key>
        <array>
                <string>sh</string>
                <string>-c</string>
                <string>shortcuts run "YOUR SHORTCUT NAME"</string>
        </array>
        <key>StartCalendarInterval</key>
        <dict>
                <key>Hour</key>
                <integer>23</integer>
                <key>Minute</key>
                <integer>45</integer>
        </dict>
</dict>
</plist>

1voto

Enrico Puntos 11

Otra posible solución que sigue utilizando launchd pero que se configura a través de una GUI es utilizar algo como LaunchControl ( https://soma-zone.com/LaunchControl/ (aplicación de pago). Una vez más, esto es lo mismo que la respuesta de @Gintaras pero utilizando una GUI en lugar de escribir XML.

Editar: Otra alternativa es Lingon, una aplicación similar que actúa como una GUI para launchd ( https://www.peterborgapps.com/lingon/ ) también es una aplicación de pago...

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