Cherche infos sur l'occupation des partitions dans /proc

Cherche infos sur l'occupation des partitions dans /proc - Divers - Linux et OS Alternatifs

Marsh Posté le 24-01-2005 à 15:11:33    

Yop,
 
Je voudrais récupérer les infos que donne "df" mais sans lancer la commande, c'est pour exploiter dans un code C l'occupation des différentes partitions.
 
charge     : uptime -> /proc/loadavg
memoire    : free -> /proc/meminfo
partitions : df -> ?
 
Quelqu'un peut-il me dire où ça se planque ? :/
 
Merci :jap:

Reply

Marsh Posté le 24-01-2005 à 15:11:33   

Reply

Marsh Posté le 24-01-2005 à 15:15:10    

Ok en fait statfs.h est mon ami :o

Reply

Marsh Posté le 24-01-2005 à 15:17:31    

/proc/diskstats mais faut trier


Message édité par mirtouf le 24-01-2005 à 15:18:52

---------------
-~- Libérez Datoune ! -~- Camarade, toi aussi rejoins le FLD pour que la flamme de la Révolution ne s'éteigne pas ! -~- A VENDRE
Reply

Marsh Posté le 24-01-2005 à 15:18:29    

mirtouf a écrit :

/proc/diskstats mais faut trier.


 
Faut surtout l'avoir coché dans sa config kernel :D ( ce qui n'est pas mon cas )

Reply

Marsh Posté le 24-01-2005 à 15:20:09    

Sly Angel a écrit :

Faut surtout l'avoir coché dans sa config kernel :D ( ce qui n'est pas mon cas )


/proc/partitions est moins complet


---------------
-~- Libérez Datoune ! -~- Camarade, toi aussi rejoins le FLD pour que la flamme de la Révolution ne s'éteigne pas ! -~- A VENDRE
Reply

Marsh Posté le 24-01-2005 à 15:24:37    

mirtouf a écrit :

/proc/partitions est moins complet


 
Bah surtout qu'il donne pas l'occupation, mais en C y'a sys/statfs.h qui permet justement d'aller choper tout ça, je vais utiliser ça :) ( c'est la lib par laquelle df passe en fait )

Reply

Marsh Posté le 24-01-2005 à 15:38:07    

Sly Angel a écrit :

Bah surtout qu'il donne pas l'occupation, mais en C y'a sys/statfs.h qui permet justement d'aller choper tout ça, je vais utiliser ça :) ( c'est la lib par laquelle df passe en fait )


df n'est pas satifaisant ?


---------------
:: Light is Right ::
Reply

Marsh Posté le 24-01-2005 à 15:39:56    

A mon avis si il demande ca c'est par ce qu'il a besoinde faire des appels systems dans un programme et non de passer une ligne de commande.
 
Probablement un outil de reporting ou de monitoring, je me trompe ?


Message édité par Hrolf le 24-01-2005 à 15:40:12
Reply

Marsh Posté le 24-01-2005 à 15:40:40    

tomate a écrit :

df n'est pas satifaisant ?


 
Le programme C ne fait pas que ça, il intégre un ensemble d'informations, donc éxécuter un "df" à l'intérieur du programme C, c'est un chouilla piti poil... pas propre je trouve ;)

Reply

Marsh Posté le 24-01-2005 à 15:42:27    

Hrolf a écrit :

A mon avis si il demande ca c'est par ce qu'il a besoinde faire des appels systems dans un programme et non de passer une ligne de commande.
 
Probablement un outil de reporting ou de monitoring, je me trompe ?


 
tout à fait, un programme central pour monitorer un parc de serveurs en réseau :jap:
 
Edit : oui je sais snmp tout ça, mais j'ai des besoins très spécifiques :o


Message édité par Sly Angel le 24-01-2005 à 15:43:26
Reply

Marsh Posté le 24-01-2005 à 15:42:27   

Reply

Marsh Posté le 24-01-2005 à 15:53:42    

Tu t'embete quand meme beacoup pour faire un truc du genre, enfin sauf si tu aime programmer en C.
 
Chez nous en trichant on fait comme ca :
-creer un service, "monitor" par exemple, qui ecoute sur un port public (3333).
-Ce service lance un tout bete script bash alignant les "echo ########## separator ##### BDF" avec les lignes de commandes "/bin/bdf -l |awk '{print "bdf:" $0}'
 
C'est certe pas aussi rapide qu'un veritable programme en C, par contre ca a l'avantage de pouvoir monitorer a peut pres n'importe quoi (sachant que le traitement sera fait plus tard en central).
Le probleme d'un programme en C, c'est qu'a moins qu'il ne sois tres modulaire, c'est relativement complique d'integrer un nouveau monitoring (par exemple du raid ou une baie de disk).

Reply

Marsh Posté le 24-01-2005 à 16:32:25    

Sly Angel a écrit :

Le programme C ne fait pas que ça, il intégre un ensemble d'informations, donc éxécuter un "df" à l'intérieur du programme C, c'est un chouilla piti poil... pas propre je trouve ;)


oui effectivement ;)


