Parfois je fait quelques scripts alors autant les partager …
c’est parti!!
Faire un graphe de son modules.dep
Requiere awk, graphviz et ImageMagick (sinon il faut l’adapter à d’autres suites)
#modules_graph creates a graph of a modules.dep file using dot and ImageMagick
#!/bin/sh
#Check graphiz and ImageMagick are present. You may change ImageMagick to gv for example
type dot > /dev/null && { type display > /dev/null || { echo "ImageMagick is missing"; exit; } ; } || { echo "Graphviz(dot)
is missing" ; exit ; }
#User supplied or current one
depfile=${1:-/lib/modules/$(uname -r)/modules.dep}
[ -r $depfile ] || { echo "$depfile not readable"; exit; }
#Sort modules.dep
sdepfile=$(mktemp -t $(basename $0).XXXXXX)
[ $? == 0 ] || { echo "Could not create temp file $sdepfile" ; exit ; }
sort $depfile > $sdepfile
#We want to remove the prefix /lib/modules/`uname -r`/kernel/
# awful hack "kernel" is 6 bytes , "modules.dep" is 11, so substract 6 counting the leading /
subs=$(( $(echo $depfile | wc -c) - 4))
gawk -F":| " -v subs=$subs \
'BEGIN {
print "digraph modules { mclimit=2.0;"
}
/^[^#]/ {
if (NF==2 ) {
print "\"" substr($1,subs) "\"" ";" ;
next;
}
for(i=3;i<=NF;i++)
print "\"" substr($1,subs) "\"" "->" "\"" substr($i,subs) "\";" ;
}
END {
print "}"
}
' $sdepfile | dot -Tps -Nfontsize=10 | display
rm $sdepfile
Boucler sur deborphan tant qu’il y a des orphelins
Requiere deborphan
Attention deborphan peut enlever des paquets nécessaires pour certains softs installés en source
Je crois qu’aptitude fait la meme chose
#!/bin/sh
while [ $(deborphan $* | wc -l) != 0 ] ; do
deborphan $* | while read i; do apt-get remove -y $i; done
done
Avoir qq infos mémoire sur un process
Requiere memstat
Ex d’usage: mmem apache2
#!/bin/sh
memstat -w | sort -n | grep `pidof -s $1`
Affiche l’emplacement web d’un paquet dans le repository http.us.debian.org
Requiere awk
ex d’usage: grepdeb autofs
problème: le suffixe “all” n’est pas toujours présent. J’ai pas trop cherché la logique
#!/bin/sh
ser=http://http.us.debian.org/debian
ver=$(apt-cache policy ${1} | grep Candi | awk '{print $2}')
dirbase=$(apt-cache showsrc ${1} | grep -A 8 "Version: ${ver}" | tail -1 | awk '{print $2}')
echo "${ser}/${dirbase}/${1}_${ver}_all.deb"
Y en a d’autres qui sont trop spécifiques à mes besoins ou trop longs, ca servirait pas trop.
ps:Chez moi /bin/sh est linké vers bash; je viens de me rendre compte que si c’est pas le cas chez certains, ca marchera pas tjrs, il faut probablement remplacer la première ligne (/bin/sh -> /bin/bash)