# Quelques scripts

**URL:** <https://www.debian-fr.org/t/quelques-scripts/3615>\
**Category:** Trucs et Astuces\
**Created:** [Février 20, 2016, 12:50 UTC](https://www.debian-fr.org/t/quelques-scripts/3615 "2016-02-20T12:50:49Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![BorisTheButcher](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/d6d6ee/32.png) [@BorisTheButcher](https://www.debian-fr.org/u/BorisTheButcher)\
**Post date:** [Février 20, 2016, 12:50 UTC](https://www.debian-fr.org/t/quelques-scripts/3615/1 "2016-02-20T12:50:49Z")

</div>

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)

```auto
#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

```auto
#!/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](http://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)

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 12:50 UTC](https://www.debian-fr.org/t/quelques-scripts/3615/2 "2016-02-20T12:50:51Z")

</div>

sur ton ps, non. On a eu une discussion à ce sujet, et à priori, bash, appelé en tant que sh, se limite au fonctionnalités de sh.  
Donc, si tu n’as pas de pb chez toi, c’est que c’est du sh standard, et qu’à peu prés tous les sh-compatible l’accepteront.

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 12:55 UTC](https://www.debian-fr.org/t/quelques-scripts/3615/3 "2016-02-20T12:55:23Z")

</div>

usinagaz: si tu cherches tes posts, je les ai séparé et mis dans GNU/Linux en général, pour que tu aies plus de réponses, ici:  
[forum.debian-fr.org/viewtopic.php?t=3738](http://forum.debian-fr.org/viewtopic.php?t=3738)

---

<div class="post-metadata">

**Author:** ![usinagaz](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/u/ecae2f/32.png) [@usinagaz](https://www.debian-fr.org/u/usinagaz)\
**Post date:** [Février 20, 2016, 12:55 UTC](https://www.debian-fr.org/t/quelques-scripts/3615/4 "2016-02-20T12:55:26Z")

</div>

ok, merci … je savais pas trop où mettre c’est juste … 😉