---------------
:: Light is Right ::
Reply

Marsh Posté le 24-01-2005 à 16:33:46    

Hrolf a écrit :

Tu t'embete quand meme beacoup pour faire un truc du genre, enfin sauf si tu aime programmer en C.
 
Chez nous en trichant on fait comme ca :
-creer un service, "monitor" par exemple, qui ecoute sur un port public (3333).
-Ce service lance un tout bete script bash alignant les "echo ########## separator ##### BDF" avec les lignes de commandes "/bin/bdf -l |awk '{print "bdf:" $0}'
 
C'est certe pas aussi rapide qu'un veritable programme en C, par contre ca a l'avantage de pouvoir monitorer a peut pres n'importe quoi (sachant que le traitement sera fait plus tard en central).
Le probleme d'un programme en C, c'est qu'a moins qu'il ne sois tres modulaire, c'est relativement complique d'integrer un nouveau monitoring (par exemple du raid ou une baie de disk).


 
Les scripts shell, j'utilise énormément depuis des années, mais là je veux un truc propre, ça va servir a beaucoup de choses, hormis le monitoring, y'a de l'utilisation de bdd MySQL, de l'affichage CGI, etc... Et ça en shell script ça devient vite usine à gaz :o
 
De plus pour certaines choses il me faut un suid root, ce qui nécessite donc un programme C pour le flagger +s ( ou Perl mais bon bof )
 
Et puis j'aime bien le C :D

Reply

Marsh Posté le 24-01-2005 à 16:46:44    

le C c'est le bien :o


---------------
:: Light is Right ::
Reply

Marsh Posté le 24-01-2005 à 17:07:48    

à mon avis utiliser un langage compilé au lieu de scripts (python, ruby, perl, etc...) te fera réinventer la roue

Reply

Marsh Posté le 24-01-2005 à 17:11:51    

Sly Angel a écrit :

tout à fait, un programme central pour monitorer un parc de serveurs en réseau :jap:
 
