Changement d'occurrences dans un fichier .netrc sous aix.
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.
- Changement d'occurrences dans un fichier .netrc sous aix.
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
5 réponses
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
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.
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
Re-bonjour,
l'exécution du script me renvoi l'erreur suivante :
find: 0652-017 -maxdepth is not a valid option.
merci !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionBonjour,
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