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 :

Recherche d'informations sur un script


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Par défaut Recherche d'informations sur un script
    Bonjour

    Je debute avec les fichier bash sous linux.

    Je recherche des informations sur un script.
    J'ai compris que le début du script permet de rentrer des chemins de répertoire, relatif ou absolu.

    Le START_TIME permet selon moi de rentrer dans la variable START_TIME le nombre de seconde depuis le 01/01/1970 depuis maintenant.

    Le mkdir permet de créer un répertoire avec des sous-repertoires.

    MAIS :

    A partir des IF je n'y comprends rien du tout.
    Quelqu'un pourrait m'éclairer sur la fonctionnalité de ce script ?
    Et sur les lignes de IF et ELIF ?

    Et la fameuse ligne logger -t backup ?

    Merci beaucoup pour votre aide ^^.

    script:
    Nom : Untitled.png
Affichages : 213
Taille : 89,4 Ko

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 801
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par totophe40 Voir le message
    Je debute avec les fichier bash sous linux.
    Et avec le forum. Tu n'es pas allé te promener voir comment les autres présentent leurs scripts? En les mettant dans leurs posts ce qui nous permet de les récupérer facilement plutôt que par cette image inutilisable. C'est si difficile que ça de faire ctrl-c + ctrl-v???

    Citation Envoyé par totophe40 Voir le message
    J'ai compris que le début du script permet de rentrer des chemins de répertoire, relatif ou absolu.
    Ce qu'on appelle le "paramétrage".

    Citation Envoyé par totophe40 Voir le message
    A partir des IF je n'y comprends rien du tout.
    Quelqu'un pourrait m'éclairer sur la fonctionnalité de ce script ?
    Et sur les lignes de IF et ELIF ?
    Chaque commande est testée. Si elle ne se déroule pas correctement, la variable "STATUS" enregistre l'information et le script n'appelle alors pas les autres commandes car elles ont perdu leur utilité. Sinon (donc si elle se déroule correctement) le script passe à la commande suivante qui est testée de la même manière (if ! commande signifiant "si la commande est fausse").
    Cela s'appuie sur le principe que toutes* les commandes Linux renvoient au final un état vrai/faux représentant "ok/echec" (ok=0, echec="pas 0"), état qui peut être alors testé dans un "if".
    On peut visualiser l'état de la dernière commande car cet état est automatiquement enregistré dans la variable "$?". Donc un simple echo $? te permet de le voir de façon plus "concrète" => true; echo $?; false; echo $?.
    De ton côté, tu peux parfaitement rendre tes propres scripts "testables" de la même façon par les autres programmes bash en leur faisant sortir 0 ou une autre valeur (jusqu'à 255) via exit. Ils sortent "0" ils seront considérés comme "ok", pas 0 ce sera "echec".

    (*) il y a quelques rares commandes, comme expr, qui ne respectent pas ce principe. Par exemple cette dernière renvoie un état 1 (donc conventionnellement considéré comme "faux") si elle affiche 0 (alors qu'elle s'est pourtant parfaitement exécutée), et renvoie un état 2 (là aussi "faux") si elle ne se déroule pas correctement.

    Citation Envoyé par totophe40 Voir le message
    Et la fameuse ligne logger -t backup ?
    man logger.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    Citation Envoyé par totophe40 Voir le message
    A partir des IF je n'y comprends rien du tout.
    Quelqu'un pourrait m'éclairer sur la fonctionnalité de ce script ?
    Et sur les lignes de IF et ELIF ?

    Et la fameuse ligne logger -t backup ?
    "if" et "elif" ne sont pas en majuscules.

    Attention ! Sous mac os, les commandes peuvent être légèrement différentes de l'environnement linux.

    Après avoir créé le répertoire de stockage des sauvegardes, le script appelle la commande "rsync" (voir man rsync) pour copier le contenu de la source vers le répertoire de sync.
    Si elle échoue, il note l'erreur dans la variable STATUS.
    Sinon il appelle la commande "tar" (voir man tar) pour copier le contenu du répertoire de sync en un seul fichier dans le répertoire d'archive.
    Si elle échoue, il note l'erreur dans la variable STATUS.
    Sinon il appelle la commande "mv" (voir man mv) pour déplacer le fichier archivé précédent dans le répertoire de destination.
    Si elle échoue, il note l'erreur dans la variable STATUS.
    Sinon il note le succès dans la variable STATUS.

    Puis il appelle la commande "logger" (voir man logger) pour insérer le contenu de la variable STATUS dans le log système.

  4. #4
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 079
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 079
    Par défaut
    Bonjour

    Citation Envoyé par totophe40 Voir le message
    Le START_TIME permet selon moi de rentrer dans la variable START_TIME le nombre de seconde depuis le 01/01/1970 depuis maintenant.
    1. Non : c'est la commande $(date... qui le permet, commande que je ne peux pas copier et tester pour cause d'image à la noix qui bouffe 90 ko d'espace disque du forum pour même pas une vingtaine de malheureuses lignes de texte, point déjà soulevé par Sve@r.
    2. depuis le 01/01/1970 ou depuis maintenant ? Faudrait savoir (et être cohérent).


    Enfin, il n'y a aucun test de validité préalable du contexte d'exécution des commandes :
    • la source est-elle disponible ?
    • la destination est-elle disponible ?
    • et surtout, l'espace de stockage sur la destination est-il suffisamment grand pour accepter un autre fichier d'archive ? Sinon, bonjour la catastrophe...

  5. #5
    Nouveau candidat au Club
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Novembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Par défaut
    Bonsoir et merci pour ceux qui ont participé à la discussion :-)

    Pour resumer:
    Je n'ai que cette image et rien d'autre.
    Elle m'a été fourni pour un questionnaire d'entrée dans une formation diplomante.
    Je n'y connais absolument rien dans ces script, je connais un peu le scripting en ligne de commande, mais pas en linux.

    Le but de cet exercice est :
    - soit de rechercher la solution soit meme ( ce qui est quasi impossible si l'on a pas des connaissances en scripting linux, vu qu'il faudrait apprendre le scripting en quelques heures ).
    - soit arriver à trouver des gens pouvant aider sur les forums.

    Bref prouver que l'on peut être capable de se bagarrer pour trouver la solution d'une manière ou une autre.

    Au début, j'ai commencé à recopier les lignes sur un word et je voulais faire un copier collé, mais comme certains l'ont dit, l'image était dégueux, à certains endroits flou: , j'ai donc eu peur de modifier par erreur une partie du script ( par exemple, transformer un " en ' ).
    Du coup, au dernier moment, j'ai préféré mettre l'image plutot que du texte que j'aurais peut etre modifié par erreur.
    Vous qui trouvez l'image degueux, imaginez quelqu'un qui ne connait absolument pas le langage et la forme du script.

    Donc voila pour l'explication, désolé pour avoir posté cette image pas glop mais je n'ai pas trop eu le choix et j'ai été pris par le temps.
    MErci à tous pour vos interventions, et un grand grand merci pour celui qui a gardé une certaine neutralité dans ces propos, car quand cela commence ainsi, cela peut vite se transformer en un punching ball géant sans répondre vraiment à la question posée.

    pour mes propos:
    Le START_TIME permet selon moi de rentrer dans la variable START_TIME le nombre de seconde depuis le 01/01/1970 depuis maintenant.
    JE me suis trompé et je voulais jusqu'à maintenant et pas depuis maintenant.

    Pas toujours simple de ne pas paniquer quand on remplit un questionnaire de candidature quand on vous a annoncé qu'il devrait durer 2 heures, que vous en etes à 2h30, sans vraiment savoir combien d'autres questions il reste par la suite. ( chaque question non répondu bloquant les autres questions suivante, non visibles ).

    C'est promis, j'essayerai par la suite de mettre uniquement du code et pas des images, quitte à me tromper sur une partie ^^

    Bonne soirée et encore merci à vous :-)

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 167
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Attention ! Sous mac os, les commandes peuvent être légèrement différentes de l'environnement linux.
    Pour ce qui est shell, ça ne change pas, MacOS utilisant zsh pour les dernières versions me semble-t-il et bash avant. Pour les trucs de bases utilisés ici, ça fonctionnera pareil.

    Les commandes telles que rsync, tar et mv seront les mêmes. Par contre effectivement certaines commandes peuvent avoir des différences d'options.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 801
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par totophe40 Voir le message
    Au début, j'ai commencé à recopier les lignes sur un word et je voulais faire un copier collé, mais comme certains l'ont dit, l'image était dégueux, à certains endroits flou: , j'ai donc eu peur de modifier par erreur une partie du script ( par exemple, transformer un " en ' ).
    Mieux vaut passer par un blocnote de base (notepad++ ou au pire notepad). Car word ce n'est pas un éditeur de script. Il rajoute des mises en formes qui pêtent complètement la syntaxe (qui, comme tu le soulignes, est ultra importante en script Unix/Linux). Ecrire par exemple a = "toto" ne fonctionnera pas mais a="toto" fonctionnera. Hier encore j'ai découvert une différence majeure entre read -d'' et read -d '' => https://www.developpez.net/forums/d2.../#post11931261.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Recherche d'informations sur le projet kannel ?
    Par spynux dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 07/12/2011, 20h53
  2. Recherche d'informations sur le wifi
    Par pitit777 dans le forum Sécurité
    Réponses: 5
    Dernier message: 14/11/2006, 17h37
  3. recherche d'informations sur eclipse
    Par flipo84 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 23/08/2006, 14h44
  4. Recherche d'informations sur les scripts shell ?
    Par donny dans le forum Linux
    Réponses: 11
    Dernier message: 27/06/2006, 13h22
  5. Recherche d'informations sur Delphi 2006
    Par MarcP dans le forum EDI
    Réponses: 2
    Dernier message: 01/10/2005, 19h30

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