#1 Le 28/03/2010, à 11:56
- wlourf
Déconnexion automatique (ou comment stresser ses gosses avec conky !)
Bonjour,
Je ne sais pas pour vous mais chez moi je dois répéter au moins dix fois à mon gosse qu'il est temps qu'il arrête de faire de l'ordi. Comme c'est un peu lassant, j'ai fait un petit script qui autorise une certaine durée de connexion par jour et ferme la session si cette durée est dépassée, le temps restant s'affiche sur le bureau grâce à Conky.
Le script est fait pour Gnome.
En cas de tentative de reconnexion le même jour, la session ne durera que 30 secondes
Premièrement, créer un dossier caché dans le dossier $HOME de l'utilisateur concerné par le script. Dans les scripts, ce sera le chemin ~/.logout qui sera utilisé :
mkdir ~/.logout/
et y placer les trois fichiers suivants :
le conky (conkyrc-logout) :
# set to yes if you want Conky to be forked in the background
background no
update_interval 1
cpu_avg_samples 2
net_avg_samples 2
override_utf8_locale yes
double_buffer yes
no_buffers yes
#own_window yes
own_window_type desktop
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
border_inner_margin 0
border_outer_margin 0
# X font when Xft is disabled, you can pick one with program xfontsel
font 7x13
# Use Xft?
use_xft yes
# Xft font when Xft is enabled
xftfont monospace-18
# Text alpha when using Xft
xftalpha 0.5
# Draw shades?
draw_shades yes
# Stippled borders?
stippled_borders 0
# Default colors and also border colors
default_color yellow
default_shade_color blue
alignment br
gap_x 1
gap_y 1
# Add spaces to keep things from moving about? This only affects certain objects.
use_spacer right
# Subtract file system buffers from used memory?
no_buffers yes
TEXT
Arrêt dans ${exec ~/.logout/temps_reste.sh}
Le script /temps_reste.sh qui renvoie le temps restant vers le conky et deconnecte si besoin :
#! /bin/bash
#st in seconds
st=$(~/.logout/lire_reste.sh)
RUNTIME=$((st))
SECOND=$((RUNTIME%60))
MINUTE=$((RUNTIME/60%60))
HOUR=$((RUNTIME/3600))
if [ "$SECOND" -lt 10 ]; then
SECOND="0$SECOND"
fi
if [ "$MINUTE" -lt 10 ]; then
MINUTE="0$MINUTE"
fi
if [ "$HOUR" -lt 10 ]; then
HOUR="0$HOUR"
fi
echo $HOUR":"$MINUTE":"$SECOND
if [ "$RUNTIME" -lt 0 ]; then
gnome-session-save --force-logout
fi
et le script lire_reste.sh qui lit le temps restant et enregistre ce temps dans le fichier .compteur.txt, c'est ce fichier qui doit être modifié si vous voulez ajouter ou enlever du temps.
La durée par défaut est fixée à une heure (3600 secondes) avec la variable duree à la ligne 4
#! /bin/bash
log=~/.logout/.compteur.txt
duree=3600
if [ ! -f $log ]; then
echo "pas de fichier"
echo $(date +%Y%m%d)";"$duree > $log
fi
today=$(date +%Y%m%d)
reste=-1
line=`tail $log`
xday=$(echo $line | cut -d";" -f1)
if [ $xday -eq $today ]; then
reste=$(echo $line | cut -d";" -f2)
hasdate=true
if [ $reste -lt 0 ]; then
reste=30
fi
reste=$((reste-1))
else
reste=$duree
fi
echo $today";"$reste > $log
echo $reste
Si le gosse tente de se reconnecter alors que son temps est dépassé, alors la session ne durera que 30 secondes (reste=30) ci-dessus
N'oubliez pas de rendre exécutables les scripts :
chmod +x ~/.logout/lire_reste.sh
chmod +x ~/.logout/temps_reste.sh
et pour lancer le tout, utilisez la commande (à placer dans le démarrage de gnome):
conky -c ~/.logout/conkyrc-logout
Et voilà, le résultat en image pour finir :
Dernière modification par wlourf (Le 31/03/2010, à 21:03)
Hors ligne
#2 Le 28/03/2010, à 12:12
- Gage
Re : Déconnexion automatique (ou comment stresser ses gosses avec conky !)
Fais gaffe.
Un jour, ton fils deviendra malin et supprimera purement et simplement le script. Ou bien il éditera manuellement le fichier de log (c'est plus malin, parce que ça t'empêche de faire un autre script qui vérifie la présence du premier). Il y a deux solutions :
- Surveiller ton fils par toi-même (parfois plus facile à dire qu'à faire)
- Placer le script dans un répertoire où ton fils peut lire et exécuter, mais pas écrire. Mais dans ce cas, ça impose que le script soit exécuté avec d'autres droits que ceux de ton fils, pour qu'il puisse écrire dans son fichier de log.
Ça, ce sont les sources. Le mouton que tu veux est dedans.
Merci, c'est tout à fait comme ça que je le voulais ! Crois-tu qu'il faille beaucoup de ressources à ce mouton ? Parce que ma config est toute petite...
Ça devrait aller. Tu peux te compiler un petit mouton.
Pas si petit que ça. Tiens ! il s'est mis en veille...
Hors ligne
#3 Le 28/03/2010, à 12:19
- Кຼزດ
Re : Déconnexion automatique (ou comment stresser ses gosses avec conky !)
Le mieux serait de lancer le script au démarrage de la session, et qu'il génère lui-même le fichier.
Ça permettrait de gérer plus efficacement les droits (lui retirer les droits en écriture sur les fichiers, pour pas qu'il les enlève).
dou
Hors ligne
#4 Le 28/03/2010, à 12:42
- wlourf
Re : Déconnexion automatique (ou comment stresser ses gosses avec conky !)
Je suis d'accord avec vos remarques mais il n'en est pas encore au point d'aller fouiller dans les dossiers ou de faire un "killall conky", heureusement ... et il ne fait de l'ordi que lorsque un adulte est présent, c'est juste pour gérer le temps de connexion.
On va dire que c'est pour du 12 ans maximum
Hors ligne
#5 Le 28/03/2010, à 12:48
- clapico
Re : Déconnexion automatique (ou comment stresser ses gosses avec conky !)
Une autre solution efficace est d'installer "Nanny" qui joue un role de controle parental et qui permet de choisir les plages horaires d'utilisation et de surf par utlisateur :
http://www.unixmen.com/news-today/853-g … me-ubuntu-
http://www.clapico.com/ : mon p'tit blog avec mes p'tits trucs et mes p'tites découvertes de p'tit Ubuntéro
Hors ligne