Cherche infos sur l'occupation des partitions dans /proc - Divers - Linux et OS Alternatifs
Marsh Posté le 24-01-2005 à 15:17:31
/proc/diskstats mais faut trier
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 ( ce qui n'est pas mon cas )
Marsh Posté le 24-01-2005 à 15:20:09
Sly Angel a écrit : Faut surtout l'avoir coché dans sa config kernel ( ce qui n'est pas mon cas ) |
/proc/partitions est moins complet
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 )
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 ?
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 ?
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
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. |
tout à fait, un programme central pour monitorer un parc de serveurs en réseau
Edit : oui je sais snmp tout ça, mais j'ai des besoins très spécifiques
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).
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
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. |
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
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
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
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 |
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
Marsh Posté le 24-01-2005 à 17:13:35
tu fais un copier/coller des sources de df
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.
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
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. |
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
Marsh Posté le 24-01-2005 à 18:25:50
ory si j'ai bien compris t'es un intaigriste python ?
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 ?
Marsh Posté le 24-01-2005 à 18:33:12
ReplyMarsh Posté le 24-01-2005 à 18:37:03
c'est quoi les anciens pseudos ?
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...
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
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 ?
Marsh Posté le 24-01-2005 à 18:45:01
ReplyMarsh 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. |
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 ).
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 |
Là faut voir ce qu'il demande à son programme de faire.
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... |
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
Quand à tes choix, c'est justement ca qui m'intéresse
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 ? )
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 (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 ? ...)
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. |
a priori tu peux pas...
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. |
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)
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... |
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
Marsh Posté le 24-01-2005 à 19:09:59
tu peux suider python
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.
Marsh Posté le 24-01-2005 à 19:18:06
black_lord a écrit : tu peux suider python |
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
( y'a aussi du cryptage des données envoyées par le réseau d'ailleurs )
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