#1 Le 23/10/2010, à 10:06
- Arnaud B.
Conseil script bash : ecrire dans un fichier, sur une machine distante
Bonjour,
Dans le cadre d'un script de déploiement, je souhaiterais pouvoir rajouter une ligne dans un fichier de configuration qui est sur une machine différente de la ou s'exécute le script.
j'ai eut beau fureter sur le web et dans le forum je ne vois pas qu'elle méthode utiliser pour que mon script édite le fichier situé sur l'autre machine ou le mette a jour
merci de vos suggestions, idées !!
Dernière modification par Arnaud B. (Le 24/10/2010, à 10:01)
Hors ligne
#2 Le 23/10/2010, à 20:15
- biotechman
Re : Conseil script bash : ecrire dans un fichier, sur une machine distante
Bonjour,
d'abord attention à tes fautes de français qui sont limites.
Ensuite pour ton problème, essayes un ssh (scp pour être plus précis) avec authentification par système de clé publique/privé. Vas sur la page de documentation de ssh, et la solution à ton problème, tu trouveras.
Dernière modification par biotechman (Le 23/10/2010, à 20:21)
May the source be with you
http://biotechman.com/wordpress
Hors ligne
#3 Le 23/10/2010, à 21:45
- Arnaud B.
Re : Conseil script bash : ecrire dans un fichier, sur une machine distante
Merci de ta réponse si laconique fût elle ;-)
j'avais bien déjà cherché dans cette direction mais finalement il n'y a pas possibilité en scp la machine distante ne le gère pas c'est un NAS synology , bref je me suis débrouillé comme ça finalement en ftp :
# récupération du fichier a éditer
ftp -n -v $IP_SERVEUR <<HERE
user $USER $PASSWORD
prompt
get ${WEBSVN_CONFIG_FILE} ${TMP_DIR}/config.tmp
bye
HERE
# édition du fichier
cd ${TMP_DIR}
sed -i .back 's/?>/'$ADD_REPOSITORY'/g' config.tmp
echo "?>" 1>> config.tmp
# renvoie du fichier
ftp -n -v $IP_SERVEUR <<HERE
user $USER $PASSWORD
prompt
send ${TMP_DIR}/config.tmp ${WEBSVN_CONFIG_FILE}
bye
HERE
# nettoyage
rm config.tmp
c'est peut être pas d'un haut niveau, ni très esthétique ... mais ça marche déjà
Hors ligne
#4 Le 23/10/2010, à 23:18
- biotechman
Re : Conseil script bash : ecrire dans un fichier, sur une machine distante
Je n'avais pas pensé au ftp, qui a une compatibilité accrue. Je vais garder ton script dans un coin bien au chaud, il risque de servir !
Pour le côté esthétique, je vois pas comment faire mieux mais certains barbus auront surement des idées ;-)
May the source be with you
http://biotechman.com/wordpress
Hors ligne
#5 Le 24/10/2010, à 08:57
- Arnaud B.
Re : Conseil script bash : ecrire dans un fichier, sur une machine distante
Ha oui tiens pour les barbus comme tu dis j'ai pas mis de licence, ni #!/bin/bash au début mais c'est un extrait !!!
la partie ftp va passer en fonction déjà, je la réutilise après ;-) c'est la partie sed qui m'a un peut fait lutter je n'avais jamais utilisé je m'embrouillais un peut et faut savoir que avec l'option -i si le fichier final à une extension (et seulement si) il faut stipuler une extension de fichier temporaire (le .back en l'occurrence pour moi), c'est pas marqué partout et faut le savoir sinon y'a erreur.
En fait ça ouvre un fichier php, ça cherche le ?> qui termine le fichier, ça rajoute une ligne de config, et ça remet à la ligne ?>... j'ai pas réussit à faire un saut de ligne en même temps que j'applique sed, un /n ou /r ou \/n \\\n marche pas... du coup y'a le echo "?>" 1>> qui fais le boulot, ça me dérange un peut de pas avoir réussit à le passer dans la même ligne ;-)
si conseil d'écriture il y à , preneur je suis en tous cas !!!
Dernière modification par Arnaud B. (Le 24/10/2010, à 09:10)
Hors ligne
#6 Le 24/10/2010, à 19:32
- biotechman
Re : Conseil script bash : ecrire dans un fichier, sur une machine distante
pour le saut de ligne dans sed,
sed -i .back '/?>/ i\'$ADD_REPOSITORY'\n' config.tmp
devrait fonctionner, et tu n'auras plus besoin de echo.
Pour ton système d'extension, si tu ne mets pas ton .back , tu n'auras pas de backup mais ta commande fonctionnera quand même.
Dernière modification par biotechman (Le 25/10/2010, à 10:40)
May the source be with you
http://biotechman.com/wordpress
Hors ligne
#7 Le 26/10/2010, à 11:02
- Arnaud B.
Re : Conseil script bash : ecrire dans un fichier, sur une machine distante
j'ai bien testé mais impossible de le passer sur mon ordi je suis sur mac OsX 10.4 et j'ai l'impression qu'il y a des différences sur l'interprétation de certaines commandes du shell.
je testerais sur mon netbook à l'occasion pour valider le truc ...
Hors ligne