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 :

bash script avec réponses variables à intégrer dans une commande ensuite.


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2021
    Messages : 1
    Par défaut bash script avec réponses variables à intégrer dans une commande ensuite.
    Bonjour a tous,

    j'ai besoin d'autoriser régulièrement des IP static sur certains port d'un serveur ubuntu collectif. chaque jours , je dois leur donner accès, mais aussi en retirer régulièrement
    on utilise un simple système avec UFW

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ufw insert 1 allow from 145.22.83.884 to any port 2022
    Je dois répéter cette action sur plusieurs ports, plusieurs fois par jour.... (acces websocket, etc...)

    Comment pourrais-je simplifier cette operation avec un script ?
    il me faudrait que chose de simple, genre je lance le script ./script.sh ,

    - un choix multiple (1- ajouter une IP, 2 retirer une IP)
    - une ligne ou j'ajoute l'IP

    et le script allowerais sur plusieurs ports l'ip ajoutée.

    ca serait genial.
    qqu'u peut m'aider ?
    merciiii

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 654
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 654
    Par défaut
    Bonjour,

    est-ce bien nécessaire ?
    je m'explique : comment obtiens-tu les adresses à autoriser ou à retirer l'accès ?

    tu liras avec profit les tutos inscrits dans ma signature, parce qu'on va t'aider, pas faire le boulot.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  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 Palmer76 Voir le message
    Comment pourrais-je simplifier cette operation avec un script ?
    Quelle valeur ajoutée attends-tu précisément du script ?

    Pourquoi ne pas faire un simple script avec une répétition de lignes comme celle que tu donnes ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #!/bin/bash
    ufw insert 1 allow from 145.22.83.884 to any port 2022
    #ufw insert 1 allow from 145.22.83.885 to any port 2023
    ufw insert 1 allow from 145.22.83.886 to any port 2024
    Pour ajouter une IP, tu copies une ligne et tu mets à jour les nombres, ex: 885 et 88, copies de 884.
    Pour retirer une IP, tu la recherches dans le script et tu commentes la ligne en insérant un # au début (pour le cas où il faudrait la remettre ultérieurement), ex: 885.

    C'est trop compliqué ?

    Évidemment, si les modifications des données viennent d'un fichier, il peut être intéressant de faire un interprète de ce fichier, ce qui devrait éviter les erreurs de recopies. Si c'est le cas, il faudrait nous donner le format du fichier.

  4. #4
    Membre éclairé
    Homme Profil pro
    sans
    Inscrit en
    Juillet 2019
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Juillet 2019
    Messages : 141
    Par défaut
    bonsoir, un truc du style ?
    disons un fichier ou un flux (ici fichier)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo -e "145.22.83.884\\n145.22.83.885\\n145.22.83.886" > test_ip
    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
    while true; do
      echo -e "1 lire les ip\\n2 entrer une nouvelle ip ?\\n3 quitter"
      read -srn1
      case "$REPLY" in
       1) echo "boucler sur les ip du fichier ou de la sortie de commande qui ..."
         while read line; do
           echo "$line"
           echo -e "1 autoriser\\n2 commenter\\n3 supprimer "
           read -sn1 </dev/tty
           echo "choix $REPLY à implémenter"
         done < test_ip ;;
       2)  echo "entrer une ip et son port (format: xxx.xxx.xxx.xxx:xxxxx)"
          read </dev/tty
          echo "autoriser ${REPLY%:*} au port ${REPLY#*:} à implémenter" ;;
       3) break ;;
      esac
    done

Discussions similaires

  1. Problème avec deux insert into dans une commande
    Par Rayan1 dans le forum VBA Access
    Réponses: 8
    Dernier message: 01/10/2019, 14h26
  2. Réponses: 7
    Dernier message: 01/11/2012, 21h37
  3. Insertion d'une variable Perl dans une commande SHELL
    Par dubis dans le forum Programmation et administration système
    Réponses: 15
    Dernier message: 16/08/2010, 15h47
  4. Réponses: 21
    Dernier message: 21/08/2008, 23h30
  5. [Système] Une variable PHP dans une commande bash
    Par aroua dans le forum Langage
    Réponses: 1
    Dernier message: 19/07/2007, 16h23

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