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
3 Réponses :
Vous pouvez remplacer la commande et votre ligne deviendra: p> la queue code> dans votre script avec ceci:
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
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 code>
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> qui peut être écrit comme une coque une-doublure comme ceci: p> Pour que vous puissiez l'exécuter dans votre coquille dans une boucle comme celle-ci: p> $ python3 -c 'importer pseutil; cpu = psutil.cpu_percent (); mem = psutil.virtual_memory (). Pourcentage; Imprimer ("{}% {}%". Format (CPU, MEM)) ' CODE> P>
$ while true; do python3 -c 'import psutil; cpu=psutil.cpu_percent(); mem=psutil.virtual_memory().percent; print("{}% {}%".format(cpu, mem))'; sleep 5; done
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 code> avec le
sudo apt install Python3-psutil code> commande) mais le terminal dit
"pas de module nommé psutil" code> . Lorsque je tape
python -version code> indique
python 2.7.15rc1 code>. Je suis assez confus car le
sudo apt installez Python3-psutil code> 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 ' code>
J'ai déjà installé le psutil (comme vous l'avez dit). Je suis assez curieux de cela parce que lorsque je vais à Python code>, alors
>> Importation Psutil code>;
>> cpu = psutil.cpu_percent () code>;
>> mem = psutil.virtual_memory (). Pourcentage code>;
>> Imprimer ("{}% {}%". Format (CPU, MEM)) Code> 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 code> Cela arrive quand j'appelle "Python" aussi ...
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 p> Ceci imprimera la sortie comme ci-dessous p> CPU = 97,0% P> Mémoire = 10230/15867 MB P> P>
N'utilisez pas
ps code>, utilisez
haut code> pour cela.
Notez que
PS code> 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 code> affiche beaucoup d'informations. Il y a un moyen d'obtenir juste la CPU et le pourcentage MEM avec
haut code>?
@Isaacbarros: Il existe des paramètres afin de vous assurer que vous ne voyez que
haut code> résulte une quantité limitée de fois. Utilisation de Text Ansing Techniques, comme
Grep code>,
awk code>, ... Vous pouvez vous assurer que vous ne voyez que les informations dont vous avez besoin.