Antes de irme a dormir existen ocasiones en las que me pongo en la cama escuchando un podcast o la radio a través del ordenador. Al rato de estar escuchando la radio o el podcast acaba pasando una de estas dos cosas:

  1. Me quedo dormido y el ordenador queda abierto toda la noche. Obviamente no me gusta quedarme dormido con el ordenador y la radio encendida.
  2. Una vez estoy ya medio dormido tengo que levantarme para apagar el ordenador. Obviamente esto molesta ya que después hay que volver a coger el sueño.

Para solucionar este pequeño problema tenemos varias soluciones. Una de ellas es programar el apagado del ordenador. Algunos de los métodos que podemos usar para programar el apagado del ordenador son las siguientes:

MÉTODO 1: PROGRAMAR EL APAGADO DEL ORDENADOR MANUALMENTE DESDE LA TERMINAL

Es el método que acostumbro a usar. Mediante el uso de la terminal podemos programar el apagado del ordenador muy fácilmente. Algunos ejemplos de como podemos programar el apagado del ordenador son los siguientes:

Apagar el ordenador después de un tiempo determinado

Abrimos una terminal. Una vez abierta la terminal ejecutamos el siguiente comando:

sudo shutdown -h +30

El significado de cada uno los términos del comando son los siguientes:

sudo: Porque el programa shutdown precisa permisos de superusuario para ejecutarse.

shutdown: Es el programa que permite programar el apagado del ordenador.

-h: Indica la acción a realizar una vez pasado un tiempo determinado. En este caso la acción es la acción halt (-h). Por lo tanto una vez pasado el tiempo que queramos el ordenador se apagará.

+30: Indicamos el tiempo en minutos que queremos que tarde en apagarse el ordenador.

Tal y como se observa en la captura de pantalla, justo después de ejecutarse el comando empezará la cuenta atrás para apagar el ordenador.

Apagado del ordenador en 30 minutos

Una vez transcurridos los 30 minutos nuestro ordenador se apagará de forma irremediable consiguiendo así nuestro objetivo.

Si durante el proceso de cuenta atrás queremos abortar el proceso tan solo tenemos que presionar la combinación de teclas Ctrl+C con la terminal activa.

Apagar el ordenador a una hora determinada

En el apartado anterior hemos visto como apagar el ordenador después de un tiempo determinado que puede ser una hora, dos horas, etc. Si lo que queremos es apagar el ordenador a una hora en concreto lo podemos hacer ejecutando este comando en la terminal:

sudo shutdown -h 23:50

El significado de cada uno los términos del comando son los siguientes:

sudo: Porque el programa shutdown precisa permisos de superusuario para ejecutarse.

shutdown: Es el programa que permite programar el apagado del ordenador.

-h: Indica la acción a realizar una vez pasado un tiempo determinado. En este caso la acción es la acción halt (-h). Por lo tanto una vez pasado el tiempo que queramos el ordenador se apagará.

23:50: Indicamos la hora en la que queremos que se apague el ordenador. En mi caso he indicado que sean las 23 horas y 50 minutos.

Después de ejecutar el comando, tal y como se puede ver en la captura de pantalla, se iniciará la cuenta atrás para apagarse el ordenador:

Programar el apagado del ordenador a una hora

Si durante el proceso de cuenta atrás queremos abortar el proceso tan solo tenemos que presionar la combinación de teclas Ctrl+C con la terminal activa

MÉTODO 2: PROGRAMAR EL APAGADO DEL ORDENADOR MEDIANTE UN SCRIPT

Con un simple Script también podemos programar el apagado automático del ordenador. Para crear el script abrimos la terminal. Justo al abrir la terminal creamos el archivo apagar.sh ejecutando el siguiente comando en la terminal:

touch apagar.sh

Una vez creado el archivo lo abriremos ejecutando el siguiente comando en la terminal:

nano apagar.sh

Una vez abierto el editor de texto nano pegaremos el siguiente código:

