[gilug.org] informarecursos, primera versio
Narcis Garcia - GiLUG informatica actiu net
2008-05-19 17:09:23 UTC
Tinc un dubte, sobre el tema de la memòria RAM lliure:
Quan executes la comanda "free", retorna una línia addicional que parla
de "buffers/cache". Llegint la documentació del "free" m'ha semblat
entendre que la xifra de buffers/cache de la columna d'espai lliure
(free) és la suma de la memòria RAM no utilitzada i la què s'està
utilitzant en cache de disc, i aleshores el sistema pot disposar de tota
aquesta quantitat sense recórrer a memòria virtual (swap).
És correcta la meva interpretació?
-----Missatge original-----
De: Narcis Garcia - GiLUG <>
Respon:
Per a:
Assumpte: [gilug.org] informarecursos, primera versio
Data: Mon, 19 May 2008 18:58:57 +0200
Ja tinc enllestida una versió estable del programet (script) que estava
preparant.
Transcric el codi font, que es pot copiar i enganxar en un fitxer de
text tal com "informarecursos.sh". Aleshores el podem fer executable,
configurar-lo i provar-lo.
Configurar-lo només consisteix en ajustar els paràmetres explicats al
propi entorn i gust.
#!/bin/sh
# Sondeig de recursos disponibles.
# Versio 2008.05.19
# Copyleft (GNU GPL) Narcis Garcia Langa
# http://www.actiu.net/informatica/
# CONFIGURACIO1: UNITAT DE MESURA PER A DISCS
# Bytes: 1
# KB: 1024
# MB: $((1024*1024))
# GB: $((1024*1024*1024))
# * La mesura del bloc s'arrodonira per proximitat: Si es posa la mida
de bloc en 1GB, aleshores 4.7GB es consideren 5GB.
AbreviaturaMesura=GB
MidaBlocMesura=$((1024*1024*1024))
# CONFIGURACIO2: PARTICIONS O DISCS A SONDEJAR (deixar en blanc els que
no cal sondejar)
# * Utilitzeu la comanda "df" per a veure els sistemes de fitxers
disponibles
# * El nom del disc, amb "df" ha d'aparèixer a la mateixa linia que les
xifres. Una alternativa és identificar-lo per la mida (veure df -B
MidaBlocMesura)
Disc1=sdb5
BlocsLliuresMinim1=1
Disc2=sda1
BlocsLliuresMinim2=1
Disc3=
BlocsLliuresMinim3=
Disc4=
BlocsLliuresMinim4=
Disc5=
BlocsLliuresMinim5=
Disc6=
BlocsLliuresMinim6=
Disc7=
BlocsLliuresMinim7=
Disc8=
BlocsLliuresMinim8=
Disc9=
BlocsLliuresMinim9=
# CONFIGURACIO3: MEMORIA DE TREBALL (deixar en blanc allò que no es
vulgui sondejar)
# * unitat de mesura: sempre en MB
RAMLliureMinim=128
SwapLliureMinim=128
# CONFIGURACIO4: AVISOS PER CORREU-E (deixar destinatari en blanc per a
no enviar correus)
# * Requereix tenir habilitat algun servidor de correu electrònic per a
fer enviaments amb la comanda "mail".
# [EnviarSempre] posar-lo a 1 per a què també envii si els nivells són
bons, o posar-lo a 0 per a enviar només sota mínims.
EnviarSempre=1
CorreuDestinacio=
if [ "$1" = "--v1disc" ] || [ "$1" = "--vram" ] || [ "$1" =
"--vswap" ] ; then
if [ "$1" = "--v1disc" ] ; then
if [ "$9" = "" ] ; then # Comprovacio de si la mateixa línia (df) no
tenia identificació de disc
DiscActualLliure=$6
else
DiscActualLliure=$7
fi
if [ $DiscActualLliure -gt $3 ] ; then
echo "El disc $2 mante un bon nivell ($DiscActualLliure
$AbreviaturaMesura lliures)" >> /tmp/informarecursos.txt
else
echo "ATENCIO: El disc $2 nomes te $DiscActualLliure $AbreviaturaMesura
lliures, doncs no supera el minim de $3 $AbreviaturaMesura."
>> /tmp/informarecursos.txt
printf " $2" >> /tmp/informarecursos.sot
fi
fi
if [ "$1" = "--vram" ] ; then
if [ $5 -gt $RAMLliureMinim ] ; then
echo "La memoria immediata (RAM) mante un bon nivell ($5 MB lliures)"
>> /tmp/informarecursos.txt
else
echo "ATENCIO: La memoria immediata (RAM) nomes te $5 MB lliures, doncs
no supera el minim de $RAMLliureMinim." >> /tmp/informarecursos.txt
printf " RAM" >> /tmp/informarecursos.sot
fi
fi
if [ "$1" = "--vswap" ] ; then
if [ $5 -gt $SwapLliureMinim ] ; then
echo "La memoria virtual (Swap) mante un bon nivell ($5 MB lliures)"
>> /tmp/informarecursos.txt
else
echo "ATENCIO: La memoria virtual (Swap) nomes te $5 MB lliures, doncs
no supera el minim de $SwapLliureMinim." >> /tmp/informarecursos.txt
printf " Swap" >> /tmp/informarecursos.sot
fi
fi
else
rm -f /tmp/informarecursos.txt
rm -f /tmp/informarecursos.sot
if [ "RAMLliureMinim" != "" ] ; then
$0 --vram `free -m | grep Mem:`
fi
if [ "SwapLliureMinim" != "" ] ; then
$0 --vswap `free -m | grep Swap:`
fi
if [ "$Disc1" != "" ] && [ "$BlocsLliuresMinim1" != "" ] ; then
$0 --v1disc $Disc1 $BlocsLliuresMinim1 `df -B $MidaBlocMesura | grep
$Disc1`
fi
if [ "$Disc2" != "" ] && [ "$BlocsLliuresMinim2" != "" ] ; then
$0 --v1disc $Disc2 $BlocsLliuresMinim2 `df -B $MidaBlocMesura | grep
$Disc2`
fi
if [ "$Disc3" != "" ] && [ "$BlocsLliuresMinim3" != "" ] ; then
$0 --v1disc $Disc3 $BlocsLliuresMinim3 `df -B $MidaBlocMesura | grep
$Disc3`
fi
if [ "$Disc4" != "" ] && [ "$BlocsLliuresMinim4" != "" ] ; then
$0 --v1disc $Disc4 $BlocsLliuresMinim4 `df -B $MidaBlocMesura | grep
$Disc4`
fi
if [ "$Disc5" != "" ] && [ "$BlocsLliuresMinim5" != "" ] ; then
$0 --v1disc $Disc5 $BlocsLliuresMinim5 `df -B $MidaBlocMesura | grep
$Disc5`
fi
if [ "$Disc6" != "" ] && [ "$BlocsLliuresMinim6" != "" ] ; then
$0 --v1disc $Disc6 $BlocsLliuresMinim6 `df -B $MidaBlocMesura | grep
$Disc6`
fi
if [ "$Disc7" != "" ] && [ "$BlocsLliuresMinim7" != "" ] ; then
$0 --v1disc $Disc7 $BlocsLliuresMinim7 `df -B $MidaBlocMesura | grep
$Disc7`
fi
if [ "$Disc8" != "" ] && [ "$BlocsLliuresMinim8" != "" ] ; then
$0 --v1disc $Disc8 $BlocsLliuresMinim8 `df -B $MidaBlocMesura | grep
$Disc8`
fi
if [ "$Disc9" != "" ] && [ "$BlocsLliuresMinim9" != "" ] ; then
$0 --v1disc $Disc9 $BlocsLliuresMinim9 `df -B $MidaBlocMesura | grep
$Disc9`
fi
if [ -f /tmp/informarecursos.sot ] ; then
echo "[`uname -n`] `cat /tmp/informarecursos.sot` sota nivell"
else
echo "[`uname -n`] amb recursos a nivell"
fi
cat /tmp/informarecursos.txt
echo "" >> /tmp/informarecursos.txt
echo "INFORME ORIGINAL DE MEMORIA DE TREBALL (free -m)"
>> /tmp/informarecursos.txt
free -m >> /tmp/informarecursos.txt
echo "" >> /tmp/informarecursos.txt
echo "INFORME ORIGINAL D'US DE DISCS (df -hT)"
>> /tmp/informarecursos.txt
df -hT >> /tmp/informarecursos.txt
if [ "$CorreuDestinacio" != "" ] ; then
if [ -f /tmp/informarecursos.sot ] ; then
cat /tmp/informarecursos.txt | mail -s "[`uname -n`]
`cat /tmp/informarecursos.sot` sota nivell" $CorreuDestinacio
echo "S'ha enviat l'alerta completa a: $CorreuDestinacio"
else
if [ "$EnviarSempre" = "1" ] ; then
cat /tmp/informarecursos.txt | mail -s "[`uname -n`] amb recursos a
nivell" $CorreuDestinacio
echo "S'ha enviat l'informe complet a: $CorreuDestinacio"
fi
fi
fi
fi
_______________________________________________
Llista del GiLUG
http://gilug.org/cgi-bin/mailman/listinfo/llista
* Tots els missatges queden publicats a:
http://gilug.org/pipermail/llista/
Més informació sobre la llista de correu gilug