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 :

Crontab ne marche pas


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Crontab ne marche pas
    Bonjour

    J'ai crée un scrpit shell qui permet de récupérer CPU et Mémoire.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    echo "PID;%CPU;%MEM;SERVICE;DATE" && top -n3 -c | grep -E 'one|statd' | awk '{print $1,$9,$10,$13,$15" "}' | sed '{s/-i -p/one-master/g;s/one.cfg.*//g;s/one-dc dc/one-dc/g}' | sed 's@$@'"$(date +%s)"'@' | tr -s ' ' ';'


    Quand j'execute le script il marche normalement et sans erreur le problème c'est quand je veux créer un crontab qui permet de rediriger le résultat dans un fichier log la command ne marche pas
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    * * * * * /path/consumption.sh >> /path/consumption.log


    fichier log:
    PID;%CPU;%MEM;SERVICE;DATE
    PID;%CPU;%MEM;SERVICE;DATE
    PID;%CPU;%MEM;SERVICE;DATE
    PID;%CPU;%MEM;SERVICE;DATE
    PID;%CPU;%MEM;SERVICE;DATE
    PID;%CPU;%MEM;SERVICE;DATE
    PID;%CPU;%MEM;SERVICE;DATE
    PID;%CPU;%MEM;SERVICE;DATE
    PID;%CPU;%MEM;SERVICE;DATE

    Merci d'avance pour vos réponses

  2. #2
    Modérateur

    ça ne va pas t'aider tout de suite, mais
    multiplier les commandes, c'est multiplier les possibilités que quelque chose coince.

    simplifie ta commande en n'utilisant QUE gawk pour traiter la sortie de top.
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  3. #3
    Membre à l'essai
    mais en lançant que le script sh ca marche normalement:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    PID;%CPU;%MEM;SERVICE;DATE
    189592;1.0;0.3;one-master;1566386551
    189602;0.7;0.3;one-core;1566386551
    189605;0.7;0.2;one-minion;1566386551
    189606;0.7;0.3;one-ep;1566386551
    189853;0.7;40.1;one-db;1566386551
    189599;0.3;0.3;one-qtsd;1566386551
    189667;0.3;0.2;one-dc-cdr-archive_cdr;1566386551
    189669;0.3;0.3;one-dc-udr-enabler_udr;1566386551
    189671;0.3;0.2;one-dc-cdr-enabler_cdr;1566386551
    189592;1.3;0.3;one-master;1566386551
    189668;0.7;0.2;one-dc-trait-archive_trait;1566386551
    189602;0.3;0.3;one-core;1566386551
    189665;0.3;0.2;one-dc-topup-archive_topup;1566386551

  4. #4
    Modérateur

    supprime les commandes, une par une, en partant de la droite.

    et tant qu'on y est :
    es-tu sûr de la commande top ?
    quel est le rôle des options choisies ?

    et aussi, rappelle-nous quelles sont tes intentions avec ce script.
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  5. #5
    Membre à l'essai
    En fait je vais créer une automatisation de creation des scenarios sur ma plateforme, et je veux avoir une idée sur la consommation du CPU et de la mémoire.
    je pense que c la commande top -c qui ne marche pas en lançant le crontab.
    Pourquoi top -c et pas top -b parceque j'ai besoin de récupérer le nom de mes services en entier sinon après je pourrai pas différencier qu'elle service consomme tel mémoire ou CPU.

    De plus j'avais la même commande en utilisant top -b et sa marchait sans erreur.

  6. #6
    Expert éminent sénior
    Bonjour

    Pourquoi top -c et pas top -b
    Mais non. Pas top du tout. Car c'est une commande interactive. ps est plus indiquée. N'est-ce pas ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  7. #7
    Membre à l'essai
    J'ai utilisé ps -aux et ça marche maintenant.
    Merci à vous

  8. #8
    Modérateur

    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  9. #9
    Membre à l'essai
    Je sais mais avec le top -b j'ai pas eu ce soucis. C'est juste j'ai plein de services qui ont le même préfixe et en utilisant top -b il ne donne pas plus de détail.
    Le problème avec top -c le résultat obtenu coupé le nom du service et quand j'ajouter le grep one il ne trouvait pas.

    Mais merci quand même.

  10. #10
    Expert éminent sénior




    "top" est une commande interactive pour les êtres humains. Tant que tu utiliseras cela pour tes scripts, ils seront mauvais.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  11. #11
    Modérateur

    malgré l'option -b (batch mode operation) ?
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.