¿Cómo debo programar un trabajo único?

3

Contexto: quiero programar varios servidores que cuido para instalar varias actualizaciones (tanto a través de SU como no) y reiniciar cuando sea necesario, pero de forma remota y fuera del horario de oficina. No de forma regular (diaria / semanal / mensual, etc.) pero cuando estemos seguros de que la actualización no va a romper las cosas ...

Mi pregunta es un poco más general que eso: ¿cómo debo programar trabajos fuera de servicio como esto? Probablemente hay más de una forma de hacerlo, interesado en escuchar lo que piense la gente, ya sea mediante scripts o utilidades de terceros, lo que sea.

    
pregunta Robin 14.02.2012 - 14:40

2 respuestas

4

Puedo pensar en 3 opciones, todas las cuales dependen de la configuración / herramientas que tenga. Para esto, también asumo que está trabajando con servidores Mac.

  1. Escritorio remoto de Apple y tareas programadas
  2. iCal y alarmas
  3. el comando bash 'at'.

Apple Remote Desktop

ARD le permitirá ejecutar tareas en máquinas remotas, y se pueden realizar de forma instantánea o en un futuro programado. Puede crear la tarea que necesita ejecutar, hacer clic en la máquina en la que desea ejecutarla, seleccionar la tarea y luego programarla para cuando sea necesario. Esto pone en cola la tarea para ese momento. Más detalles sobre cómo usar ARD para hacer esto están disponibles en el sitio web de Apple en Ayuda de RemoteDesktop 3.0 . Ya no tengo ARD para verificar, pero creo que la tarea remota está en cola en esa máquina y, por lo tanto, no es necesario que ARD se ejecute en su máquina para ejecutar la actualización.

iCal y alarmas

iCal te permitirá agregar un evento que pueda ejecutar un script a una hora definida.

Para ello, agregue un evento en iCal y, donde la opción de Alarma es para el evento, puede seleccionar Ejecutar script y luego extraer el AppleScript que desea ejecutar.

Hay trampas con esto. La computadora local en la que está (que tenía iCal) tendría que poder conectarse a la máquina remota, y lo más probable es que esté despierta (no he probado si esto despertará la máquina para que funcione). Esto también es mucho menos confiable que la opción ARD o "en" (supongo que se hizo para que los usuarios simplemente automaticen algo en su máquina, en lugar de una herramienta de administrador de sistemas).

El comando 'at'

El comando bash 'at' te permitirá ejecutar una tarea a una hora específica. Necesitará hacer un script de shell bash para su tarea y luego guardarlo, así como establecer la configuración correcta de ejecución / permiso. Una vez hecho esto, puede usar el comando 'at' para programarlo, usando algo como:

at -f updatesoftware.sh -v 10:30

La secuencia de comandos debe ejecutarse y enviar comentarios si el correo está configurado correctamente. De acuerdo con este sitio , debes asegurarte de habilitar 'at' en la Mac, usando el siguiente comando:

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

revisaría la página de manual (utilizando man at ) para determinar la configuración exacta prefieres. Sin embargo, al usar esta opción, puede programar la tarea en la máquina en particular en la que desea ejecutar, por lo tanto, sacar máquinas adicionales (como los dos ejemplos anteriores) de la ecuación.

    
respondido por el jmlumpkin 14.02.2012 - 20:25
2

Probablemente usaría una combinación de un script bash y el comando 'at'; Si sus tareas son lo suficientemente genéricas, podría crear una pequeña biblioteca de secuencias de comandos de tareas para extraerlas cuando necesite ejecutar un trabajo.

    
respondido por el KidPub 14.02.2012 - 15:14

Lea otras preguntas en las etiquetas