#!/bin/bash
clear
echo " *** SCRIPT PARA EL APAGADO DEL EQUIPO *** "
echo " SELECCIONA UNA OPCIÓN:"
echo " 1.-Apagar equipo ahora"
echo " 2.-Reiniciar equipo ahora"
echo " 3.-Asignar hora de apagado del equipo"
echo " 4.-Apagar equipo a los xx minutos"
echo " 5.-Salir"
echo ""
read -p "OPCIÓN: " OPCION
case $OPCION in
1) sudo halt;;
2) sudo reboot;;
3) echo -n " ¿ A qué hora ?: "
read hora
sudo shutdown -h $hora;;
4)echo -n " ¿ En cuántos minutos se apagará el equipo?: "
read minutos
sudo shutdown -h $minutos;;
5) exit;;
*) echo " OPCIÓN NO VÁLIDA "
exit 1;;
esac
exit 0
Fuente del script

Una vez copiado el texto guardamos los cambios y cerramos el fichero. El siguiente paso será otorgar los permisos necesarios para que se pueda ejecutar el script. Para ello ejecutamos el siguiente comando en la terminal:

sudo chmod +x apagar.sh

Una vez ejecutado el comando ya podemos usar el script. Para ello ejecutamos el siguiente comando en la terminal:

sh ./apagar.sh

Justo después de ejecutar el script, tal y como se puede ver en la captura de pantalla, podremos programar la hora en que queremos que se apague nuestro ordenador.

programar el apagado mediante un script

Si queremos evitar tener que abrir la terminal cada vez que queramos ejecutar el script podemos crear un lanzador en el escritorio. Para ello ejecutamos el siguiente comando en la terminal:

touch /home/joan/Escritorio/Apagar

Después de ejecutar el comando se creará un archivo con nombre Apagar en nuestro escritorio. Para que este archivo se convierta en un lanzador de escritorio tenemos que editar su contenido. Para editar su contenido tenemos que teclear el siguiente comando en la terminal:

nano /home/joan/Escritorio/Apagar

Una vez se abra el editor de textos nano pegaremos el siguiente texto:

[Desktop Entry]
Name=Apagar
Name[de_DE]=Apagar
Exec=/home/joan/apagar.sh
Terminal=true
Type=Application
Icon=home/joan/Imágenes/red_glasses
Nota: Las partes del texto a pegar que están en rojo las tendréis que modificar en función los siguientes aspectos. En la variable Exec hay que poner la ruta del script que hemos creado. En la variable Icon hay que poner la ruta del icono que queremos que tenga nuestro lanzador.

Una vez pegado el contenido en el archivo Apagar guardamos los cambios y cerramos el fichero. A partir de estos momentos, cada vez que cliquemos encima del nuevo icono que tenemos en el escritorio se ejecutará el script para programar el apagado de nuestro ordenador.

Nota: Existen formas alternativas para ejecutar el script sin tener que abrir una terminal. En vez de crear un lanzador de escritorio podríamos haber creado un enlace duro o introducir el script dentro de los menús de la distribución que usamos.

MÉTODO 3: PROGRAMAR EL APAGADO DEL ORDENADOR USANDO UN PROGRAMA

Las personas a las que no les guste la terminal, programar scripts o simplemente prefieren no complicarse la vida, pueden optar por instalar un programa con interfaz gráfica para programar el apagado del ordenador.

Existen varios programas disponibles, pero en mi caso detallaré como usar qshutdown por los siguientes motivos:

  1. Es muy sencillo de usar.
  2. Funciona a la perfección.
  3. Está presente en los repositorios de la gran mayoría de distros Linux.

Para instalar qshutdown abriremos una terminal y ejecutaremos el siguiente comando:

sudo apt-get install qshutdown

Una vez instalado el programa ya lo podemos abrir sin ningún tipo de problema. Una vez abierto el programa verán una interfaz gráfica parecida a la siguiente:

Programar el apagado con qshutdown

Tal y como se puede en la captura de pantalla, tan solo hay que detallar el día y la hora en que queremos apagar el ordenador. Una vez seleccionadas las opciones que queramos tan solo tenemos que presionar el botón Aceptar y empezará la cuenta atrás para apagar el ordenador.

MÉTODO 4: PROGRAMAR EL APAGADO DEL ORDENADOR DE FORMA AUTOMÁTICA MEDIANTE CRON

