Vive la mémoire... LIBRE !!!

Message
Author
musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

Vive la mémoire... LIBRE !!!

#1 Post by musher0 »

3 mars 2015, produit une version probablement définitive...
~~~~~~~~~~~~~~~

Bonjour !

Voici un petit utilitaire que Joe Arose (alias big_bass du côté anglophone du forum)
a publié il y a quelques années pour accompagner son Slaxer Pup 4.12. On en
trouve mention ici --
http://www.murga-linux.com/puppy/viewto ... ost#437336 --
mais j'aimerais retrouver le message original de Joe. J'ai remanié son script peu à
peu, jusqu'au résultat ci-joint. Le développement de ce script a été pour moi
l'occasion d'une belle exploration du langage bash d'ailleurs ! :)

Explication :
Même si notre Linux gère bien la mémoire vive, il est parfois utile d'en libérer,
surtout si on se sert massivement de son ordi pour une tâche précise, avec un gros
logiciel tel opera, ou encore si on fait du développement intensif.

Il est normal que la mémoire vive diminue peu à peu, et souvent ce n'est qu'une
apparence, puisque la mémoire des programmes que vous utilisez à répétition au
cours de votre session est "versée dans des tampons" (à défaut de meilleure
expression !) plutôt que d'être calculée comme de la MEV libre par l'utilitaire "free".

Il arrive cependant qu'on veuille dégager de la mémoire vive, quand on a terminé
une tâche importante, dans opera, par ex., et qu'on veut passer à autre chose. Ou
encore parce que le gestionnaire de fenêtres semble ne pas vouloir "lâcher le
morceau". (Le par ailleurs merveilleux pekwm fait parfois le délicat à cet égard.)

Voici une solution simple et élégante à ce problème.

J'ai enrichi le script proposé par Joe, qu'il faisait afficher par une boîte
"gtkmessage". J'ai opté pour un affichage avec less et urxvt, qui permet, je crois,
une présentation plus esthétique. En outre, on peut mettre des renseignements
parlants dans le titre, grâce à urxvt, et dans le "pied de page", grâce à less.

Le script est bilingue anglais-français, mais ça ne se voit pas. Une seule langue est
affichée à l'utilisateur, celle de la variable LANG du système.

Le gain de mémoire est affiché en Mo dans le titre de la fenêtre, puis, si le fichier
d'échange est utilisé. En bas, une instruction pour fermer la fenêtre.

En passant, si le fichier d'échange est utilisé, votre ordi en prendra un coup côté
vitesse et performance. Vous le sentirez à coup sûr. Dans ce cas, à moins que vous
soyez maso, il vaut mieux enregistrer les tâches en cours et redémarrer l'appareil.

Nécessite l'utilitaire replaceit , une manière de sed, par P.L. Daniels comme
dépendance. Demandez-moi le fichier compilé si vous ne l'avez pas déjà.
J'utilise replaceit dans ce script pour traduire quelques termes fournis par
le logiciel "free" utilisé ici. Quand à ce "free", c'est un utilitaire GNU
présent dans tous les Linux, et non une dépendance externe.

En espérant que ce petit script vous sera utile. À la bonne vôtre ! :)

musher0

~~~~~~~
J'ai remplacé mon script enligné ce matin par un plus "cohérent" (à mon goût à moi) à
http://murga-linux.com/puppy/viewtopic. ... ost#824987
Attachments
Freed_RAM-MEV_libérée.jpg
Les chiffres sont différents dans les deux barres de titre parce que je n'ai pas
préparé ces exemples en même temps ! ;-)
(61.25 KiB) Downloaded 714 times
Last edited by musher0 on Tue 03 Mar 2015, 05:40, edited 3 times in total.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

Médor

#2 Post by Médor »

Bonjour,

Il existe dans Opera un nettoyeur intégré : Outils » Supprimer les données privées...

