#1 Le 09/07/2011, à 00:49
- netsabes
insertion d'un texte à un endroit précis d'un fichier
Bonjour,
j'ai malheureusement une IP dynamique, et mon serveur refuse dynDNS pour m'authentifier comme administrateur autorisé.
Donc d'habitude, voilà ce que je fais :
je me connecte en ssh, j'accède au fichier de conf où je rentre mon IP dans la liste des IP autorisée, puis j'enregistre le fichier de conf.
Ensuite, en ouvrant la page web "classique" de mon serveur, mon IP étant reconnue, j'ai un lien d'administration qui apparait (avec évidemment mon mot de passe à rentrer).
Comme je trouve la procédure pénible, j'ai imaginé l'automatiser, mais je ne sais pas faire, donc je me tourne vers vous.
Voilà ce que dois faire le script :
rapatrier le fichier de configuration du serveur sur mon ordi, avec scp
Réécrire la ligne 10, sous la forme :
manager_site=127.0.0.1 1.2.3.4 (où 1.2.3.4 est mon IP publique, récupérée avec une commande du genre wget -q http://whatismyip.org/ -O /home/seb/Bureau/IP.txt)
Ne pas modifier les lignes avant et après la ligne 10
Enregistrer le fichier
Renvoyer le fichier sur le serveur.
Si je n'ai plus que mon mot de passe à rentrer, ça limite déjà bien la procédure.
Si un expert voit comment faire, c'est génial.
Merci d'avance,
Netsabes.
Cet Univers ne serait pas grand-chose s’il n’abritait pas les gens qu’on aime. (Stephen Hawking)
Linux Ubuntu 22.04 Gnome (64 bits)
Hors ligne
#2 Le 09/07/2011, à 01:28
- jacobus77
Re : insertion d'un texte à un endroit précis d'un fichier
Tu devrais pouvoir coder quelques chose de simple avec sed (ou wc | awk) pour n'agir que sur la dixième ligne.
Hors ligne
#3 Le 09/07/2011, à 09:46
- netsabes
Re : insertion d'un texte à un endroit précis d'un fichier
J'avais en effet vu cette commande, dont je vais chercher la documentation.
Mais comment rapatrier l'IP obtenue avec wget ?
Cet Univers ne serait pas grand-chose s’il n’abritait pas les gens qu’on aime. (Stephen Hawking)
Linux Ubuntu 22.04 Gnome (64 bits)
Hors ligne
#4 Le 09/07/2011, à 10:39
- Postmortem
Re : insertion d'un texte à un endroit précis d'un fichier
Salut,
Si tu souhaites remplacer la ligne 10 :
MON_IP=$(wget -q http://whatismyip.org/ -O -)
sed '10 s/.*/manager_site=127.0.0.1 '${MON_IP}'/' test.txt
Si tu souhaites ajouter la ligne après la 9 :
MON_IP=$(wget -q http://whatismyip.org/ -O -)
sed '9 a manager_site=127.0.0.1 '${MON_IP} test.txt
sed --version | head -1
GNU sed version 4.2.1
Dernière modification par Postmortem (Le 09/07/2011, à 10:41)
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#5 Le 09/07/2011, à 20:19
- netsabes
Re : insertion d'un texte à un endroit précis d'un fichier
Merci, je vais essayer tout ça.
Cet Univers ne serait pas grand-chose s’il n’abritait pas les gens qu’on aime. (Stephen Hawking)
Linux Ubuntu 22.04 Gnome (64 bits)
Hors ligne