¿Cuál es una manera simple de ejecutar un comando, digamos, dentro de 8 horas? Puedo pensar de esta manera:
nohup bash -c "sleep 28800 ; ./mycommand.sh" &
¿Hay una forma más "adecuada"?
bash
command-line
schedule
Steve Bennett
fuente
fuente

nohup+sleep? ¿Por qué es "impropio"?Respuestas:
Puedes usar el
atcomando. Losatcomandos de ejecución en un momento posterior. Laatutilidad leerá los comandos de la entrada estándar y los agrupará como en el trabajo, para ser ejecutados en un momento posterior.Por lo general,
atse instala de manera predeterminada en Ubuntu, pero si su versión no lo incluye, instale a través de:Para obtener más información, opciones, ejemplos y otros, consulte el repositorio de la página de manual de Ubuntu
Ejemplo:
También puede usar las manos cortas convenientes, como
tomorrowonoon, como enAdvertencia: Esto ejecutará el comando a la izquierda de la tubería inmediatamente pero solo presentará su salida más tarde. El ejemplo también demuestra cómo puede canalizar acciones
at.at -ces la forma en que puede examinar las acciones programadas, que puede enumerar convenientemente con su número, como con:fuente
at now +8 hours -f ~/myscript.shat 8:00que ejecutar el comando en un momento absoluto ybatchpara "cuando parece que la computadora está inactiva"teatimees a las 4pm. Por algunas razones, no se menciona en manpages.ubuntu.com/manpages/raring/man1/at.1posix.html, pero estáman ataquí y en manpages.ubuntu.com/manpages/raring/en/man1/at.1.html .gpio write 8 1pero se ejecutó de inmediato.Sí, puedes configurar un trabajo cron.
Por ejemplo, si ahora son las 14:39:00 y hoy es viernes 30 de agosto, puede agregar el siguiente trabajo cron (que se ejecutará después de 8 horas) en su archivo crontab usando el
crontab -ecomando:Más sobre:
fuente
crontabhasta que lo elimines. Un año después, cuando haya olvidado quién lo puso allí y por qué, se quedará rascándose la cabeza preguntándose qué hacer con el comando.Utilice la interfaz gráfica de usuario basada en Gnome para
cron,aty similares:La introducción de CronHowto sugiere usar la
gnome-scheduleinterfaz gráfica de usuario , que es mucho mejor que escribir toda la basura en el terminal (especialmente para usuarios "promedio" de Ubuntu que no son usuarios "poderosos" * nix / bsd).Ejecútelo utilizando el Unity Dash (u otro menú de aplicaciones) para buscar tareas programadas o en ejecución
gnome-schedule.Usando
gnome-schedule, para una secuencia de comandos en su directorio de inicio, se configuraría un nuevo comando "at" usando este tipo de ventana:fuente
Descubrí una forma rápida y sucia de hacer esto antes de descubrir que
atera una cosa.Digamos que quieres que tu script se ejecute al mediodía:
Digamos que quiere que se ejecute mañana al mediodía (hoy es 24 de noviembre para mí):
Actualización : Método ligeramente mejor: solo prueba los números que te interesan, usando
date +FORMAT:fuente
at,crono cualquier otra aplicación real planificador. La programación de tareas es difícil, y no es una rueda que debe reinventar.at.ates porque sus trabajos sobrevivirán a un reinicio.