Voir aussi sur ce fil mes derniers pets de cleanup_memory et cleanup_mozilla basés également sur ceux de bigbass.


Cordialement,
Médor.

(sur la capture de cleanup_mozilla la purge a déjà été effectuée précédemment...).
Attachments
Capture_2015-01-30.jpg
(55.25 KiB) Downloaded 653 times
Capture_2015-01-30(1).jpg
(67.06 KiB) Downloaded 652 times

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#3 Post by musher0 »

Salut, Médor !

Il nous faudrait un index valable, dans le forum francophone ! Désolé, je n'avais
pas vu ton travail.

Mais bon, je ne regrette pas, j'ai beaucoup appris en faisant ma version. Et
puis, maintenant qu'elle est faite, je la trouve plus... transparente ?! ;) Elle est
aussi totalement en français quand elle tourne en français ! ;)

À+

musher0
~~~~~~~~~
P.S. Pour être clair, dans mon message initial, Je donnais opera en exemple non
au point de vue des caches réservées à la navigation Internet -- ce qui est un
autre sujet -- mais au point de vue de son utilisation de la MEV. Il est vrai
qu'opera libère de la mémoire vive à sa fermeture, mais on peut libérer
5 % de plus en utilisant cleanup_memory. opera ne libère pas toute la mémoire
vive qu'il utilise, c'est un cas de "memory leak" partiel.

Je viens de le (re)faire : opera me laisse 66 % de MEV (sur 1,5 Go) quand il est
actif. Quand je quitte opera, la MEV monte à 74 % (aucune autre application ne
tourne, seulement les utilitaires habituels du système Puppy, plus le gest. de
fen. pekwm). Si j'utilise cleanup_memory tout de suite après la fermeture
d'opera, la MEV disponible monte de 74 % à 79 %. Il reste donc un 5 % de la
MEV totale occupée par opera quand il est actif, qu'il ne libère pas en quittant.
Last edited by musher0 on Sat 31 Jan 2015, 02:31, edited 1 time in total.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

augras
Posts: 1487
Joined: Mon 11 Nov 2013, 17:37
Location: france

#4 Post by augras »

Bonsoir,
Je viens de récupérer vos libérateurs de mémoire : pas utilie sur la machine où je suis qui a 2 Go de ram mais sur des machines avec 512 là c'est indispensable.
Merci à vous deux.
Je n'est pas installé replaceit et il n'est appremment pas présent mais tout est parfaitement en français !
J'en ai profité pour charger pekwm : je vais le visiter.
Philippe

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#5 Post by musher0 »

Pour respecter l'esprit "open source" :

Code: Select all

#!/bin/ash
# $MAPPS/Systeme/cleanup_memory # simple tool for puppy linux to clean caches
# Joe Arose, alias "big_bass" # Mise en forme et ajouts par musher0,
# 20 mai 2013; rév. 30 janv. 2015.
####
WNDWMNGR="`cat /etc/windowmanager`";AEM="/root/my-applications/ae"
MMLBR="/tmp/mem_libr.txt";RMPL="replaceit --input=$MMLBR" # variables

if [ ${LANG:0:2} = "fr" ];then # param. less
	MEV="'q' pour quitter            =-=-=-=           Mémoire vive libérée";AV="Avant";AP="Après"
else
	MEV="'q' to quit                   =-=-=-=                        Freed RAM";AV="Before";AP="After"
fi # langues, 1

[ "`pidof -s aepanel`" ] && echo "aepanel existe" > /tmp/aepanelE && kill [ "`pidof -s aepanel`" ] &>/dev/null # si aepanel
 
> $MMLBR # Créer fichier à afficher

FreeMem ()
{
echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- .... -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" >> $MMLBR
if [ ${LANG:0:2} = "fr" ];then
	echo "             total      utilisé       libre        partagé     tampons" > /tmp/mevlibr
	free | tail -n 3 >> /tmp/mevlibr
	cat /tmp/mevlibr >> $MMLBR;rm -f /tmp/mevlibr
else
	free >> $MMLBR
fi
echo . >> $MMLBR
}

