IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Confirmation commande bash


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2011
    Messages : 88
    Par défaut Confirmation commande bash
    Bonjour,

    J'utilise linux centos, j'ai eu ce code sur le net, c'est pour enregistrer dans un log toutes les 30 secondes, la consommation du cpu/ram et indiquer le top 10.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    !/bin/bash
    #nohup test.sh puis killall test
    while true; do (echo "%CPU %MEM ARGS $(date)" && ps -e -o pcpu,pmem,args --sort=pcpu | cut -d" " -f1-5 | tail) >> ps.log; sleep 30; done
    Je ne sais pas s'il est fait pour centos car je ne m'y connais pas trop, je l'ai pas encore testé c’était pour me confirmer s'il était bon, si une personne la testé...

    Merci

  2. #2
    Membre Expert
    Avatar de Escapetiger
    Homme Profil pro
    Administrateur système Unix - Linux
    Inscrit en
    Juillet 2012
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur système Unix - Linux

    Informations forums :
    Inscription : Juillet 2012
    Messages : 1 559
    Par défaut
    Bonjour,
    Ici çà fonctionne très bien sur RedHat, à tester par partie sur CentOs avec affichage à l'écran d'abord :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     echo "%CPU %MEM ARGS $(date)" && ps -e -o pcpu,pmem,args --sort=pcpu
    et ainsi de suite avec la suite du | "pipe".
    « Developpez.com est un groupe international de bénévoles dont la motivation est l'entraide au sens large » (incl. forums developpez.net)
    Club des professionnels en informatique

    Liste des balises BB

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2011
    Messages : 88
    Par défaut
    merci, mais si j’exécute le .sh et ça marche pas je risque rien? ça va pas faire planter le serveur?

  4. #4
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 347
    Par défaut
    Bonjour,
    Le seul danger du script ici, c'est ">>ps.log" car il créera un fichier ps.log dans le répertoire ou tu te trouve quand tu le lanceras.
    Si tu veux voir un affichage à l'écran, il suffit juste de retirer cette partie.
    Pour le reste, c'est juste de la lecture, donc pas de risque de planter ton serveur.
    Si tu veux qu'il écrive dans un fichier de ton choix, il suffit de remettre ">>" suivi du chemin complet de ton fichier.
    Et si ce script doit toujours tourner, dans ce cas, il faut que tu rajoute du code pour penser a faire de la rotation de fichier et supprimer les plus anciens car tel quel, le fichier grossira d'une ligne toute les 30 secondes à l'infini.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2011
    Messages : 88
    Par défaut
    ok d'acc, oué au pire je stop le .sh, renomme le fichier et je le relance, c'est pour une courte durée.

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2011
    Messages : 88
    Par défaut
    j'ai testé ça marche mais ça semble indiquer toutes les 30 secondes non pas l'usage en temps réel mais l'utilisation maximale qu'il y a pu avoir.

    Exemple: cpu reel 10-15-8

    dans le log ça va dire 10 15 15 jusqu’à temps que ça dépasse 15. C'est bien ça?

    Si c'est possible une personne c'est comment modifier ça en temps réel?

  7. #7
    Membre expérimenté
    Avatar de demkada
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Août 2011
    Messages : 79
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par maloy Voir le message
    Si c'est possible une personne c'est comment modifier ça en temps réel?
    Salut,
    essayes d'ajouter l'option 'r' à ta commande.
    C'est à dire essayes avec la commande suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while true 
    do 
    echo "%CPU %MEM ARGS $(date)" && ps -e -o pcpu,pmem,args r --sort=pcpu | cut -d" " -f1-5 | tail 
    done

  8. #8
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2011
    Messages : 88
    Par défaut
    r ou -r, ça donne plus rien:

    %CPU %MEM ARGS Fri Dec 20 01:42:06 CET 2013
    %CPU %MEM COMMAND
    0.0 0.0 ps

  9. #9
    Membre expérimenté
    Avatar de demkada
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Août 2011
    Messages : 79
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par maloy Voir le message
    r ou -r, ça donne plus rien:
    Bonjour,
    Ha, je n'y étais pas du tout là, la commande que je t'ai donné, avait pour but d'aller dans ta lancé. Je viens de lire ton premier post et je me demande pourquoi tu souhaite créer un clown d'un superbe commande qui existe déjà.
    Concernant ta question :
    c'est pour enregistrer dans un log toutes les 30 secondes, la consommation du cpu/ram et indiquer le top 10.
    , pourquoi tu n'utilise pas la commande 'top' de cette façon?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date >> consommation.log && top -b -n 1 | head -n 17 | tail -n 12 >> consommation.log
    .
    Et si tu souhaite le faire toutes les 30s, tu peux mettre la commande dans une tâche cron pour qu'elle s'exécute toutes les 30s.

    Hint: la commande 'ps' a pour vocation principale, de lister les processus actifs, si tu souhaite avoir la consommation mémoire 'free' et si tu veux les statistiques détaillées en temps réel, tu as la commande 'top'. Essaye la sans paramètre pour voir comment ça marche et tu as aussi ou tu peux voir comment synthétiser tes résultats à ta guise.

  10. #10
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2011
    Messages : 88
    Par défaut
    Salut,

    La commande initiale donne le top 10 mais ça reste figé en faite au 1er check. L'heure change mais la consommation non.

    Apres je cherche une boucle dans un fichier .sh et non vraiment faire un rcon ( je ne sais faire que des trucs simples )

    Un truc comme ça peut marcher?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while true; do top >> uptime.log; sleep 30; done

  11. #11
    Membre expérimenté
    Avatar de demkada
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Août 2011
    Messages : 79
    Billets dans le blog
    3
    Par défaut
    Si tu veux une boucle, copie la commande suivante telle qu'elle est et exécute là, ne soit pas pressé de voir le résultat. donne lui 30s au moins pour voir la mise à jour dans ton fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while true ; do date >> consommation.log && top -b -n 1 | head -n 17 | tail -n 12 >> consommation.log; sleep 30; done
    PS: le fichier créé s'appelle consommation.log et il se trouve dans ton répertoire courant.
    Et concernant ta question, si tu veux rediriger la sortie de la commande top vers un fichier, il serait mieux de l'utiliser en mode bash avec l'option -b (car top c'est une commande qui se met à jour en temps réel) et l'option -n 1 que j'ai ajouté, c'est pour dire à top de ne faire qu'une seule itération (Une image figé et puis s’arrête) et grâce à la boucle, tu l'a en chaque 30s

  12. #12
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2011
    Messages : 88
    Par défaut
    d'accord merci mais "| head -n 17 | tail -n 12" ça correspond à quoi? car pour pas trop flooder si c'etait possible d'avoir les 5-6 programmes qui utilisent le plus de ressource et non tout.

  13. #13
    Membre expérimenté
    Avatar de demkada
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Août 2011
    Messages : 79
    Billets dans le blog
    3
    Par défaut
    head -n 17: c'est pour dire les 17 premières lignes (Mais comme dans ces 17 lignes, il y a 7 lignes de résumé), je fais un tail -n 12, pour ne récupérer que les 12 dernières lignes (c'est à dire supprimer le résumé)
    Bref, tu peux jouer avec ces chiffres comme tu veux afin d'avoir ce que u veux.
    Car si tu fait top simplement, c'est les 20 premiers processus qu'il te donne, c'est à toi de filtrer, sinon ya des options de top qui permettent de le faire automatiquement (man top)
    Situ veux que je t'aide pour le filtre comme je ne sais pas ce que tu as comme architecture essaye de faire la commande et poste moi le résultat

  14. #14
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2011
    Messages : 88
    Par défaut
    j'ai adapté ta commande, merci beaucoup ça marche.

  15. #15
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... | head -n 17 | tail -n 12 | ...
    peut être simplifié en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... | sed -n '5,17p' | ...

  16. #16
    Membre expérimenté
    Avatar de demkada
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Août 2011
    Messages : 79
    Billets dans le blog
    3
    Par défaut
    @jlliagre
    Oui tu as raison mais j'ai remarqué que maloy veut comprendre ce qu'il fait et qu'il n'est pas à l'aise avec des commandes avancées, c'st pour cela que j'ai voulu passé par la littérature classique. Autrement dit, tout ceux qui n'ont pas séché leur cours d'anglais doivent soivoir que head=tête et que tail=queue (et sed=.......stream editor????, mais attends, là, tu m'insulte ou quoi?).
    En plus, dans son cas précis, ça serra
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... | sed -n '7,17p' | ...

  17. #17
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Citation Envoyé par demkada Voir le message
    En plus, dans son cas précis, ça serra
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... | sed -n '7,17p' | ...
    Voire même:

  18. #18
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 347
    Par défaut
    Bonjour,
    et pourquoi pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n -e '6,17p' -e '18q'
    Bon, ok, je sors

  19. #19
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 288
    Par défaut
    Bonjour

    Pourquoi pas un truc comme:
    ?


    Ok. Je sors également. Bonnes fêtes de fin d'année.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. 1and1 confirmation commande
    Par tonydb dans le forum 1&1
    Réponses: 2
    Dernier message: 29/04/2009, 20h54
  2. GVIM lent avec certaines commandes bash
    Par nakolah dans le forum Gnome
    Réponses: 0
    Dernier message: 29/04/2009, 10h04
  3. [Système] Une variable PHP dans une commande bash
    Par aroua dans le forum Langage
    Réponses: 1
    Dernier message: 19/07/2007, 16h23
  4. Réponses: 5
    Dernier message: 01/07/2007, 20h25
  5. Extraire des lignes d'un fichier en commande bash
    Par newnew dans le forum Linux
    Réponses: 3
    Dernier message: 27/07/2004, 16h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo