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 :

Premier programme Shell [Journal De bord]


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Premier programme Shell [Journal De bord]
    Bonjour bonsoir,

    Voila Utilisateur de Linux depuis maintenant plus d'un an, j'ai decider de me lancer dans la programmation en shell que je trouve assez simple et sympatique et tres utile.
    Pour mon premiere programme j'ai decider de creer un programme pas tres utilie mais sa m'a permis d'apprendre et de trouver comment faire en fesant pas mal de recherche google.

    Le but de mon programme et de creer des dossier dans homme selon les semaine et des fichier du lundi au dimanche contenant les information sur mon pc ainsi que des truc pas tres utilie comme a quel heure je me suis lever .

    Parcontre j'ai un petit probleme je voudrai afficher des evenement comme ceci
    + Evenement :
    - blabla 1
    - blabla 2
    - etc
    et quand on appuie sur entrer avec un vide sa se termine.

    Voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    #!/bin/bash
     
     
    ######### By Jakinoh ###########
    ## ~ Script Journal de bord ~ ##
    ################################
     
     
    ##Variables :
    #
     
    #Declaration Dates
    NSemaine="semaine_"`date +%W`
    NJour=`date +%A`".log"
     
    #Declaration Disque Dur
    sda1=$(df /dev/sda1 | head -2 | tail -1 | cut -b52-54 )
    sda2=$(df /dev/sda2 | head -2 | tail -1 | cut -b52-54 )
    sda3=$(df /dev/sda3 | head -2 | tail -1 | cut -b52-54 )
    sda4=$(df /dev/sda4 | head -2 | tail -1 | cut -b52-54 )
    sda5=$(df /dev/sda5 | head -2 | tail -1 | cut -b52-54 )
     
    #Declaration Charge Cpu
    Cpu=$(cat /proc/loadavg | cut -b3-5)
    #Declaration Memoire
     
    RamT=$(free -om |cat | head -2 | tail -1 | cut -b15-18 )
    RamU=$(free -om |cat | head -2 | tail -1 | cut -b26-29 )
    RamL=$(free -om |cat | head -2 | tail -1 | cut -b37-40 )
    #Declaration Swap
    swapT=$(free -om |cat | head -4 | tail -1 | cut -b15-18 )
    swapU=$(free -om |cat | head -4 | tail -1 | cut -b26-29 )
    swapL=$(free -om |cat | head -4 | tail -1 | cut -b37-40 )
     
    #Capteur T° et Rpm
    Tcpu=$(sensors | cat | head -22 | tail -1 | cut -d "+" -f2 | cut -d " " -f1)
    Tcm=$(sensors | cat | head -15 | tail -1 | cut -d "+" -f2 | cut -d " " -f1)
    Rpmcpu=$(sensors | cat | head -12 | tail -1 | cut -b1-14)
    Rpmboitier=$(sensors | cat | head -14 | tail -1 | cut -b1-14)
    Download=$(ifconfig | cat | head -52 | tail -1 | cut -d "(" -f2 | cut -d ")" -f1)
    Upload=$(ifconfig | cat | head -52 | tail -1 | cut -d "(" -f3 | cut -d ")" -f1)
    Wifi=$(iwconfig wlan0 | cat | head -5 | tail -1 |  cut -d "=" -f2 | cut -d "/" -f1)
     
     
    ##Creation de l'arborescence##
    #
    cd ~ # Deplacement dans le /home/
     
    #Creation des Dossiers
    mkdir Log 2>/dev/null  #Creation du Dossier Log dans la racine /home/
    cd Log/
    mkdir ${NSemaine} 2>/dev/null #Creation Des dossiers Semaine dans /Log/
    #Creation du fichier selon le jour
    cd ${NSemaine}
    > ${NJour}
     
     
    ##Creation du journal de Bord par jour##
    #
    echo "---------------------------[ JOURNAL DE BORD ]-------------------------"
    echo "---------------------------[ JOURNAL DE BORD ]-------------------------" >> ${NJour}
    echo
    echo >> ${NJour}
    echo -n " -heure de reveil : " && read lever;
    echo " -Heure de reveil : $lever " >> ${NJour}
    echo -n " -heure Petit dej : " && read pdej;
    echo " -Heure Petit dej : $pdej " >> ${NJour}
    echo -n " -heure Dejeuner : " && read Dej;
    echo " -Heure Dejeuner : $Dej " >> ${NJour}
    echo -n " -heure Diner : " && read Diner;
    echo " -Heure Diner : $Diner " >> ${NJour}
    echo -n " --Evenements : "
    echo -n " --Evenements : " >> ${NJour}
    #while read nb
    # do
    #   if [ $nb=1 ]
    #    then
    #     break
    #    else
    #     read Event
    #     echo "  -$Event " >> ${NJour}
    #   fi
    #done
    echo " "
    echo " ">> ${NJour}
     
    ##Creation du diagnostique PC ##
    #
    echo -n "---------------------------[ DIAGNOSTIQUE PC ]-------------------------"
    echo -n "---------------------------[ DIAGNOSTIQUE PC ]-------------------------" >> ${NJour}
    echo
    echo >> ${NJour}
    echo 
    echo >> ${NJour}
     
    #Disque Dur
    echo "==Stockage== : "
    echo "==Stockage== : " >> ${NJour}
    echo -n " -Disque sda1 : $sda1 %" 2>/dev/null 
    echo -n " -Disque sda1 : $sda1 %" >> ${NJour}
    echo
    echo >> ${NJour}
    echo -n " -Disque sda2 : $sda2 %" 2>/dev/null 
    echo -n " -Disque sda2 : $sda2 %" >> ${NJour}
    echo 
    echo >> ${NJour}
    echo -n " -Disque sda3 : $sda3 %" 2>/dev/null 
    echo -n " -Disque sda3 : $sda3 %" >> ${NJour}
    echo 
    echo >> ${NJour}
    echo -n " -Disque sda4 : $sda4 %" 2>/dev/null 
    echo -n " -Disque sda4 : $sda4 %" >> ${NJour}
    echo 
    echo >> ${NJour}
    echo -n " -Disque sda5 : $sda5 %" 2>/dev/null 
    echo -n " -Disque sda5 : $sda5 %" >> ${NJour}
    echo 
    echo >> ${NJour}
    echo 
    echo >> ${NJour}
     
    #Processeur
    echo "==Processeur== : "
    echo "==Processeur== : " >> ${NJour}
    echo -n " -Charge processeur : $Cpu % " 
    echo -n " -Charge processeur : $Cpu % " >> ${NJour}
    echo 
    echo >> ${NJour}
    echo 
    echo >> ${NJour}
     
    #Ram
    echo "==Memoire== : "
    echo "==Memoire== : " >> ${NJour}
    echo -n " -Memoire Totale : $RamT Mo"
    echo -n " -Memoire Totale : $RamT Mo" >> ${NJour}
    echo 
    echo >> ${NJour}
    	echo -n " -Memoire Utiliser : $RamU Mo" 
    echo -n " -Memoire Utiliser : $RamU Mo" >> ${NJour}
    echo 
    echo >> ${NJour}
    echo -n " -Memoire Libre : $RamL Mo" 
    echo -n " -Memoire Libre : $RamL Mo" >> ${NJour}
    #Swap
    echo 
    echo >> ${NJour}
    echo -n " -Memoire Swap Totale : $swapT Mo" 
    echo -n " -Memoire Swap Totale : $swapT Mo" >> ${NJour}
    echo 
    echo >> ${NJour}
    echo -n " -Memoire Swap Utiliser : $swapU Mo" 
    echo -n " -Memoire Swap Utiliser : $swapU Mo" >> ${NJour}
    echo 
    echo >> ${NJour}
    echo -n " -Memoire Swap Libre : $swapL Mo" 
    echo -n " -Memoire Swap Libre : $swapL Mo" >> ${NJour}
    echo 
    echo >> ${NJour}
    echo 
    echo >> ${NJour}
     
    #Sonde
    echo "==Sondes== : "
    echo "==Sondes== : " >> ${NJour}
    echo -n " -Temperature Processeur : $Tcpu " 
    echo -n " -Temperature Processeur : $Tcpu " >> ${NJour}
    echo 
    echo >> ${NJour}
    echo -n " -Temperature Carte mére : $Tcm " 
    echo -n " -Temperature Carte mére : $Tcm " >> ${NJour}
    echo 
    echo >> ${NJour}
    echo -n " -Ventilateur Processeur : $Rpmcpu RPM" 
    echo -n " -Ventilateur Processeur : $Rpmcpu RPM" >> ${NJour}
    echo 
    echo >> ${NJour}
    echo -n " -Ventilateur boitier : $Rpmboitier RPM" 
    echo -n " -Ventilateur boitier : $Rpmboitier RPM" >> ${NJour}
    echo 
    echo >> ${NJour}
    echo 
    echo >> ${NJour}
     
    #Reseau
    echo "==Reseau== : "
    echo "==Reseau== : " >> ${NJour}
    echo -n "-Données Telecharges : $Download " 
    echo -n "-Données Telecharges : $Download " >> ${NJour}
    echo 
    echo >> ${NJour}
    echo -n "-Données Envoyees : $Upload " 
    echo -n "-Données Envoyees : $Upload " >> ${NJour}
    echo 
    echo >> ${NJour}
    echo -n "-Qualite Wifi : $Wifi %" 
    echo -n "-Qualite Wifi : $Wifi %" >> ${NJour}
    echo
    et voici donc par exemple ce que me donne le fichier de aujourdhui :

    ---------------------------[ JOURNAL DE BORD ]-------------------------

    -Heure de reveil : 6h20
    -Heure Petit dej : 6h50
    -Heure Dejeuner : 13h20
    -Heure Diner : /
    --Evenements :
    ---------------------------[ DIAGNOSTIQUE PC ]-------------------------

    ==Stockage== :
    -Disque sda1 : 1 %
    -Disque sda2 : 11 %
    -Disque sda3 : 16 %
    -Disque sda4 : 1 %
    -Disque sda5 : 83 %

    ==Processeur== :
    -Charge processeur : 19 %

    ==Memoire== :
    -Memoire Totale : 2026 Mo
    -Memoire Utiliser : 1353 Mo
    -Memoire Libre : 672 Mo
    -Memoire Swap Totale : 1906 Mo
    -Memoire Swap Utiliser : 0 Mo
    -Memoire Swap Libre : 1906 Mo

    ==Sondes== :
    -Temperature Processeur : 27°C
    -Temperature Carte mére : 51°C
    -Ventilateur Processeur : fan1: 883 RPM
    -Ventilateur boitier : fan3: 1442 RPM

    ==Reseau== :
    -Données Telecharges : 107.4 MB
    -Données Envoyees : 10.8 MB
    -Qualite Wifi : 78 %
    si vous avez des truc ou des commandes pour optimiser le code on des conseils je suis preneur

    Merci beaucoup

  2. #2
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut
    Comment entrer plusieurs lignes de commentaires et terminer par la touche <Entrée> vide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    while [ true ] ; do
        read Event 
        if [[ $Event = "" ]] ; then
            break
        fi  
        echo "    -$Event " >> ${Njour}
    done

    Tu peux éviter de faire 2 fois le même echo comme suit :

    Remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    echo -n " --Evenements : "
    echo -n " --Evenements : " >> ${NJour}
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo -n " --Evenements : " | tee -a ${NJour}
    http://man.developpez.com/man1/tee.1.php
    Loi de Murphy:
    La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi.
    La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi.
    Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi.

Discussions similaires

  1. Pourquoi la programmation Shell ?
    Par am.adnane dans le forum Linux
    Réponses: 14
    Dernier message: 21/01/2006, 00h47
  2. [Debutant]Premier programme blemes+ questions
    Par Bakura dans le forum Débuter
    Réponses: 21
    Dernier message: 07/10/2005, 18h26
  3. [Language] Aide sur mon premier programme Java?
    Par hash2zo dans le forum Langage
    Réponses: 15
    Dernier message: 27/09/2005, 19h26
  4. [Débutant] Mon premier programme: rien ne va...
    Par vincent0 dans le forum OpenGL
    Réponses: 10
    Dernier message: 02/08/2005, 13h59
  5. Programmation Shell
    Par Leila75 dans le forum Linux
    Réponses: 3
    Dernier message: 12/05/2005, 09h45

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