a="`free | awk 'NR=="2" { print $4 }'`"
echo "                                $AV" >> $MMLBR
FreeMem # L'avant

sync ; echo 3 | tee /proc/sys/vm/drop_caches &>/dev/null;wait # Action

b="`free | awk 'NR=="2" { print $4 }'`"
echo "                                $AP" >> $MMLBR
FreeMem # L'après

d="`free | awk 'NR=="4" { print $3 }'`" # État du fichier d'échange
c="`expr $b - $a`" # calcul

if [ ${LANG:0:2} = "fr" ];then
	[ "$d" = "0" ] && INCHANG="fich. d'échange non utilisé" || INCHANG="fichier d'échange UTILISÉ" 
	TITR="MEV libérée : $c Mo; $INCHANG."
# Traduction
	$RMPL "-/+ buffers:" " ± tampons :";$RMPL Swap Éch.;$RMPL "Mem:" Mém.
else
	[ "$d" = "0" ] && INCHANG="swap file not in use" || INCHANG="swap file IN USE"
	TITR="Freed RAM: $c Mb; $INCHANG."
fi # langues, 2

# Afficher
G="g 72x15-250+300";CLR="fg white -bg AntiqueWhite4" # param. urxvt
TRNSP="tr -tint grey79 -sh 99";FNT="fn xft:Monaco:pixelsize=13:autohint=true"

urxvt -$G -$CLR -$TRNSP -$FNT -T "$TITR" +sb &>/dev/null -e less -L -~ -P "$MEV" $MMLBR 

# Terminer # Replacer aepanel s'il y a lieu, et
[ -f /tmp/aepanelE ] && $AEM/aepanel-menu.sh && rm -f /tmp/aepanelE 

rm -f $MMLBR # nettoyer
Bonne fin de soirée !

musher0

