Proyecto

General

Perfil

« Anterior | Siguiente » 

Revisión 160

Tarea para apagar los thinclients pasado un tiempo sin que nadie haya hecho login en ellos

Ver diferencias:

tareas_puppet/servidores_aula/apagar_no_usados/files/comprobar_login
#Comprueba si el equipo lleva mas de X minutos en la pantalla login, y si es
#así, lo apaga.
*/1 * * * * root /root/adormir.sh
tareas_puppet/servidores_aula/apagar_no_usados/files/S99_borra_testigo.sh
#/bin/bash
#para guardar en /usr/share/ldm/rc.d de la imagen de los clientes.
#Debe empezar por SXX para que se ejecute en el arranque de sesión en el orden XX
#Borra el fichero /root/ocioso cuando hace login un usuario, para desactivar el
#apagado por inactividad.
test -e /root/ocioso && rm /root/ocioso
tareas_puppet/servidores_aula/apagar_no_usados/files/adormir.sh
#/bin/bash
#Poner en el crontab para que se ejecute cada minuto.
#Comprueba si hay alguien logueado en el terminal o bien está ejecutandose
#el cañon vlc de Aulalinex o el vnc-proyectr
#logado=$(ps aux | grep "ssh.*192.168.0.254" | wc -l)
logado=$(ps aux | grep "LTSP_CLIENT" | wc -l) #Si alguien esta logado, la conexion con el servidor de aula tiene esta cadena.
vlcenuso=$(ps aux | grep vlc | wc -l) #Por si se está proyectando video sin alumnos logados.
vncenuso=$(ps aux | grep vnc | wc -l) #Por si se está proyectando escritorio sin alumnos logados.
if [ $logado -gt 1 -o $vlcenuso -gt 1 -o $vncenuso -gt 1 ]
then
test -e /root/ocioso && rm /root/ocioso
else
if [ ! -e /root/ocioso ]
then
touch /root/ocioso
else
seg1=$(stat -c%X /root/ocioso)
seg2=$(date +%s)
segundos=$(expr $seg2 - $seg1)
if [ $segundos -gt 121 ] # mas de 3 minutos encendido sin que entre nadie.
then
gxmessage -display :7 -timeout 30 -center -button "‌No apagar" "Este ordenador no se esta usando.
El sistema se apagara en 30 segundos."
if [ $? -ne 101 ]
then
/etc/init.d/avahi-daemon stop
/usr/sbin/ethtool -s eth0 wol g 2>/dev/null
/usr/bin/killall -9 x-session-manager
/sbin/poweroff -fp &
else
touch /root/ocioso
fi
fi
fi
fi
tareas_puppet/servidores_aula/apagar_no_usados/leeme.txt
Apaga automaticamente los thinclient que lleven mas de X minutos en la pantalla
de login sin haber entrado ningún usuario.
Por defecto espera 4-5 minutos, pero se puede modificar en el script files/adormir.sh.
Si un usuario hace logon en el equipo, se desactiva el apagado hasta que salga.
Muestra un mensaje 30 segundos antes del apagado, que permite al usuario parar el
apagado si desea entrar.
Se incluye en clase-especifica como cualquier otra tarea puppet de las aplicadas.
31-1-2011
Alfonso Pastor.
IES Virgen de Guadalupe.
tareas_puppet/servidores_aula/apagar_no_usados/manifests/init.pp
class apagar_no_usados {
file { "/opt/ltsp/i386/usr/share/ldm/rc.d/S99_borra_testigo.sh":
owner => root, group => root, mode => 755,
source => "puppet:///apagar_no_usados/S99_borra_testigo.sh",
notify => Exec["actualiza-imagen-apagado"],
}
file { "/opt/ltsp/i386/etc/cron.d/comprobar_login":
owner => root, group => root, mode => 644,
source => "puppet:///apagar_no_usados/comprobar_login",
notify => Exec["actualiza-imagen-apagado"],
}
file { "/opt/ltsp/i386/root/adormir.sh":
owner => root, group => root, mode => 755,
source => "puppet:///apagar_no_usados/adormir.sh",
notify => Exec["actualiza-imagen-apagado"],
}
exec { "instalar-gxmessage":
command => "/usr/sbin/chroot /opt/ltsp/i386 /usr/bin/apt-get -y update ; /usr/sbin/chroot /opt/ltsp/i386 /usr/bin/apt-get install -y gmessage ; /usr/sbin/chroot /opt/ltsp/i386 /usr/bin/dpkg --configure -a",
before => Exec["actualiza-imagen-apagado"],
unless => "/usr/sbin/chroot /opt/ltsp/i386 dpkg -l gmessage | cut -d' ' -f1 | grep ii > /dev/null",
notify => Exec["actualiza-imagen-apagado"],
}
exec { "instalar-gxmessage-mayhave-chroot":
command => "/bin/echo gmessage >> /opt/ltsp/i386/etc/pkgsync/mayhave",
before => Exec["actualiza-imagen-apagado"],
unless => "/bin/grep -i gmessage /opt/ltsp/i386/etc/pkgsync/mayhave > /dev/null",
notify => Exec["actualiza-imagen-apagado"],
}
exec { "actualiza-imagen-apagado":
command => "/usr/sbin/ltsp-update-image --arch i386",
refreshonly => true,
}
}

Exportar a: Unified diff