Edit : oui je sais snmp tout ça, mais j'ai des besoins très spécifiques :o


 
sachant que tu peut faire renvoyer ce que tu veux avec snmp (la sortie d'une commande shell par exemple), que veux-tu de plus spécifique  :??:

Reply

Marsh Posté le 24-01-2005 à 17:13:35    

tu fais un copier/coller des sources de df


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
Reply

Marsh Posté le 24-01-2005 à 17:59:21    

ory : Parce que je me sers de ce programme pour du local comme du réseau, parce que j'ai aussi besoin d'effectuer des opérations d'écriture dans des fichiers en suid root, parce que j'utilise une base MySQL avec le tout également et beaucoup de "modules" et que j'ai pas envie de faire 36 scripts dans des langages différents pour gérer ça.
 
Et j'ai envie de coder mon propre outils selon mes critères parce que j'ai besoin aussi de gérer l'accès à ces données selon des droits à des classes d'users particulière.
 
Maintenant on peut tout gérer par scripts divers, j'ai déjà une bonne partie de ce que je veux que j'utilise depuis un moment par scripts d'ailleurs, mais je veux faire évoluer ça dans un programme C qui me permettra de gérer l'ensemble comme je le souhaite au lieu d'avoir 36000 scripts en shell/Perl/python/PHP.
 
C'est un choix, il demande un dev plus important et long, mais c'est un choix que j'ai fait pour un ensemble de raisons, dont par exemple le portage sous Windows ou autre système par la suite.

Reply

Marsh Posté le 24-01-2005 à 18:00:05    

Dark_Schneider a écrit :

tu fais un copier/coller des sources de df


 
C'est en cherchant les sources de df que j'ai trouvé la lib statfs qui donne tout ce qu'il faut :D

Reply

Marsh Posté le 24-01-2005 à 18:19:20    

Sly Angel a écrit :

ory : Parce que je me sers de ce programme pour du local comme du réseau, parce que j'ai aussi besoin d'effectuer des opérations d'écriture dans des fichiers en suid root, parce que j'utilise une base MySQL avec le tout également et beaucoup de "modules" et que j'ai pas envie de faire 36 scripts dans des langages différents pour gérer ça.
 
Et j'ai envie de coder mon propre outils selon mes critères parce que j'ai besoin aussi de gérer l'accès à ces données selon des droits à des classes d'users particulière.
 
Maintenant on peut tout gérer par scripts divers, j'ai déjà une bonne partie de ce que je veux que j'utilise depuis un moment par scripts d'ailleurs, mais je veux faire évoluer ça dans un programme C qui me permettra de gérer l'ensemble comme je le souhaite au lieu d'avoir 36000 scripts en shell/Perl/python/PHP.
 
C'est un choix, il demande un dev plus important et long, mais c'est un choix que j'ai fait pour un ensemble de raisons, dont par exemple le portage sous Windows ou autre système par la suite.


 
 
Un exemple avec python ou perl, tu as des centaines de modules pour utiliser plein de choses, (exemple pour perl http://aspn.activestate.com/ASPN/M [...] der=name).
 
Tu veux utiliser un truc, genre connexion à une bdd mysql/génération de graphs ? installation du module (rapide si distribution avec packages), import machin/use machine, et voilà, pas de besoin d'installer les headers de la bibliothèque.
 
Et pour "beaucoup de "modules", la programmation objet de python te rendra ca plus facile qu'avec le c.
 
Tu sais, il y a des gros gros programmes écrit en python, et niveaux performances à moins de faire du temps réel tu sentira pas de grosses différences (demande à taz).
 
Je vois pas pourquoi tu veux faire "36000 scripts en shell/Perl/python/PHP.", sachant que tu prends un langage, et que tu fait l'ensemble de tes tâches avec, pas besoin de changer, quelle est l'utilité ? perl et python (par ex) peuvent certainement tout faire.
 
Dernière chose, pour le portage, le choix d'un langage compilé est la dernière chose à prendre.
 
Tu vas te retrouver à utiliser des #define partout à cause des particularités des os, ne parlons même pas des différentes architectures (little/big endian).
Alors qu'en python (je prends tout le temps ce langage comme exemple car je l'utilise très souvent), bah rien à changer pour le faire marcher sous win/linux, même avec une gui  :)
 
Dernière chose, quand ca merde en python, tu as un backtrace détaillé avec la ligne, bien plus sympathique que de devoir passer par gdb  [:dewey]


Message édité par ory le 24-01-2005 à 18:21:12
Reply

Marsh Posté le 24-01-2005 à 18:25:50    

ory si j'ai bien compris t'es un intaigriste python ?


---------------
-~- Libérez Datoune ! -~- Camarade, toi aussi rejoins le FLD pour que la flamme de la Révolution ne s'éteigne pas ! -~- A VENDRE
Reply