~~~~~~~~~
N.B. Déballer l'archive ci-jointe dans /root/my-applications/bin et rendre le script
déballé exécutable avant de s'en servir.
Attachments
cleanup_memory(1).zip
Cette version fait exactement la même chose que celle enlignée ce matin, mais
j'en suis plus satisfait au plan de la cohérence et de l'économie des lignes.
(Mon p'tit côté "Ockham" est intervenu cet après-midi !) :-)
(1.3 KiB) Downloaded 477 times
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

jplt

#6 Post by jplt »

Bonjour Musher0,

serait-il plus judicieux de donner la mémoire en valeur plus comprehensible par tous le monde c'est à dire qu'avec "free -m" on a la valeur de la memoire en megaoctet.

augras
Posts: 1487
Joined: Mon 11 Nov 2013, 17:37
Location: france

#7 Post by augras »

Lancé dans le terminal le script rouspète parce qu'il ne trouve pas replaceit mais tout fonctionne tout de même et est en français !
J'ai ajouté systématiquement "-m" à la commande free comme indiqué par jplt et effectivement les affichages sont en mégaoctets : je garde comme ça.
C'est bien d'avoir "Avant", "Après" : je verrai bien une troisième ligne pour "Mémoire libérée". Oui, c'est pour les feignants qui n'arriveraient pas à calculer, ou alors pour rassurer les autres et vérifier que leur cerveau fonctionne correctement. Mais comme ça se serait complet je trouve.
Merci,
Philippe

EDIT : j'ai mis la ligne RMPL="replaceit --input=$MMLBR" en remarque et le script ne rouspète donc plus dans le terminal et tout est bien affiché en français tout de même.
Last edited by augras on Sat 31 Jan 2015, 15:14, edited 1 time in total.

augras
Posts: 1487
Joined: Mon 11 Nov 2013, 17:37
Location: france

#8 Post by augras »

Oups ! La mémoire libérée apparaît directement dans le titre de la fenêtre :oops:
Désolé,
Philippe

jplt

#9 Post by jplt »

Bonjour augras,

tu pourrais poster ta version avec tes modifications ?

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#10 Post by musher0 »

augras wrote:Oups ! La mémoire libérée apparaît directement dans le titre de la fenêtre :oops:
Désolé,
Philippe
Salut, Philippe.

Rappel amical : les lunettes, c'est sur le nez que ça se porte ! :D ;)

@jplt
Je ne me suis pas servi du param. -m à cause du calcul à la ligne
"expr machin moins chose". Je crains qu'avec des Mo, le calcul ne soit pas bon.

Merci à tous de vos observations. Je joins une archive *.pet de replaceit pour la
commodité de la chose.

musher0
Attachments
replaceit-1.0.0.pet
Dépendance de ma version du script "cleanup_memory"
(requis pour la traduction de certains mots).
(7.54 KiB) Downloaded 452 times
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

Médor

#11 Post by Médor »

Bonsoir,

Voici une capture du script que j'ai modifié rapidement...

La différence d'occupation de la swap est insignifiante même sans la modif. en Mo

Cordialement,
Médor.
Attachments
Capture_2015-01-31.jpg
(32.58 KiB) Downloaded 562 times

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#12 Post by musher0 »

Médor wrote:Bonsoir,

Voici une capture du script que j'ai modifié rapidement...

La différence d'occupation de la swap est insignifiante même sans la modif. en Mo

Cordialement,
Médor.
Merci de ce petit test, Médor.

Donc, en réponse au souhait de jplt, voici une nouvelle version en Mo, que je viens
de préparer :

Code: Select all

#!/bin/ash
# $MAPPS/Systeme/cleanup_memory # simple tool for puppy linux to clean caches
# Joe Arose, alias "big_bass" # Mise en forme et ajouts par musher0,
# 20 mai 2013; rév. 30 et 31 janv. 2015.
####
WNDWMNGR="`cat /etc/windowmanager`";AEM="/root/my-applications/ae"
MMLBR="/tmp/mem_libr.txt";RMPL="replaceit --input=$MMLBR" # variables

if [ ${LANG:0:2} = "fr" ];then # param. less
	MEV="'q' pour quitter            =-=-=-=           Mémoire vive libérée";AV="Avant";AP="Après"
else
	MEV="'q' to quit                   =-=-=-=                        Freed RAM";AV="Before";AP="After"
fi # langues, 1

[ "`pidof -s aepanel`" ] && echo "aepanel existe" > /tmp/aepanelE && kill [ "`pidof -s aepanel`" ] &>/dev/null # si aepanel
 
> $MMLBR # Créer fichier à afficher

FreeMem ()
{
echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- .... -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" >> $MMLBR
if [ ${LANG:0:2} = "fr" ];then
	echo "(En Mo)      total        utilisé      libre        partagé    tampons" > /tmp/mevlibr
	free -m | tail -n 3 >> /tmp/mevlibr
	cat /tmp/mevlibr >> $MMLBR;rm -f /tmp/mevlibr
else
	free >> $MMLBR
fi
echo . >> $MMLBR
}

a="`free -m | awk 'NR=="2" { print $4 }'`"
echo "                                $AV" >> $MMLBR
FreeMem # L'avant

sync ; echo 3 | tee /proc/sys/vm/drop_caches &>/dev/null;wait # Action

b="`free -m | awk 'NR=="2" { print $4 }'`"
echo "                                $AP" >> $MMLBR
FreeMem # L'après

d="`free -m | awk 'NR=="4" { print $3 }'`" # État du fichier d'échange
c="`expr $b - $a`" # ;c="`expr $c / 1024`" # calcul

if [ ${LANG:0:2} = "fr" ];then
	[ "$d" = "0" ] && INCHANG="fich. d'échange non utilisé" || INCHANG="fichier d'échange UTILISÉ" 
	TITR="MEV libérée : ± $c Mo ; $INCHANG." 
# Traduction
	$RMPL "-/+ buffers:" " ± tampons :";$RMPL Swap Éch.;$RMPL "Mem:" Mém.
else
	[ "$d" = "0" ] && INCHANG="swap file not in use" || INCHANG="swap file IN USE"
	TITR="Freed RAM: ± $c Mb; $INCHANG."
fi # langues, 2

# Afficher
G="g 72x15-250+300";CLR="fg white -bg AntiqueWhite4" # param. urxvt
TRNSP="tr -tint grey79 -sh 99";FNT="fn xft:Monaco:pixelsize=13:autohint=true"

urxvt -$G -$CLR -$TRNSP -$FNT -T "$TITR" +sb &>/dev/null -e less -L -~ -P "$MEV" $MMLBR 

# Terminer # Replacer aepanel s'il y a lieu, et
[ -f /tmp/aepanelE ] && $AEM/aepanel-menu.sh && rm -f /tmp/aepanelE 

rm -f $MMLBR # nettoyer
Les changements sont aux lignes 23, 43, 47 et 52. Merci à tous.

Une nouvelle capture d'écran est jointe. Dans un souci d'équité, je devrais faire
profiter nos confrères anglophones de l'en-tête modifiée ?! Ou je n'altère pas ?

Un mot au sujet des lignes disant "aepanel". aepanel offre un menu "statique" au
gest. de fen. aewm, que j'essaie d'apprivoiser ces temps-ci. Vous pouvez enlever
ces lignes si vous n'utilisez pas aewm.

Encore une fois, merci, jplt. À+ !

musher0
Attachments
Freed_RAM-MEV_libérée(1).jpg
(37.4 KiB) Downloaded 554 times
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

Médor

#13 Post by Médor »

Re,

J'ai notamment modifié comme ci-dessous la ligne pour la purge suivant mon dernier message sur mon fil de mes pets de cleanup_memory & cleanup_mozilla (GUI).

Code: Select all

sync ; echo 3 > /proc/sys/vm/drop_caches;wait # Action


J'affiche également : Avant (Mo] / Before (MB) | Après (Mo) / After (MB)
ici j'ai utilisé en entête : #!/bin/sh


Cordialement,
Médor.

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#14 Post by musher0 »

Bonjour, le Monde / Hello, World!

À moins de gros pépin "pas-vu-pas-pris" :) -- voici la version finale. Inclut la mod.
appliquée aussi à la langue anglaise, et le retrait des lignes pour aepanel/aewm.

