¿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
at
comando. Losat
comandos de ejecución en un momento posterior. Laat
utilidad 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,
at
se 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
tomorrow
onoon
, 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 -c
es 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.sh
at 8:00
que ejecutar el comando en un momento absoluto ybatch
para "cuando parece que la computadora está inactiva"teatime
es a las 4pm. Por algunas razones, no se menciona en manpages.ubuntu.com/manpages/raring/man1/at.1posix.html, pero estáman at
aquí y en manpages.ubuntu.com/manpages/raring/en/man1/at.1.html .gpio write 8 1
pero 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 -e
comando:Más sobre:
fuente
crontab
hasta 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
,at
y similares:La introducción de CronHowto sugiere usar la
gnome-schedule
interfaz 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
at
era 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
,cron
o cualquier otra aplicación real planificador. La programación de tareas es difícil, y no es una rueda que debe reinventar.at
.at
es porque sus trabajos sobrevivirán a un reinicio.