Escrito originalmente por MaxVB
¿Podríais especificar un poco más poniendo ejemplos?
Es que no sé en qué formato se pone la hora o si dáis por hecho algo que no sé, porque el comando "man at" -por ejemplo- no me funciona.
No te he puesto el formato de la hora, porque "man at" precisamente es la página del manual de "at". Ahí viene todo explicado. ¿No te funciona? Entonces una de dos: o no tienes instalado man (cosa que me extraña) o no tienes instalada la página del manual de at. Si es lo segundo, lo más probable es que no tengas instalado at. Prueba a hacer:
$ whereis at
Si no te devuelve una ruta, es que noi lo tienes instalado. Así de forma rápida, la hora la pudes poner como HH:MM o bien como Ham (o pm) o bien sumando un intervalo de tiempo. Ejemplos:
$ echo 'echo "Te estoy saludando"' > saludo | at + 1 minutes
$ echo 'halt' | at 21:30
$ echo 'rm saludo' > at 5am + 4 hours
$ echo 'reboot' | at + 2 hours
Lo primero te envía la frase "te estoy saludando" al fichero saludo dentro de un minuto; lo segundo apaga tu máquina a las 21:30; lo tercero borrar el fichero saludo cuatro horas después de las 5 de la madrugada; y lo último reinicia tu ordenador dentro de dos horas.
Tal y como he puesto los ejemplos lo que haces es pasarle el comando a at mediante una tubería. Si no usas la tubería entonces teclera simplemente
$ at 21:20
por ejemplo, y te aparecera un prompt "at>" que te permitirá ir metiendo comandos a realizar a las 21:20; cuando acabes de meter los comandos, pulsas Ctrl+D y ya está.
De todos modos, en este caso particular (apagar el equipo) puedes recurrir directamente al comando shutdown, que te permite indicar la hora a la que quieres realizarlo:
$ shutdown -h +30
$ shutdown -r 21:20
Lo primero apaga tu ordenador dentro de treinta minutos; lo segundo lo resetea a las 21:20.
De todos modos, es interesante que conozcas at, porque por regla general los comandos no tienen un parámetro para indicar la hora a la que quieres que se ejecuten.
Pero recuerda que at ejecuta la tarea una vez. Para tareas periódicas (no sé cuál es tu caso), debes usar cron.