Code: Select all

#!/bin/ash
# $MAPPS/Systeme/cleanup_memory-non-aewm
# Pour l'immense majorité des gens qui n'utilisent pas aewm ! :)
#
# Original :
# cleanup_memory, simple tool for puppy linux to clean caches, by
# Joe Arose, alias / aka "big_bass" [De / From Puppy Slaxer 4.12.]
#
# Mise en forme et ajouts : musher0, 20 mai 2013; rév. 30-31 janv. 2015.
# Merci à jplt pour la suggestion de Mo, et à Médor pour le test.
####
WNDWMNGR="`cat /etc/windowmanager`";AEM="/root/my-applications/ae"
MMLBR="/tmp/mem_libr.txt";RMPL="replaceit --input=$MMLBR" # variables

if [ ${LANG:0:2} = "fr" ];then # param. less
	MEV="'q' pour quitter            =-=-=-=           Mémoire vive libérée";AV="Avant";AP="Après"
else
	MEV="'q' to quit                   =-=-=-=                        Freed RAM";AV="Before";AP="After"
fi # langues, 1
 
> $MMLBR # Créer fichier à afficher

FreeMem ()
{
echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- .... -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" >> $MMLBR
if [ ${LANG:0:2} = "fr" ];then
	echo "(En Mo)      total        utilisé      libre        partagé    tampons" > /tmp/mevlibr
else
	echo "(In Mb)      total         used         free       shared      buffers" > /tmp/mevlibr
fi
	free -m | tail -n 3 >> /tmp/mevlibr
	cat /tmp/mevlibr >> $MMLBR;rm -f /tmp/mevlibr
echo . >> $MMLBR
}

