Script à lancer au démarrage (dans /etc/rc.local par exemple).
Ça fait clignoter la diode du clavier correspondante sur un PC dépourvu de diode d’activité disque comme mon laptop actuel.
Verrnum dans mon cas, dont je n’ai que faire puisque le pavé numérique est toujours activé en ce qui me concerne.
#!/bin/bash
# Check interval seconds
CHECKINTERVAL=0.1
# console
CONSOLE=/dev/console
#indicator to use [caps, num, scroll]
INDICATOR=num
getVmstat() {
cat /proc/vmstat|egrep « pgpgin|pgpgout »
}
#turn led on
function led_on()
{
setleds -L +${INDICATOR} < ${CONSOLE}
}
#turn led off
function led_off()
{
setleds -L -${INDICATOR} < ${CONSOLE}
}
# initialise variables
NEW=$(getVmstat)
OLD=$(getVmstat)
##
while [ 1 ] ; do
sleep $CHECKINTERVAL # slowdown a bit
# get status
NEW=$(getVmstat)
#compare state
if [ « $NEW » = « $OLD » ]; then
led_off ## no change, led off
else
led_on ## change, led on
fi
OLD=$NEW
done
- Se connecter en tant que root
- Aller dans le dossier /lib/systemd/system-sleep
- Créer un nouveau fichier « openrgb »
- Copier et adapter le code suivant :
!/bin/bash
case "$1" in
post)
sudo -u <user> /usr/bin/openrgb --noautoconnect -p /home/<user>/.config/OpenRGB/<profile>.orp
;;
esac
exit 0
- Rendre ce fichier exécutable
chmod +x openrgb
J’étais déjà très content de ma Raspberry Pi en tant que serveur CUPS pour ma HP LaserJet 4 : elle ne consomme que quelques watts, ce qui permet de la laisser tourner en permanence sans problème de conscience en matière d’économie d’énergie.
Elle est donc prête à recevoir un travail d’impression à tout moment, depuis n’importe quel ordinateur de mon réseau, ce qui est plutôt pratique.
Par contre, ma vieille HP LaserJet n’est pas très économique, d’abord parce la technologie laser est gourmande en elle-même, et ensuite parce qu’on ne se souciait pas trop de cette problématique dans les années 90. D’après la fiche technique : 660 Watts en mode marche, 55 Watts en veille / sommeil.
Et puis, même au repos, elle est assez bruyante.
Je ne l’allume donc que quand j’en ai besoin, et puis je l’éteins dès que je pense que je n’en aurai plus besoin, ce qui n’est pas trop fastidieux quand je suis au bureau mais bien plus quand je suis ailleurs.
Je me suis donc dit récemment qu’il me restait un canal non utilisé sur le relais électrique branché à ma Raspberry Pi et que j’allais l’utiliser pour gérer automatiquement l’allumage et l’extinction de ma LaserJet !
Voici donc comment j’ai mis en place le script d’allumage qui s’exécute quand un travail d’impression est reçu par CUPS, avant que le travail ne soit envoyé à l’imprimante, et le script d’extinction qui éteint l’imprimante après un temps défini d’inactivité.
Script d’allumage
Voici le script d’allumage que j’ai appelé /root/prnpoweron.sh (penser à le chmod +x )
#!/bin/bash
# on consigne la date à laquelle ce script est exécuté
date +"%Y-%m-%d %H:%M:%S" > /etc/cups/power.lock
# le canal du relais est commandé par le pin 11
power=`/usr/local/bin/gpio read 0`
# si l'imprimante est éteinte
if [ $power -eq 0 ]
then
/usr/local/bin/gpio mode 0 out ;
/usr/local/bin/gpio write 0 1 ;
# attendre une minute que l'imprimante démarre
sleep 60 ;
fi
Ce script sera lancé par tea4cups quand un travail d’impression arrivera pour cette imprimante.
Installation de tea4cups
- Télécharger tea4cups et le décompacter.
- Copier tea4cups.conf dans le dossier de configuration de CUPS, habituellement /etc/cups/
- Copier tea4cups dans le dossier des backends CUPS, habituellement /usr/lib/cups/backend/
- Modifier les droits du fichier tea4cups :
chown root:root /usr/lib/cups/backend/tea4cups ; chmod 700 /usr/lib/cups/backend/tea4cups ;
Configuration de tea4cups
- Éditer le fichier /etc/cups/tea4cups.conf et rajouter les lignes :
serialize : yes prehook_poweron : /root/prnpoweron.sh
- Éditer le fichier /etc/cups/printers.conf et rajouter « tea4cups:// » devant l’URI de l’imprimante à gérer :
DeviceURI tea4cups://usb://HP/LaserJet%204%20Plus
- Redémarrer CUPS :
service cups restart
Dès à présent, la Raspberry devrait allumer l’imprimante quand on lui envoie un travail d’impression.
Script d’extinction
Voici le script d’extinction que j’ai appelé /root/prnpoweroff.sh (penser à le chmod +x ), et qui éteint l’imprimante si la date du dernier travail d’impression est supérieure à 30 minutes.
#!/bin/bash
datepoweron=`cat /etc/cups/power.lock`
datepoweroff=`date --date "$datepoweron 30 minutes" +"%s"`
datenow=`date +"%s"`
if [ "$datenow" -gt "$datepoweroff" ]
then
/usr/local/bin/gpio mode 0 out ;
/usr/local/bin/gpio write 0 0 ;
fi
Configuration du cron
Il suffit d’éditer les tâches cron
crontab -e
Et de rajouter le script d’extinction toutes les 5 minutes
*/5 * * * * /root/prnpoweroff.sh
Sources :
Tea4Cups : http://www.pykota.com/software/tea4cups/download
Calculs dates : http://www.unix.com/tips-tutorials/31944-simple-date-time-calulation-bash.html
Munin permet de faire du monitoring système et services divers.
Il est plus complet que Cacti.
Site web : http://munin-monitoring.org/
Piwik permet d’analyser en temps réel les visites et autres statistiques de sites web.
Une des fonctionnalités les plus intéressantes est de pouvoir retracer le cheminement des visiteurs.
Site web : http://piwik.org/