Script de Diego Toharia para apagado automatico

Si se prefiere un una barra progresiva para el apagado programado en vez de un simple lanzador, esta el script de Diego Toharia, su web es http://blog.deigote.com. Para que funcione tiene que estar presente zenity en el sistema; hay que darle permisos de administrador para el comando poweroff al usuario, nunca al script en si, eso sería una gran falla de seguridad. Además para que funcione en el Ubuntu hay que agregar en el script la palabra sudo antes de poweroff.

Update: Si el script lo usas tal y como lo escribió Diego Toharia dale permisos especiales como se indica en el post: "Crear comandos propios" y si vas a hacerlo como un script más en tu /home es dando permisos especiales al usuario(s) sobre poweroff. Porque si le das permisos especiales a el script y lo guardas en tu /home te arriesgas a que cualquiera te lo cambie si no amarraste bien el dueño y permisos.

Paso 1.- Abrir el archivo que maneja los permisos para los usuarios.

Usar cualquiera de estas dos opciones en la terminal, de preferencia la primera.

sudo -E visudo

export EDITOR=gedit && sudo -E visudo

IMPORTANTE.- El manejo del archivo /etc/sudoers con otros editores puede introducir caracteres extraños que ni se ven y afecten su comportamiento. El editor visudo es el adecuado para manejar este archivo porque no presenta este problema. Visto en:
http://www.esdebian.org/foro/32739/ayuda-etcsudoers#comment-180444

Usando export EDITOR=gedit && sudo -E visudo estamos exportando desde visudo el archivo /etc/sudoers al gedit. Por eso puede dar problemas. En cambio usando solo sudo -E visudo se evitan porque se esta empleando el editor para este fin. De la opción -E no estoy segura, pero como no he probado el visudo sin esa opción yo no digo nada.

Paso 2.- Agregar la línea que da permisos de root en poweroff al usuario.

Sintaxis:

[Usuario] All=NOPASSWD: /sbin/poweroff

Ejemplo:

travesuras All=NOPASSWD: /sbin/poweroff

Paso 3.- Guardar el script con cualquier procesador de texto sencillo como el gedit y con la extensión .sh. Me funciono por igual cuando lo guarde en el /home de mi usuario que en la carpeta .ssh del mismo. En esta versión, se agrega sudo antes de poweroff para que funcione el script en el Ubuntu sin pedir contraseña.

Para que funcione este script llamándolo como se indica en este post hay que poner antes de poweroff la palabra sudo en el script y darle permisos permisos especiales al usuario(s) sobre poweroff en visudo.

Update: Si el script lo usas tal y como lo escribio Diego Toharia dale permisos especiales como se indica en el post: "Crear comandos propios" y si vas a hacerlo como un script más en tu /home es dando permisos especiales sobre poweroff

Nota.- El que quiera dar mayor portabilidad al script puede cambiar la línea #!/bin/bash por #!/usr/bin/env bash para que llame bash por medio de ENV.

Script de Diego Toharia:

#!/bin/bash

# Ask for time in minutes to sleep and after that poweroff the computer
# needs - zenity
# Diego Toharia - deigote@deigote.com

# Messages
TITLE="Apagar el ordenador"
MINUTES_QUESTION="¿Dentro de cuántos minutos?"

WAIT_PRE="Esperando"
WAIT_POST="minutos"

minutes=`zenity --entry --title "$TITLE" --text "$MINUTES_QUESTION" 2>&1` || exit
seconds=`expr $minutes "*" 60`

if [ $seconds != "" ] ; then
        for i in `seq 1 $seconds` ; do
                percentage=`expr $i "*" 100`

                percentage=`expr $percentage "/" $seconds`
                echo $percentage
                sleep 1
        done | zenity --title="$TITLE" --text="$WAIT_PRE $minutes $WAIT_POST" --progress --auto-close --auto-kill
        sudo poweroff
fi

Nota.- El autor dice que las actualizaciones de su script las va a poner en:
http://deigote.com/scripts/x-programmed-shutdown

Paso 4.- Dar permisos de ejecución al script

chmod a+x [ruta del script]

Ejemplo.- Lo guarde en /home/travesuras/.ssh bajo el nombre de apagado-sleep-zenity-deigote.sh. Es largo el nombre que asigne; pero me dice que hace, que necesita para funcionar y quien lo hizo.

chmod a+x /home/travesuras/.ssh/apagado-sleep-zenity-deigote.sh

Paso 5.- Se puede llamar con:

a) Haciendo un lanzador que en tipo sea aplicación y en comando tenga la ruta completa del script. En mi ejemplo en comando escribo /home/travesuras/.ssh/apagado-sleep-zenity-deigote.sh

Nota.- Diego Toharia en su ejemplo en comando le pone gksudo antes de la ruta del script. Modificando el script anteponiendo sudo al comando poweroff y dandole permisos especiales a el(los) usuario(s) sobre poweroff para que no pida contraseña basta y sobra para que haga su trabajo y nadie pueda introducir líneas que comprometan la seguridad del sistema.

b) Escribiendo una sola línea en la shell:

. [ruta del script]

Ejemplo.-

. /home/travesuras/.ssh/apagado-sleep-zenity-deigote.sh

c) Ir primero a la carpeta donde esta el script y luego ejecutarlo en la shell:

cd [ruta de la carpeta donde esta alojado el script]
./[nombre del script con todo y extensión]

Ejemplo.-

cd /home/travesuras/.ssh/

./apagado-sleep-zenity-deigote.sh

d) También en la shell

source [ruta de la carpeta donde esta alojado el script]

Ejemplo:

source /home/travesuras/.ssh/apagado-sleep-zenity-deigote.sh

 

 

 

http://blog.deigote.com/2009/04/17/programmed-shutdown-pequeno-script-para-apagar-la-maquina/
http://www.kubuntu-es.org/foro/200905/duda-ejecutar-programa-script
http://es.kioskea.net/faq/sujet-335-ejecutar-un-script-shell
http://structio.sourceforge.net/guias/AA_Linux_colegio/x3773.htm

 

 

 

2 comentarios en “Script de Diego Toharia para apagado automatico

  1. Vaya, he topado con este link a través del dashboard de WordPress (me sales como incoming link 🙂 ) y gracias a él me he dado cuenta de que el enlace del script estaba roto, gracias 😀

    Un saludo

    1. Hola, ¡huy!, pasaron como dos meses y medio desde que dejaste el mensaje. Tenía mucho tiempo que no venía al blog. Nada más entraba lo indispensable; que si necesitaba algún dato y que la cuenta siguiera viva.

      Me gusta como quedo la actualización de tu script. Casi siempre quiero la misma cantidad de minutos todos los días para que se apague. A como lo dejaste me ahorro más tiempo, es que lo utilizo hasta que me estoy cayendo de sueño. Saludos

Deja un comentario