Changement d'occurrences dans un fichier .netrc sous aix.

Fermé
richy - Modifié le 14 févr. 2023 à 10:26
mamiemando Messages postés 33549 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mars 2025 - 20 févr. 2023 à 18:45

Bonjour,

Par soucis de reprise d'activité de la production sur mon site backup distant, dont le nom de la machine "PROD_DB_VIR"  et  le nom de l'utilisateur "login" et le mot de passe "password" de l'utilisateur d'accès à la base de donnée à partir de l'application de la communauté utilisateurs de l'entreprise change sur le site backup sur le fichier "/home/$USER/.netrc" selon le profile du USER.

Je cherche un script sous aix comportant une commande avec 'sed' ou 'awk' qui me permet d'effectuer ces changement des occurrences sur le même fichier  "/home/$USER/.netrc" d'une façon transparente en lançant le script lors du basculement vers le site backup.

#### voici le fichier "vi  /home/$USER/.netrc"  :

machine PROD_DB_VIR login admdb password admdb@2023
~
~
~

 

Merci d'avance.

A voir également:

5 réponses

mamiemando Messages postés 33549 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mars 2025 7 829
Modifié le 15 févr. 2023 à 14:23

Bonjour,

Je n'ai pas compris ton problème ni ta question. Peux-tu réécrire ton message avec des phrases plus courtes et plus claires ? Quelles occurrences veux-tu modifier avec sed et awk ? Peux-tu donner un exemple en montrant à quoi ça rassemblerait avant et après changement ?

Si j'ai bien compris tu veux modifier

machine PROD_DB_VIR login admdb password admdb@2023

en :

machine PROD_DB_VIR login mon_login password mon_mot_de_passe

Si oui :

sed -i "s/password [^ ]*/password my_password/" ~/.netrc
sed -i "s/login [^ ]*/login my_login/" ~/.netrc

Bonne chance

0

bonjour 

Merci pour votre réponse.

Finalement je veux modifier juste le nom de la machine dans le fichier .netrc de mes utilisateurs /home/$USER/.netrc: avec un script sous aix avec sed ou awk

Origine site Production: 

machine PROD_DB_VIR login admdb password admdb@2023

besoin site Backup:

machine BACK_DB_VIR login admdb password admdb@2023

Merci d'avance.

0
mamiemando Messages postés 33549 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mars 2025 7 829
Modifié le 15 févr. 2023 à 16:38

Bonjour,

Merci pour ces précisions. Dans ce cas, il te suffit de repartir des commandes que je t'ai déjà données :

sed -i "s/PROD_DB_VIR/BACK_DB_VIR/" ~/.netrc

Ceci modifie le .netrc de l'utilisateur courant.

Si tu veux itérer sur les .netrc de plusieurs utilisateurs dont le dossier est dans /home, écris une boucle for.

for f in $(find /home -maxdepth 2 -type f | grep /.netrc$); do
  sed -i 's/PROD_DB_VIR/BACK_DB_VIR/g' "$f"
done

Pour rappel tu peux aussi trouver les dossiers personnels de chaque utilisateur local dans /etc/passwd.

Bonne chance

0

Re-bonjour,

l'exécution du script me renvoi l'erreur suivante :

find: 0652-017 -maxdepth is not a valid option.

merci ! 

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 33549 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mars 2025 7 829
Modifié le 20 févr. 2023 à 18:46

Bonjour,

Commence par t'assurer que chaque bout de commande impliqué retourne ce qu'il faut :

find /home -maxdepth 2 -type f
find /home -maxdepth 2 -type f | grep /.netrc$

Si tu n'es pas sous bash, c'est peut-être dû à l'opérateur $( ... ) qu'on peut remplacer par `...` :

for f in `find /home -maxdepth 2 -type f | grep /.netrc$`; do
  sed -i 's/PROD_DB_VIR/BACK_DB_VIR/g' "$f"
done

Bonne chance

0