a="`free -m | awk 'NR=="2" { print $4 }'`"
echo "                                $AV" >> $MMLBR
FreeMem # L'avant

sync ; echo 3 | tee /proc/sys/vm/drop_caches &>/dev/null;wait # Action

b="`free -m | awk 'NR=="2" { print $4 }'`"
echo "                                $AP" >> $MMLBR
FreeMem # L'après

d="`free -m | awk 'NR=="4" { print $3 }'`" # État du fichier d'échange
c="`expr $b - $a`" # calcul

if [ ${LANG:0:2} = "fr" ];then
	[ "$d" = "0" ] && INCHANG="fich. d'échange non utilisé" || INCHANG="fichier d'échange UTILISÉ" 
	TITR="MEV libérée : ± $c Mo ; $INCHANG."
# Traduction
	$RMPL "-/+ buffers:" " ± tampons :";$RMPL Swap Éch.;$RMPL "Mem:" Mém.
else
	[ "$d" = "0" ] && INCHANG="swap file not in use" || INCHANG="swap file IN USE"
	TITR="Freed RAM: ± $c Mb; $INCHANG."
fi # langues, 2

# Afficher
G="g 72x15-250+300";CLR="fg white -bg AntiqueWhite4" # param. urxvt
TRNSP="tr -tint grey79 -sh 99";FNT="fn xft:Monaco:pixelsize=13:autohint=true"

urxvt -$G -$CLR -$TRNSP -$FNT -T "$TITR" +sb &>/dev/null -e less -L -~ -P "$MEV" $MMLBR 

rm -f $MMLBR # nettoyer
À la bonne vôtre !

musher0
Attachments
Freed_RAM-MEV_libérée(2).jpg
À l'intention de nos confrères anglophones.
(36.81 KiB) Downloaded 514 times
cleanup_memory-non-aewm.zip
(1.37 KiB) Downloaded 429 times
Last edited by musher0 on Sat 31 Jan 2015, 23:42, edited 1 time in total.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#15 Post by musher0 »

Médor wrote:Re,

J'ai notamment modifié comme ci-dessous la ligne pour la purge suivant mon dernier message sur mon fil de mes pets de cleanup_memory & cleanup_mozilla (GUI).

Code: Select all

sync ; echo 3 > /proc/sys/vm/drop_caches;wait # Action

J'affiche également : Avant (Mo] / Before (MB) | Après (Mo) / After (MB)
ici j'ai utilisé en entête : #!/bin/sh

Cordialement,
Médor.
Pourquoi pas de commande "tee" ?

Je l'ai mis en ash parce que 25 % plus rapide que bash. Dixit technosaurus,
vérifié par mon expérience, chrono Puppy en main pour ainsi dire, et par celle
d'aragon, sur les scripts de menu (dans l'temps !).

À+

musher0
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

Médor

#16 Post by Médor »

Voici mon script modifié suivant ma dernière capture et mes remarques de mon message précédent.

Code: Select all

#!/bin/sh 
# $MAPPS/Systeme/cleanup_mem.sh # simple tool for puppy linux to clean caches
# Joe Arose, alias "big_bass" # Mise en forme et ajouts par musher0,
# 20 mai 2013; rév. 30 janv. 2015
#rev. 31 Janv Médor.
####
MMLBR="/tmp/mem_libr.txt";RMPL="replaceit --input=$MMLBR" # variables

if [ ${LANG:0:2} = "fr" ];then # param. less
   MEV="'q' pour quitter            =-=-=-=           Mémoire vive libérée";AV="Avant (Mo)";AP="Après (Mo)"
