3 votos

¿Cómo debo programar un trabajo único?

Contexto: Quiero programar varios servidores de los que me ocupo para que se instalen varias actualizaciones (tanto a través de SU como no) y se reinicien cuando sea necesario, pero de forma remota y fuera del horario de oficina. No de forma regular (diaria/semanal/mensual, etc.), sino cuando estemos seguros de que la actualización no va a romper cosas...

Mi pregunta es un poco más general que eso: cómo debo programar los trabajos puntuales como ¿Esto? Es de suponer que hay más de una forma de hacerlo, me interesa saber qué opina la gente, ya sea con scripts o con utilidades de terceros, lo que sea.

4voto

Bill Puntos 1408

Hay 3 opciones que se me ocurre, todos los cuales dependen de la configuración/herramientas. Para esto, también estoy asumiendo que usted está trabajando con servidores Mac.

  1. Apple Remote Desktop y Tareas Programadas
  2. iCal y alarmas
  3. el bash 'en orden'.

Apple Remote Desktop

ARD le permitirá ejecutar tareas en máquinas remotas, y que puede ser hecho al instante o a un horario de tiempo futuro. Usted puede crear su tarea que usted necesita para ejecutar, haga clic en la máquina que desea ejecutar en, seleccione la tarea, a continuación, programar para cuando sea necesario. Este colas de la tarea para ese momento. Más detalles sobre cómo utilizar ARD para hacerlo están disponibles en el sitio web de Apple bajo RemoteDesktop 3.0 ayuda. No tengo ARD para comprobar, pero creo que la tarea remota está en la cola en la máquina, y por lo tanto ARD no necesita estar ejecutándose en la máquina para ejecutar la actualización.

iCal y Alarmas

iCal le permitirá agregar un evento que puede ejecutar una secuencia de comandos en un tiempo definido.

Puede hacer esto mediante la adición de un evento en iCal, y donde la opción de Alarma es para el evento, se puede seleccionar Ejecutar la secuencia de Comandos y, a continuación, tire de la AppleScript desea ejecutar.

Hay dificultades con esto. El equipo local (que había iCal) tendría que ser capaz de conectarse a la máquina remota, y lo más probable es estar despierto (no he probado si este se despierta a la máquina para correr). Esto también es mucho menos fiable que el de ARD o 'a' opción (supongo que esto fue hecho para que los usuarios simplemente automatizar algo en su máquina, frente a un sysadmin de la herramienta).

La 'a' comando

El bash 'en' comando permite ejecutar una tarea en un momento determinado. Usted tendrá que hacer un shell de bash script para su tarea y, a continuación, guardar ella, así como establecer la correcta ejecución/configuración de permisos. Una vez que haya terminado, usted puede usar la 'a' comando para programar, usando algo como:

at -f updatesoftware.sh -v 10:30

La secuencia de comandos debe, a continuación, ejecutar y enviar comentarios, si el correo está configurado correctamente. De acuerdo a este sitio, usted necesita para asegurarse de habilitar 'a' en el Mac, aunque, con el siguiente comando:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist

Yo revise la página man (el uso de man at) para determinar la configuración exacta que usted prefiera. El uso de esta opción, sin embargo, usted puede programar la tarea del equipo en particular que desea ejecutar, por lo tanto, tomando extra máquinas (como los dos ejemplos anteriores) fuera de la ecuación.

2voto

KidPub Puntos 106

Probablemente usaría una combinación de un bash script y el comando 'at'; si tus tareas son lo suficientemente genéricas podrías construir una pequeña biblioteca de tareas script de los que tirar cuando necesites ejecutar un trabajo.

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