Forum Linux.général [Résolu] Fichiers de configuration daemon

Posté par . Licence CC by-sa
Tags : aucun
1
14
oct.
2014

Bonjour,

Une petite question de débutant auquelle je n'arrive pas à avoir de réponse :

J'ai un très long script qui m'installe et me paramètre tout linux après une fresh install.

Cependant, pour les fichiers de configuration de daemon (et même les autres), je dois modifier certaines variables manuellement car il y a des remplacement de valeur à faire (comme pour SSH, deny hosts, etc…)

Ma question est : Ces fichiers sont-ils appelé comme des scripts qui initialisent les variables ou sont-il lu lignes par lignes?

Le but étant de simplement faire un rajout de variable (en doublon) via un script plutôt que de faire un long script de lecture/test/remplacement/réécriture de la variable.

Il y a-t-il (déjà eu) des cas où l'ordre ou la duplication des variables posent problème?

Merci d'avance!

  • # langage

    Posté par (page perso) . Évalué à 2.

    Variable d'environnement ou paramètre dans un fichier ?

    Système - Réseau - Sécurité Open Source

  • # Facile !

    Posté par (page perso) . Évalué à 1.

    Salut,

    Tous les logiciels ne fonctionnent pas de la même manière et les deux cas que tu évoques peuvent être rencontrés.

    Par contre, je ne vois pas beaucoup de difficultés dans ce que tu demandes.

    en gros, tu peux faire un truc dans ce genre :

    grep '<parametre>=' fichier.conf && sed -i 's/<parametre>=.*/<parametre>=<valeur>/' fichier.conf || echo '<parametre>=<valeur>' >> fichier.conf

    … ce n'est pas si long que ça…

    https://www.domotego.com/ | https://www.maccagnoni.eu/ | https://www.smm-informatique.fr/

    • [^] # Re: Facile !

      Posté par (page perso) . Évalué à 1.

      Effectivement. C'est d'ailleurs l'occasion rêvée d'apprendre à faire un peu plus avec sed, comme la suppression ou l'ajout de ligne(s), en plus de la très connue substitution. ;)

      Debian Consultant @ DEBAMAX

  • # for

    Posté par . Évalué à 1. Dernière modification le 14/10/14 à 22:39.

    C'est bien ce que je pensais. Je me doutait que faire un doublon de variable dans un fichier de conf pourrait poser problème, même si je suppose que pour la plupart ces fichiers sont éxecuté comme des scripts.

    PS : je parlais des scripts de configuration en général mais là où je butait surtout c'est ceux placés dans /etc/ssh/sshd.conf /etc/denyhosts.conf et d'autre même type.

    Pour ta ligne de commande, je suis volontier preneur mais je ne connais pas sed et je n'utilise grep que via les pipes. Je voyais plutôt quelque chose du genre (non testé et surement faux) :

    for x in 'cat fichier'
    do
    
       ligne=$x|grep "ancienparametre"
    
       if [ $ligne != -eq 0 ]
       then
          $ligne = "nouveau parmètre=valeur"
       fi
    
       echo $ligne >> nvfichier
       rm ancienfichier
       cp nvfichier ancienfichier
       rm nvfichier
    
    done

    Est-ce que tu peux détailler la commande?

    Merci pour les réponses!

    • [^] # Re: for

      Posté par . Évalué à 0.

      Je crois avaoir compris :

      grep '=' fichier.conf

      Récupère les occurences paramètre= du fichier conf

      && sed -i 's/=.*/=/' fichier.conf

      Envoie à sed avec backup et substitu ancienparamètre=.* par le nouveau

      || echo '=' >> fichier.conf

      En cas d'erreur, on crée le fichier.

      Je passe en résolu.

      Merci à tous!

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.