Marsh Posté le 24-01-2005 à 18:26:31    

c'est un multi [:god]


---------------
:: Light is Right ::
Reply

Marsh Posté le 24-01-2005 à 18:32:48    

mirtouf a écrit :

ory si j'ai bien compris t'es un intaigriste python ?


 
non, je l'utilise pour faire les outils dont les personnes ont besoin où je travaille, et pour des trucs persos.
 
Ca va du truc pour récupérer les données des comptes sur le site d'une banque en ssl pour ensuite le mettre dans des bdd dbf du logiciel (ciel compta), à la modification d'images (ajout de logos, de textes), et à des transferts de fichiers entre ordis.
 
Je tiens juste à faire connaître ce langage, et à faire oublier les idées préconcues, du genre les langages de script c'est de la bidouille et c'est lent.
 
Un exemple : un tableur écrit en 400 lignes, commentaires et GUI inclus.
http://naholyr.free.fr/python/spreadsheet.py
 
En c, ca aurait demandé combien ?

Reply

Marsh Posté le 24-01-2005 à 18:33:12    

tomate a écrit :

c'est un multi [:god]


 
Non, j'utilise plus les anciens pseudos, donc pas un multi.

Reply

Marsh Posté le 24-01-2005 à 18:37:03    

c'est quoi les anciens pseudos ? [:cupra]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 24-01-2005 à 18:42:11    

Comment c'est saoulant les gens qui veulent imposer leur langage fétiche aux autres à tout prix...
 
 

Reply

Marsh Posté le 24-01-2005 à 18:43:52    

Sly Angel a écrit :

Comment c'est saoulant les gens qui veulent imposer leur langage fétiche aux autres à tout prix...


 
j'ai dit que je prenais python comme un exemple, faut lire  [:dewey]  
 
Ca s'applique bien sûr aux autres langages de script
 
edit : et sinon, quels sont les avantages techniques d'un langage compilé par rapport à un langage de script pour ce que tu veux faire ?


Message édité par ory le 24-01-2005 à 18:44:48
Reply

Marsh Posté le 24-01-2005 à 18:45:01    

black_lord a écrit :

c'est quoi les anciens pseudos ? [:cupra]


 
on s'en branle putain

Reply

Marsh Posté le 24-01-2005 à 18:53:06    

ory a écrit :

non, je l'utilise pour faire les outils dont les personnes ont besoin où je travaille, et pour des trucs persos.
 
Ca va du truc pour récupérer les données des comptes sur le site d'une banque en ssl pour ensuite le mettre dans des bdd dbf du logiciel (ciel compta), à la modification d'images (ajout de logos, de textes), et à des transferts de fichiers entre ordis.
 
Je tiens juste à faire connaître ce langage, et à faire oublier les idées préconcues, du genre les langages de script c'est de la bidouille et c'est lent.
 
Un exemple : un tableur écrit en 400 lignes, commentaires et GUI inclus.
http://naholyr.free.fr/python/spreadsheet.py
 
En c, ca aurait demandé combien ?


 
Non en fait ce qui me saoule, c'est que tu es convaincu que c'est un choix sans connaître les autres langages...
 
C'est bon du Python j'en utilise, je sais que c'est pas de la merde, maintenant j'ai fait un choix de langage par rapport à ce que je veux et c'est pas sur un coup de tête ( j'ai pas envie de présenter le truc complet ici, mais l'ensemble des raisons me fait préférer le C ).
 

Reply

Marsh Posté le 24-01-2005 à 18:56:15    

JoWiLe a écrit :

vu que son prog va jamais changer ou presque, il a intérêt à utiliser du compilé au lieu de l'interprêté pour les perfs :o


 
 
Là faut voir ce qu'il demande à son programme de faire.

Reply

Marsh Posté le 24-01-2005 à 18:58:12    

Sly Angel a écrit :

