Récupérer la RAM d'un PC depuis Perl
-manu-
-
Artis -
Artis -
Bonjour
Je cherche à récupérer la RAM présente sur mon PC depuis un script Perl.
Est-ce possible ?
Je n'ai pas trouvé la commande correspondante partout où j'ai cherché. J'ai vu qu'on pouvait aussi lancer des commandes sytème depuis le Perl, peut-être est-ce un moyen de s'en sortir mais je sèche un peu là...
Merci pour votre aide.
Je cherche à récupérer la RAM présente sur mon PC depuis un script Perl.
Est-ce possible ?
Je n'ai pas trouvé la commande correspondante partout où j'ai cherché. J'ai vu qu'on pouvait aussi lancer des commandes sytème depuis le Perl, peut-être est-ce un moyen de s'en sortir mais je sèche un peu là...
Merci pour votre aide.
A voir également:
- Récupérer la RAM d'un PC depuis Perl
- Pc qui rame - Guide
- Réinitialiser un pc - Guide
- Test performance pc - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Downloader for pc - Télécharger - Téléchargement & Transfert
5 réponses
Salut,
Il faut dire précisément ce que tu veux obtenir de la RAM. La mémoire utilisée ou simplement la taille de la RAM...
Effectivement tu peux utiliser la fonction system("commande_systeme") dans PERL et à partir de là tu executes ta commende systeme. Pour la RAM tu peux executer un simple top qui peut te donner qqs infos sur la RAM.
J,espere que ça répond à ta question.
Il faut dire précisément ce que tu veux obtenir de la RAM. La mémoire utilisée ou simplement la taille de la RAM...
Effectivement tu peux utiliser la fonction system("commande_systeme") dans PERL et à partir de là tu executes ta commende systeme. Pour la RAM tu peux executer un simple top qui peut te donner qqs infos sur la RAM.
J,espere que ça répond à ta question.
Je veux simplement obtenir la taille totale de la RAM (512 Mo, par exemple).
Alors l'autre souci c'est que je ne connais absolument rien à Perl et que je n'ai pas vraiment le temps de m'y mettre (on est en pleine recette !).
Donc si tu pouvais me préciser la commande exacte pour faire ça et stocker la taille de la RAM dans une variable je dresserai une statue à ton effigie.
Merci beaucoup pour ton aide.
Alors l'autre souci c'est que je ne connais absolument rien à Perl et que je n'ai pas vraiment le temps de m'y mettre (on est en pleine recette !).
Donc si tu pouvais me préciser la commande exacte pour faire ça et stocker la taille de la RAM dans une variable je dresserai une statue à ton effigie.
Merci beaucoup pour ton aide.
Salut,
Voici un script en PERL qui devarit faire ce que tu demandes:
#!/usr/bin/perl -w
@donnees=split(/ /,`free -m| grep Mem`);
@donnees_ram=();
$j=0;
for ($i=0; $i<@donnees; $i++){
if ($donnees[$i] ne ''){
$donnees_ram[$j]=$donnees[$i];
$j=$j+1;
}
}
$ram=$donnees_ram[1];
Donc la taille de la RAM est stockée dans la variable $ram. pour l'afficher tu peux ajouter `a la fin du script:
print "la taille de la RAM est: $ram\n";
NB:Laisse tomber la statue, c'est toujours un plaisir pour moi d'aider les autres! et si tu veux des commentaires pour ce script n'hesites pas.
Bon travail.
Voici un script en PERL qui devarit faire ce que tu demandes:
#!/usr/bin/perl -w
@donnees=split(/ /,`free -m| grep Mem`);
@donnees_ram=();
$j=0;
for ($i=0; $i<@donnees; $i++){
if ($donnees[$i] ne ''){
$donnees_ram[$j]=$donnees[$i];
$j=$j+1;
}
}
$ram=$donnees_ram[1];
Donc la taille de la RAM est stockée dans la variable $ram. pour l'afficher tu peux ajouter `a la fin du script:
print "la taille de la RAM est: $ram\n";
NB:Laisse tomber la statue, c'est toujours un plaisir pour moi d'aider les autres! et si tu veux des commentaires pour ce script n'hesites pas.
Bon travail.
J'ai placé ce code dans un fichier test.pl, et voici le message que j'obtiens quand je le lance :
'free' is not recognized as an internal or external command,
operable program or batch file.
Use of uninitialized value in concatenation (.) or string at C:\temp\test.pl line 14.
la taille de la RAM est:
Qu'est-ce à dire ?
Merci.
'free' is not recognized as an internal or external command,
operable program or batch file.
Use of uninitialized value in concatenation (.) or string at C:\temp\test.pl line 14.
la taille de la RAM est:
Qu'est-ce à dire ?
Merci.
Je comprend pourquoi tu n'obtiens rien avec free, car c'est une commande system UNIX. je ne sais pas comment faire avec XP, il faudrait faire une petite recherche pour trouver la commande sur XP (sur GOOGLE)qui fait la même chose et executer ensuite le script tel qu'il est. Il faut changer juste la fonction equivalent XP de `free -m| grep Mem`. En qqs mots, cette commande donne la ligne des states de la memoire RAM. en gros: taille, taille utilisée, taille restante...
Moi j'ai mis cette ligne dans un tableau où chaque case comprend une valeur et j''ai selectionné la 1ere case qui donne la taille de la RAM. Donc, tout ce qui reste à faire c'est de trouver cette fameuse fonction qui donne les states de la RAM et le reste est simple. Bonne recherche, si je trouve qqs chose de mon côté je te le dirai. le problème c'est que je ne connais rien en XP!!!
Moi j'ai mis cette ligne dans un tableau où chaque case comprend une valeur et j''ai selectionné la 1ere case qui donne la taille de la RAM. Donc, tout ce qui reste à faire c'est de trouver cette fameuse fonction qui donne les states de la RAM et le reste est simple. Bonne recherche, si je trouve qqs chose de mon côté je te le dirai. le problème c'est que je ne connais rien en XP!!!
bonjour;
je suis debutant en programmation mysql.
Mon pb est je veux creer un script perl pour copier une table d'une bases de donnees et connaitre dans le même script l'origine de cette table...
je suis debutant en programmation mysql.
Mon pb est je veux creer un script perl pour copier une table d'une bases de donnees et connaitre dans le même script l'origine de cette table...
Salut, désolé de faire remonter un aussi vieux post, mais il ya deux trucs que je ne comprends pas :
Dans la fonction split(), on fait `free -m| grep Mem`, on peut exectuer du bash directement sans passer par d'autres fonction ?
Et puis qqn pourrait m'expliquer cette ligne là " if ($donnees[$i] ne '') " ?
Merci beaucoup de votre aide !
#!/usr/bin/perl -w @donnees=split(/ /,`free -m| grep Mem`); @donnees_ram=(); $j=0; for ($i=0; $i<@donnees; $i++){ if ($donnees[$i] ne ''){ $donnees_ram[$j]=$donnees[$i]; $j=$j+1; } } $ram=$donnees_ram[1];
Dans la fonction split(), on fait `free -m| grep Mem`, on peut exectuer du bash directement sans passer par d'autres fonction ?
Et puis qqn pourrait m'expliquer cette ligne là " if ($donnees[$i] ne '') " ?
Merci beaucoup de votre aide !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour 00dexter00.
La quote inversé permet en effet de lancer un processus.
Donc @donnees=split(/ /,`free -m| grep Mem`);
Signifie lancer le processus "free" avec l'optiom -m, capturer les résultat comprenants "Mem". La le processus se termine retournant cette valeur à perl sous forme d'une chaine, qu'il va séparer lorsqu'il va rencontrer un espace, puis mettre tout dans un tableau.
Voilà voilà...
Si tu veux plus d'informations sur le lancement de processus, va faire un tour sur
http://articles.mongueurs.net/magazines/linuxmag55.html
c'est très bien expliqué.
La quote inversé permet en effet de lancer un processus.
Donc @donnees=split(/ /,`free -m| grep Mem`);
Signifie lancer le processus "free" avec l'optiom -m, capturer les résultat comprenants "Mem". La le processus se termine retournant cette valeur à perl sous forme d'une chaine, qu'il va séparer lorsqu'il va rencontrer un espace, puis mettre tout dans un tableau.
Voilà voilà...
Si tu veux plus d'informations sur le lancement de processus, va faire un tour sur
http://articles.mongueurs.net/magazines/linuxmag55.html
c'est très bien expliqué.