-2
votes

Y a-t-il une certaine commande pour produire uniquement la CPU et l'utilisation de la mémoire sur Linux?

Je crée une base de données (usage de recherche) qui reçoive la CPU et l'utilisation de MEM (%) de mon PC.

Par conséquent, je dois produire (à un fichier .txt) Utilisation de la CPU et de la mémoire (RAM) (%) ) de mon système entier (Linux / Ubuntu 18.04) P>

Le problème est que je reçois la CPU et les informations MEM séparées par des processus, à l'aide de la commande suivante: P>

%CPU %MEM wed jan  9 11:26:39 -03 2019
 53.0 32.2


6 commentaires

N'utilisez pas ps , utilisez haut pour cela.


Notez que PS montre une utilisation du processeur pour toute la durée de vie de chaque processus.


Cette question a été posée et a répondu tant de fois que vous devez faire un effort pour éviter de trouver une réponse ...


En savoir plus sur PROC (5) . Cela pourrait être pertinent


@Dominique haut affiche beaucoup d'informations. Il y a un moyen d'obtenir juste la CPU et le pourcentage MEM avec haut ?


@Isaacbarros: Il existe des paramètres afin de vous assurer que vous ne voyez que haut résulte une quantité limitée de fois. Utilisation de Text Ansing Techniques, comme Grep , awk , ... Vous pouvez vous assurer que vous ne voyez que les informations dont vous avez besoin.


3 Réponses :


1
votes

Vous pouvez remplacer la commande la queue code> dans votre script avec ceci: xxx pré>

et votre ligne deviendra: p>

while true; do (echo "%CPU %MEM $(date)" && ps -e -o pcpu,pmem --sort=pcpu | cut -d" " -f1-5 | awk 'BEGIN {cpu=0;mem=0} {cpu+=$1; mem+=$2} END {print cpu,mem}') > test.txt; sleep 5; done


1 commentaires

Les numéros de sortie (CPU et Mem Usage) sont en blanc et le terminal donne à cet avertissement: >> ISAAC1 @ ISAAC3: ~ / bureau / test1 $ tandis que vrai; DO (ECHO "% CPU% MEM $ (DATE)" && PS -E -O PCPU, PMEM --Sort = PCPU | Cut -D "" -F1-5 | Awk '{Commencez {CPU = 0; Mem = 0 } {cpu + = 1 $; mem + = $ 2} end {imprimé cpu, mem} ')> test.txt; Dormir 5; Fait Awk: Ligne 1: Missing} Près de Begin Awk: Ligne 1: Missing} près de Begin Awk: Ligne 1: Missing Twk Awk: Ligne 1: Missing Twk Awk: Ligne 1: Missing Awk: Ligne 1: Missing} près de Begin Awk: Ligne 1 : manquant} près de commencer



1
votes

pas très élégant ou efficace, mais voici une solution alternative utilisant python et la bibliothèque code> Psutil code>

Un court programme Python pour imprimer la CPU% et MEM% ressembleraient à ceci: p> xxx pré>

qui peut être écrit comme une coque une-doublure comme ceci: p>

$ python3 -c 'importer pseutil; cpu = psutil.cpu_percent (); mem = psutil.virtual_memory (). Pourcentage; Imprimer ("{}% {}%". Format (CPU, MEM)) ' CODE> P>

Pour que vous puissiez l'exécuter dans votre coquille dans une boucle comme celle-ci: p>

$ while true; do python3 -c 'import psutil; cpu=psutil.cpu_percent(); mem=psutil.virtual_memory().percent; print("{}% {}%".format(cpu, mem))'; sleep 5; done


8 commentaires

Salut merci! Pour MEM fonctionne bien, mais le pourcentage de la CPU est vide (0%) tout le temps. J'ai déjà installé Python (et installé psutil avec le sudo apt install Python3-psutil commande) mais le terminal dit "pas de module nommé psutil" . Lorsque je tape python -version indique python 2.7.15rc1 . Je suis assez confus car le sudo apt installez Python3-psutil doit installer Python 3, non?


vient de faire une édition. appeler python3 pas python (ou installer python-psutil au lieu de python3-psutil)


Désolé, je ne travaille toujours pas (je ne sais pas grand chose à propos des commandes et des trucs terminaux Linux). Il dit Erreur de syntaxe près de jeton inattendu do '


J'ai déjà installé le psutil (comme vous l'avez dit). Je suis assez curieux de cela parce que lorsque je vais à Python , alors >> Importation Psutil ; >> cpu = psutil.cpu_percent () ; >> mem = psutil.virtual_memory (). Pourcentage ; >> Imprimer ("{}% {}%". Format (CPU, MEM)) Il fonctionne (CPU et MEM renvoient les valeurs). Mais la commande one-liner ne fonctionne pas ...


Vous gardez Python déroutant et Python3. "Python" démarre Python Version2 ... "Python3" commence la version python 3. Utilisez-en l'une ou l'autre.


Il y a des emballages pour l'installation de Python-Psutil nommé (ceci pour Python) ... et Python3-psutil (ceci est pour Python3). Appelez la doublure avec la version que vous installez ("Python" ou "Python3"


Vous appelez la doublure d'une coquille .. Pas à l'invite Python


Des thaks pour expliquer! Je voulais dire que le statut de la CPU est toujours zéro. Voici la sortie: ISAAC1 @ Isaac3: ~ / Desktop / Test1 $ tandis que c'est vrai; do Python3 -C 'Import Psintil; cpu = psutil.cpu_percent (); mem = psutil.virtual_memory (). Pourcentage; imprimer ("{}% {}%". Format (CPU, MEM)) '; Dormir 5; fait 0,0% 33,1% 0,0% 33,1% 0,0% 33,1% 0,0% 33,2% ^ C Cela arrive quand j'appelle "Python" aussi ...



0
votes

J'avais une exigence similaire pour simplement imprimer la CPU et l'utilisation de la mémoire. J'ai créé ci-dessous le script. J'espère que ce sera utile

checkresources.sh xxx

Ceci imprimera la sortie comme ci-dessous

CPU = 97,0%

Mémoire = 10230/15867 MB


0 commentaires