else
   MEV="'q' to quit                   =-=-=-=                        Freed RAM";AV="Before (MB)";AP="After (MB)"
fi # langues, 1

##[ "`pidof -s aepanel`" ] && echo "aepanel existe" > /tmp/aepanelE && kill [ "`pidof -s aepanel`" ] &>/dev/null # si aepanel

> $MMLBR # Créer fichier à afficher

FreeMem ()
{
echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= .......... =-=-=-=-=-=-=-=-=-=-=-=-=-=" >> $MMLBR
if [ ${LANG:0:2} = "fr" ];then
   echo "             total      utilisé        libre      partagé      tampons" > /tmp/mevlibr
   free -m | tail -n 3 >> /tmp/mevlibr
   cat /tmp/mevlibr >> $MMLBR;rm -f /tmp/mevlibr
else 
   free -m >> $MMLBR
fi 
echo . >> $MMLBR
}

a="`free -m | awk 'NR=="2" { print $4 }'`"
echo "                                $AV" >> $MMLBR
FreeMem # L'avant

sync ; echo 3 > /proc/sys/vm/drop_caches;wait # Action

b="`free -m | awk 'NR=="2" { print $4 }'`"
echo "                                $AP" >> $MMLBR
FreeMem # L'après

d="`free -m | awk 'NR=="4" { print $3 }'`" # État du fichier d'échange
c="`expr $b - $a`" # calcul

if [ ${LANG:0:2} = "fr" ];then
   [ "$d" = "0" ] && INCHANG="fich. d'échange non utilisé" || INCHANG="fichier d'échange UTILISÉ"
   TITR="MEV libérée : $c Mo; $INCHANG."
# Traduction
   $RMPL "-/+ buffers:" " ± tampons :";$RMPL Swap Éch.;$RMPL "Mem:" Mém.
else
   [ "$d" = "0" ] && INCHANG="swap file not in use" || INCHANG="swap file IN USE"
   TITR="Freed RAM: $c Mb; $INCHANG."
fi # langues, 2

# Afficher
G="g 72x15-250+300";CLR="fg white -bg AntiqueWhite4" # param. urxvt
TRNSP="tr -tint grey79 -sh 99";FNT="fn xft:Monaco:pixelsize=13:autohint=true"

urxvt -$G -T "$TITR" +sb &>/dev/null -e less -L -~ -P "$MEV" $MMLBR

# Terminer # Replacer aepanel s'il y a lieu, et

rm -f $MMLBR # nettoyage
Cordialement,
Médor.

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#17 Post by musher0 »

Y a pas de quoi se chicaner !!! :) ;)

Chez toi, la fonction FreeMem ne rejimbe pas sous bash, sans la mention
"function" avant ? Chez moi, si. Vérifie dans ton xerrs_log ?

C'est justement une des différences entre bash et ash. À+

musher0
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

Médor

#18 Post by Médor »

Ici après avoir relancé X (uptime: 2d 11:48 ...) je n'ai aucune erreur dans xerrs.log ni même dans la console concernant ce script ...

Cordialement,
Médor.

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#19 Post by musher0 »

Médor wrote:Ici après avoir relancé X (uptime: 2d 11:48 ...) je n'ai aucune erreur dans xerrs.log ni même dans la console concernant ce script ...

Cordialement,
Médor.
Évidemment, relancer X efface Xerrs_log automatiquement ! ;)
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

Médor

#20 Post by Médor »

Ne me prend pas pour un imbécile :!!
J'ai vérifié avant de relancer X et le script je l'avais lancé une bonne dizaine de fois auparavant lors de mes modif.
je n'avais pas d'erreur mon plus avec ton script original :!:

Après avoir relancer X, J''ai bien évidemment relancé le script avec deux ouvertures du fichier /tmp/xerr.log avant et après l'exécution du script :!:


Médor.

Post Reply