13 votos

OS X: ¿Existe un programa programador incorporado?

Me gustaría programar una tarea para que se ejecute con parámetros a una hora/fecha específica en el futuro.

¿Incluye OS X alguna herramienta de este tipo (aunque sea de línea de comandos)? Si no es así, ¿hay alguna herramienta gratuita o relativamente barata para conseguirlo?

16voto

Gareth Jenkins Puntos 1480

Aunque la respuesta de KeithB es correcta, en realidad, cron está siendo obsoleto a favor de la Específico para OS X launchd .

Comandos que se ejecutan a través de launchd se describen en "plists" de Apple, o listas de propiedades, que en realidad son sólo archivos XML:

<?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>Label</key>
    <string>com.apple.periodic-daily</string>
    <key>ProgramArguments</key>
    <array> 
        <string>/usr/sbin/periodic</string>
        <string>daily</string>
    </array>
    <key>LowPriorityIO</key>
    <true/>
    <key>Nice</key>
    <integer>1</integer>
    <key>StartCalendarInterval</key>
    <dict>  
        <key>Hour</key>
        <integer>3</integer>
        <key>Minute</key>
        <integer>15</integer>
    </dict>
</dict>
</plist>

Dicho esto, no es una forma muy amigable (ni parecida a la de Mac) de programar la ejecución de comandos. Esta pregunta en SuperUser enumera algunas alternativas de la interfaz gráfica de usuario, entre ellas:

Lingon Screencap

launchd Editor ($5 Shareware)

Screen Capture

4 votos

No es justa la caracterización de que launchd es "propietario". Apple lo abrió con entusiasmo en launchd.macosforge.org y ha sido portado a FreeBSD.

0 votos

@ohmantics: Ok, es justo el punto. ¿Es "específico" una mejor descripción?

0 votos

Casi. :-) Apple lo creó, pero espero que tenga una mayor adopción en los sistemas operativos tipo BSD.

4voto

Bill Puntos 1408

También puedes iniciar flujos de trabajo de Automator con iCal si quieres algo sencillo. De lo contrario, lo haría a través de launchd.

0 votos

El único problema con iCal es que tienes que estar conectado para que la tarea se ejecute (¿correcto?)

0 votos

Sí, creo que debes estar conectado para hacer esto. Yo recomendaría el proceso de launchd por encima de esto, pero algunas personas prefieren simplemente usar iCal y siempre están conectados.

0 votos

ICal es una solución mucho más fácil. Mira las capturas de pantalla que he publicado. Ya veo que pueden ser intimidantes :-)

3voto

Steve Evans Puntos 155

iCal puede utilizarse para ejecutar AppleScripts , lanzar aplicaciones y realizar tareas según una programación.

El uso de iCal tiene sus limitaciones, pero está incluido en Mac OS X y es relativamente fácil de configurar. En el enlace anterior se incluyen las limitaciones y un recorrido visual sobre cómo configurar un AppleScript programado.

Setting up a scheduled AppleScript with iCal on Mac OS X

2voto

Mads Kristiansen Puntos 580

Hay dos herramientas de línea de comandos de Unix que hacen lo que quieres. at le permitirá programar una tarea para que se ejecute una vez en un momento específico en el futuro. Por supuesto, parte de la tarea podría ser programar otra tarea.

cron permite programar tareas para que se ejecuten regularmente a la misma hora, según la hora del día, el día de la semana, etc.

Una cosa a tener en cuenta es que ambos no ejecutarán las tareas si su máquina no está funcionando en el momento en que se programan. Hay alternativas, como anacron, que ejecutarán las tareas programadas la próxima vez que la máquina arranque.

2 votos

Tenga en cuenta que, por defecto, el comando "at" está desactivado. Utiliza "man atrun" para saber cómo habilitarlo.

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