Finalmente existe una ultima opción para programar el apagado del ordenador. Esta opción es utilizando cron. Posiblemente sea la opción que presente más opciones de configuración, pero con toda seguridad es la opción menos amigable de configurar.

Para programar el apagado de nuestro equipo con cron tenemos que ejecutar el siguiente comando en la terminal:

sudo crontab -e

Una vez abierto el editor de texto tenemos que editar el contenido del fichero crontab para programar el apagado del ordenador. La estructura a usar para programar el apagado del ordenador es la siguiente:

m h dom mon dow /sbin/shutdown -h now

Cada una de las partes en color rojo de este comando las tendréis que reemplazar por los siguientes términos:

m: Reemplazar m por un número entre el 0 y el 59. Este número indica el minuto en el que queremos que se apague nuestro ordenador.

h: Reemplazar h por un número entre el 0 y el 23. Este número indica la hora en la que queremos que se apague nuestro ordenador.

dom: Reemplazar dom por un número entre el 1 y el 31. Este número indica el día del mes en el que queremos que se apague nuestro ordenador. Si queremos que nuestro ordenador se apague todos los días del mes hay que reemplazar m por un *

mon: Reemplazar mon por un número entre el 1 y el 12. Este número indica el número de mes en el que queremos que se apague nuestro ordenador. Si queremos que nuestro ordenador se apague todos los meses hay que reemplazar mon por un *

dow: Reemplazar dow por un número entre el 0 y el 6. Este número indica el día de la semana en el que queremos que se apague nuestro ordenador. Si escribimos un cero se apagará el domingo y si un 6 se apagará el sábado. Si queremos que nuestro ordenador se apague todos los días deberemos reemplazar dow por un *.

/sbin/shutdown -h now: Esta parte del comando no hay que reemplazarla. Esta parte del comando es la que hace que el ordenador se apague una vez transcurrido el tiempo fijado en los parámetros anteriores.

Algunos ejemplos de comandos a introducir en el archivo crontab para programar el apagado de nuestro ordenador son los siguientes:

Apagar el ordenador todos los días a las 23 horas y 30 minutos

Si queremos programar el apagado del ordenador todos los días a las 23:30 horas, tal y como se puede ver en la captura de pantalla, tenemos que introducir el siguiente comando dentro del archivo contrab:

30 23 * * * /sbin/shutdown -h now

Programar apagado con Cron

Una vez introducido el comando guardamos los cambios y cerramos el fichero.

Para que los cambios surjan efecto tenemos que reiniciar el servicio cron. Para ello ejecutamos el siguiente comando en la terminal:

sudo service cron restart

Una vez reiniciado el servicio el proceso ha finalizado.

Apagar el ordenador a las 23 horas y 30 minutos todos los domingos

Si queremos que nuestro ordenador se apague a las 23:30 horas pero únicamente los domingos, tenemos que introducir el siguiente comando dentro del archivo contrab:

30 23 * * 0 /sbin/shutdown -h now

Una vez introducido el comando guardamos los cambios y cerramos el fichero.

Para que los cambios surjan efecto tenemos que reiniciar el servicio cron. Para ello ejecutamos el siguiente comando en la terminal:

sudo service cron restart

Una vez reiniciado el servicio el proceso ha finalizado.

Apagar el ordenador a las 23 horas y 30 minutos al 15 de Junio

Si queremos que nuestro ordenador se apague a las 23:30 horas del día 15 de Junio, tenemos que introducir el siguiente comando dentro del archivo contrab:

30 23 15 6 * /sbin/shutdown -h now

Una vez introducido el comando guardamos los cambios y cerramos el fichero.

Para que los cambios surjan efecto tenemos que reiniciar el servicio cron. Para ello ejecutamos el siguiente comando en la terminal:

sudo service cron restart

Una vez reiniciado el servicio el proceso ha finalizado.

Apagar el ordenador a las 23 horas y 30 minutos el 15 de Junio si es martes

Si queremos que nuestro ordenador se apague los martes que sean 15 de Junio a las 23:30 horas, tenemos que introducir el siguiente comando dentro del archivo contrab:

30 23 15 6 2 /sbin/shutdown -h now

