Multiples fichiers – chercher/modifier une string
Comme vous avez pu remarquer j’ai switché à plusieurs reprises depuis un serveur vers l’autre et comme tous les serveurs devaient encore tourner je n’avais comme choix que d’en changer les ports.
Pour Apache il faut aller tout d’abord modifier le fichier ports.conf à la main et puis utiliser la commande suivante dans le dossier /etc/apache2/sites-enabled comme j’aurai pu le faire dans mon article Varnish (expliquant où il faut changer les ports dans Apache)
grep –Rl :80 * | sort | uniq | xargs perl -pi -e “s/:80/:8888/“
- grep : je recherche
- -R : en récursif (ici ce n’est pas nécessaire vu qu’on est devant des ‘flat files’ sans dossier mais c’est une habitude)
- -l : je n’affiche que le nom du fichier ou je l’ai trouvé, rien d’autre
- :80 : le pattern à trouver (soit port 80 ici)
- * je cherche PARTOUUUUUT
- sort : tri pour pouvoir fonctionner avec uniq ci-après
- uniq : (segment du man) Filtrer les lignes successives identiques du fichier d’ENTRÉE (ou de l’entrée standard), écrire dans le fichier de SORTIE (ou vers la sortie standard).
- xargs : programme permettant de composer et d’exécuter des commandes avec des infos provenant de stdin (soit ici les noms des fichiers)
- perl : no comment
- -p : permet la lecture du fichier ligne par ligne par un morceau de code qui m’est encore obscure
- -i : l’édition sur place -> édition du fichier sur lequel on est en train de travailler, pas de création d’un nouveau
- -e : spécifie que ce sera une instruction perl ‘oneline’ qui va suivre
- “s/:80/:8888/” : substitue les :80 que tu trouveras en :8888 (l’absence de g comme modificateur de la regexp signifie que seul la première occurence rencontrée sera modifiée)
Source pour les explications pour les paramètres de perl (que j’ai pas trop compris moi même, même si ça marche :D ) : http://articles.mongueurs.net/magazines/linuxmag50.html
Voilà ! Bon search and replace ;-) (oubliez pas le backup avant, au cas où…)
[…] c’est dans chaque section server que vous devrez faire la modification (pour faire des modifications en masse dans des fichiers différents pensez à ce petit article). listen 8888; #en listen […]