Solaris – Comment limiter la taille d’un coredump
Aujourd’hui un nouveau problème s’est posé à moi, comment limiter la taille d’un coredump afin que celui-ci ne remplisse pas tout mon filesystems?
Mes coredumps sont générés dans le filesystems /var et je souhaite limiter la taille à 80% de l’espace disponible. Il faut savoir que a taille des coredump est définit en blocs de 512 bytes et par défaut leur taille est illimité:
1 2 3 4 5 6 7 8 | $ ulimit -a time(seconds) unlimited file(blocks) unlimited data(kbytes) unlimited stack(kbytes) 8192 coredump(blocks) unlimited nofiles(descriptors) 65536 vmemory(kbytes) unlimited |
On peut figer la taille des coredump avec la commande « ulimit -c XXXXX ». Il faut au préalable calculer 80% de l’espace libre de mon filesystems /var en blocs de 512 bytes. La question est donc: Comment faire tout ça en une ligne de commande?
Voici la réponse:
1 | $ ulimit -c $(/usr/xpg4/bin/df -P /var | tail -1 | awk '{printf ("%d\n",$4*0.8)}') |
Noter bien le chemin d’accès au binaire df car sinon le paramètre -P ne sera pas reconnu.
Pour vérifier:
1 2 3 4 5 6 7 8 | $ ulimit -a time(seconds) unlimited file(blocks) unlimited data(kbytes) unlimited stack(kbytes) 8192 coredump(blocks) 6412156 nofiles(descriptors) 65536 vmemory(kbytes) unlimited |


Laisser une réponse