Non en fait ce qui me saoule, c'est que tu es convaincu que c'est un choix sans connaître les autres langages...
 
C'est bon du Python j'en utilise, je sais que c'est pas de la merde, maintenant j'ai fait un choix de langage par rapport à ce que je veux et c'est pas sur un coup de tête ( j'ai pas envie de présenter le truc complet ici, mais l'ensemble des raisons me fait préférer le C ).


 
Je veux pas te faire choisir le python, je te présentait certains avantages du langage de script par rapport aux trucs compilés, en utilisant un truc que je connais, c'est mieux de savoir de quoi on parle. Si j'étais bon en ruby, je t'aurai parlé de ruby  :o  
 
Quand à tes choix, c'est justement ca qui m'intéresse :D

Reply

Marsh Posté le 24-01-2005 à 19:00:33    

Pour l'instant ça m'ennuie un peu de parler de ce que ce projet regroupe, quand il sera plus avancé à ce moment là oui.
 
Au fait comment tu suid root un script en Python ? ( en perl y'a suid-perl mais en python ? )

Reply

Marsh Posté le 24-01-2005 à 19:02:31    

JoWiLe a écrit :

si c'est de la récup d'info et ensuite l'envoi sur le réseau, je pense que ça va être largement plus rapide en C qu'en quoi que ce soit d'autre... !


 
faut juste voir s'il est à 200ms près  :o (quoiqu'avec psyco)
 
C'est pour ca qu'il faut relever tous les avantages/inconvénients de l'un par rapport à l'autre (est-ce qu'un code portable sans modifs est plus important qu'un gain de 200ms ? ...)

Reply

Marsh Posté le 24-01-2005 à 19:06:51    

Sly Angel a écrit :

Pour l'instant ça m'ennuie un peu de parler de ce que ce projet regroupe, quand il sera plus avancé à ce moment là oui.
 
Au fait comment tu suid root un script en Python ? ( en perl y'a suid-perl mais en python ? )


 
a priori tu peux pas...


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 24-01-2005 à 19:08:37    

Sly Angel a écrit :

Pour l'instant ça m'ennuie un peu de parler de ce que ce projet regroupe, quand il sera plus avancé à ce moment là oui.
 
Au fait comment tu suid root un script en Python ? ( en perl y'a suid-perl mais en python ? )


 
A part des wrappers et sudo, je vois pas. Par contre je ne connais pas de programmes de monitoring utilisant suidroot, si ? (niveau sécu c'est vraiment pas ca)

Reply

Marsh Posté le 24-01-2005 à 19:09:44    

JoWiLe a écrit :

200ms t'es gentil, mais ça dépend des traitements qu'il fait...
 
enfin s'il le fait en C c'est qu'il a une bonne raison, je lui fait confiance pour ça...


 
 
Oui je suis gentil, moi comme toi ignorons ces traitements et on sais pas si ca joue finalement beaucoup.
 
Il a dû en effet faire le bon choix  :jap:

Reply

Marsh Posté le 24-01-2005 à 19:09:59    

tu peux suider python [:god]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 24-01-2005 à 19:15:27    

ory a écrit :

A part des wrappers et sudo, je vois pas. Par contre je ne connais pas de programmes de monitoring utilisant suidroot, si ? (niveau sécu c'est vraiment pas ca)


 
gestion des interfaces réseaux, d'iptables et des configs DNS, par exemple.


Message édité par Sly Angel le 24-01-2005 à 19:17:00
Reply

Marsh Posté le 24-01-2005 à 19:18:06    

black_lord a écrit :

tu peux suider python [:god]


 
[:totoz]
 
Ory & JoWiLe : Quand j'aurai avancé je vous reparlerez de ce que je veux faire plus concrétement, désolé c'est vrai que là c'est pas simple de juger :jap:
 
( y'a aussi du cryptage des données envoyées par le réseau d'ailleurs )

Reply

Marsh Posté le 24-01-2005 à 19:19:48    

c'est le mieux en effet  :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed