A voir également:
- Récupérer la RAM d'un PC depuis Perl
- Pc qui rame - Guide
- Test performance pc - Guide
- Réinitialiser un pc - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Recuperer video youtube - Guide
5 réponses
hssissen
Messages postés
844
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
9 janvier 2017
50
20 oct. 2005 à 15:03
20 oct. 2005 à 15:03
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.
hssissen
Messages postés
844
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
9 janvier 2017
50
20 oct. 2005 à 18:39
20 oct. 2005 à 18:39
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.
hssissen
Messages postés
844
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
9 janvier 2017
50
>
-manu-
21 oct. 2005 à 14:48
21 oct. 2005 à 14:48
Salut,
Sous quelle distribution tu roules, moi je l'ai essayé sous redhat et ça marche!
essair d'executer la commande systeme a partir de ta console:
free -m| grep Mem et regarde ce que ça fait. ou fais simplement free. Commande qui donne des states sur ta memoire RAM.
Sous quelle distribution tu roules, moi je l'ai essayé sous redhat et ça marche!
essair d'executer la commande systeme a partir de ta console:
free -m| grep Mem et regarde ce que ça fait. ou fais simplement free. Commande qui donne des states sur ta memoire RAM.
hssissen
Messages postés
844
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
9 janvier 2017
50
>
-manu-
21 oct. 2005 à 15:25
21 oct. 2005 à 15:25
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!!!
maghniatlemcen
Messages postés
8
Date d'inscription
vendredi 9 septembre 2005
Statut
Membre
Dernière intervention
8 novembre 2006
21 oct. 2005 à 09:51
21 oct. 2005 à 09:51
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...
hssissen
Messages postés
844
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
9 janvier 2017
50
21 oct. 2005 à 15:32
21 oct. 2005 à 15:32
Salut,
Qu'est-ce que tu veux dire par: origine de cette table.
Qu'est-ce que tu veux dire par: origine de cette table.
00dexter00
Messages postés
5
Date d'inscription
vendredi 23 février 2007
Statut
Membre
Dernière intervention
1 mars 2007
23 févr. 2007 à 06:32
23 févr. 2007 à 06:32
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é.