Mes scripts sous Linux

Publié le par Lanfeust

"Mémoire" de scripts divers

A noter : le script raid de ce blog, qui n'est pas dans cette section.

Régulation de la vitesse des processeurs

Ce script tout bête permet de régler assez efficacement la vitesse du/des microprocesseurs, dans les cas desespérés.
Attention, j'ai lu qquepart que modifier les throttling pouvait être à l'origine de problèmes. Depuis des moi que ca tourne sur l'un de mes portables, je n'ai pas à me plaindre de quoique ce soit.
Ce script permet à mon pauvre portable HP de ne plus faire huler ses ventilateurs.
La vitesse de ceux ci est réduite de 2 niveaux (et ca fait du bien aux oreilles).

 while [ 1 == 1 ]; do load_avg=$(cat /proc/loadavg | sed "s/[^.]*\.\([^ ]*\).*/\1/") load_avg_d=$(cat /proc/loadavg | sed "s/\([^.]*\).*/\1/") if [ "$load_avg_d" != "0" ]; then cpu_use=99 else cpu_use=$load_avg fi cpu_use=$(top -b -n 1 | grep -A 1 PID | tail -1 | awk '{print $9}') echo "use=$cpu_use ($load_avg_d,$load_avg)" t=T7 cd /proc/acpi/processor for cpu in CPU?; do cd /proc/acpi/processor/$cpu throttling=$(cat throttling | grep "%" | sed 's/%//' | sed 's/://g' | sed 's/*//' | sed 's/^ *//' | sed 's/ */ /') for t in $throttling; do if [ "$p" == "" ]; then p=$t else # echo "cpu_use=$cpu_use t=$t" if [ "$cpu_use" -lt "$t" ]; then thr=$p fi p="" fi done echo "$cpu T=$thr" echo "$thr" > /proc/acpi/processor/$cpu/throttling done sleep 1 clear done 
 
 

Personnellement, je démarre ce script en aveugle lors de chaque boot, depuis le rc.local
Il s'agit en fait du PC de ma femme, qui ne s'est pas rendu compte de la manoeuvre.
Le défaut de ce script est le temps de latence quand on sollicite le PC : environs 1 seconde.
Ce qui est bien trop pour moi, mais idéal pour ma femme :-)
Le ralentissement est très peu sensible pour une utilisation modeste du PC. Pour Internet, ça fonctionne bien.

Voici le résultat après 10 minutes de fonctionnement du script (je suis parti de 82 / 83 °C)
coretemp-isa-0000
Adapter: ISA adapter
Core 0:      +69°C  (high =  +100°C)

coretemp-isa-0001
Adapter: ISA adapter
Core 1:      +69°C  (high =  +100°C)

Note sur mon nouvel ACER, pas besoin de ce script, les procs sont froids (38 deg)
Sur l'HP DV6000ef de ma femme, ce script économise les oreilles et les CPUs

 

Duplication stdout vers un fichier en bash (like tee)

Il peut être utile qu'un script duplique sa sortie vers un fichier simultanément.

Cela évite de (penser à) utiliser la commande tee

$ monscript.sh | tee script.log

Ajouter cette ligne en début du script fait le job:

#!/bin/bash
exec
> >(tee -ia script.log)
   ... echo ... etc.

Autre solution plus facile à mémoriser, encapsuler tout le script et utiliser tee

#!/bin/bash
{

   echo one
   echo two
} | tee script.log

 

Publicité

Publié dans Linux

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article