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 :lol:
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 :