Una vez introducido el comando guardamos los cambios y cerramos el fichero.

Para que los cambios surjan efecto tenemos que reiniciar el servicio cron. Para ello ejecutamos el siguiente comando en la terminal:

sudo service cron restart

Una vez reiniciado el servicio el proceso ha finalizado.

Únete a la conversación

45 comentarios

    1. Gracias por tus palabras y espero que disfrutes usando GNU-Linux. Aparte de mi blog seguro que encontrarás muchos más que también serán de tu agrado.

  1. No sabía que esto era posible :D

    Me voy por los primeros dos métodos para cuando los necesite. Generalmente no me gusta dejar el ordenador encendido si no estoy al frente de él.

    1. Muy buenas Liher

      Gracias por el comentario. Lo mismo puedo decir de los artículos que escribes en tu blog.

      Saludos y buen fin de semana.

  2. Hola,

    muy buen artículo y muy completo. Me gustaría saber si se puede programar el apagado del ordenador por inactividad. es decir, que se apague después de x minutos sin utilizar.

    Muchas gracias.

    1. Hola Ferran

      Lo que comentas si que se puede realizar. Tan solo tienes que ir al administrador de energía de tu entorno de escritorio o de Windows…. y allá podrás programar que tu ordenador se suspenda o hiberne tras un determinado tiempo de inactividad.

      Saludos y gracias por comentar

      1. Hola,

        la opción que comentas ya la conocía, pero yo me refería concretamente a apagar el sistema GNU/Linux mediante script cuando pasa un cierto tiempo de inactividad, no suspender ni hibernar.

        Muchas gracias por tu respuesta,

        Ferran.

        1. Hola de nuevo Ferran

          No se responder a tu pregunta. Dudo que sea fácil encontrar un script que haga lo que pides, pero como comenté lo puedes hacer usando las herramientas que te proporciona tu entorno de escritorio.

          Saludos

          1. Hola de nuevo Joan Carles,

            Conozco las posibilidades que ofrece las herramientas del escritorio, y en efecto permite hibernar o suspender el sistema, pero no apagarlo como haría shutdown.

            Saludos.

          2. Podría ser apagar como las opciones que tiene el programa para Windows AMP WinOFF, cuando la CPU esté en un cierto porcentaje de frecuencia o la RAM apenas consuma recursos

  3. Precisamente buscaba esto para poder programar un apagón a unos servers. Tenía que llegar a las 6am así que con esto a seguir durmiendo. Excelente! muchas gracias Saludos!

  4. muy buenas,

    yo el script lo he creado en /home/jose y el ejecutable en /home/jose/Escritorio/Apagar tal y como dice la guia, he comentado la línea de la imagen a mostrar para el script pero a la hora de ejecutarlo se me abre como documento de texto, ¿a qué se debe?

    Alguien me podría decir que debería hacer para que con doble click me arrancase dicho script, sin embargo por consola con sh ./apagar.sh (dentro de donde tengo el script creado) me funciona a la perfección, muchísimas gracias de antemano.

    1. Muy buenas,

      La solución a tu problema es leer. Si sigues las instrucciones paso por paso ejecutarás el script con doble click y sin ningún problema.

      Saludos

  5. hola soy Celina tengo una dell y nuca se apaga porque mi equipo trabaja dia y noche, mi problema es que cuando la quiero apagar o resetear se queda trabada y no se apaga hasta que no dejo el dejo en el botón de encendido,

  6. Hola Joan Carles no se si aun pueda preguntar esto, pero use el cron y no pasa nada no ejecuta.

    Para probar que funciona lo pongo a unos minutos de la hora… ¿será acaso que debo esperar horas para que funcione? gracias

    1. Hola

      La primera pregunta seria si tienes el servicio o demonio cron activado. Si no lo tienes activado entonces lo deberías activar. Para saberlo ejecuta el siguiente comando en la terminal:

      systemctl status cron

      En el caso que esté desactivado lo puedes activar con los siguientes comandos:

      systemctl start cron
      systemctl enable cron

      Cron actuará cuando tu le digas que funcione. Si lo programas en horas entonces será en horas y si quieres que actúe en minutos entonces será en minutos.

      Saludos

  7. Buenos días Joan Carles,

    Necesito reiniciar la maquina Linux todos los días a las 16:00h y las 04:00h, o sea cada 12 horas, para unas pruebas de mantenimiento.

    Para ello, he intentado hacerlo editando a través de:

    nano /etc/rc.local

    dicho archivo, agregando lo siguientes comandos:

    shutdown -r 04:00
    shutdown -r 16:00
    exit 0

    Pero solo se me reinicia a las 16:00h.

    ¿Sabes como hacerlo correctamente en rc.local?

    Gracias.

    1. Hola Manuel

      Normal que solo lo haga a las 16:00 porque es lo último que le dices y sobreescribe la orden de las 04:00

      Para hacer lo que quieres hacer usa Cron.

      Saludos

  8. Tu post es lo más completo que he encontrado en la red.

    Estoy intentando un script que apague el ordenador (Ubuntu) después de ejecutar una determinada tarea.

    La pregunta es; ¿Cómo detecto que esa tarea ha finalizado?

    Por adelantado, gracias por todo y enhorabuena por tu post.

    1. Para hacer lo que pides intentaria poner 2 comandos en la misma línea de cron o de la terminal separados por ;

      Des este modo, primero se ejecutaría el script y después se apagaria el ordenador. Seria algo similar así.

      script.sh; /sbin/shutdown -h now

      No he probado si funciona. Así que tendrás que probar tu.

      Saludos

  9. Hola Joan Carles buen día, que comando, script o aplicación me recomendarías para «reiniciar» un equipo que al detectar que no tiene internet, es un equipo que utilizo como firewall.

    Saludos y mil gracias de antemano.

    1. Hola

      Para hacer lo que quieres realizar tendrás que hacerte un script tu mismo.

      Si buscas por internet encontrarás scripts escritos en bash para detectar si tienes conexión. Si no tiene conexión le ordenas que se reinicie con los comandos que hay en el artículo.

      Saludos

      Saludos

  10. Hola buenas noches.

    Cómo se podría programar detener un servicio a cierta hora del día y luego activar en un horario diferente?

    Por ejemplo quiero detener el servicio OpenSSH a las 3 de la mañana. Y reactivar el mismo servicio a las 8 de la mañana, todos los días. Para evitar el apagado del equipo. Quiero hacer el script para que se ejecute por modo consola.

    ¿Alguna ayuda?

    1. Hola

      Para lo que quieres realizar no hace falta realizar ningún script. Mediante cron lo puedes realizar.

      Usa la explicación que hay en el artículo y sustituyes el comando que hay por el que usarías para parar o iniciar el servicio.

      Saludos

  11. Muchas gracias, es de agradecer siempre la ayuda altruista que algunas personas realizan y se nos hace todo mas sencillo a las personas que no somos informáticos en el manejo de nuestra computadora.

    Un detalle tienes el comando de cron mal escrito puesto que el correcto es «crontab» y no «crontrab» (sobra una erre en trab). Es que he optado por esta opción, tu tutorial es el que más me a servido, pero este error me ha despistado un poco hasta que mirando por la red me he dado cuenta.

  12. Muchas gracias por el aporte, ayer aprendí a usar el sudo shutdown -h +X(minutos)

    Me sirvió de maravilla para después de ver una peli, que a veces me quedo dormido, y queda encendida la máquina !

    El monitor se apaga solo, pero con este post, se apaga todo y eso es lo que necesitaba.

    Gracias nuevamente!

  13. hola amigo,

    Al hacer el script de apagado programado me funciona en la consola, pero al momento de «hacerlo aplicacción» solo me abre el editor de texto, si me pudieras ayudar, ya que eh hecho la guía como 3 veces

    1. Hola

      Intenta poner la extensión .desktop al archivo que le das para ejecutar el script.

      En mi caso sería nano /home/joan/Escritorio/Apagar.desktop

      Una vez hecho comenta si te funciona.

  14. Hola, muy bueno el post, pero necesitaría en caso que alguien sepa me ayude, necesito mi ordenador LINUX Ubuntu 16.04 se apague al fallar el ping hacia otro equipo en la red. Gracias de antemano.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.