Script Bash pour récuperer seulement l'adresse IP

Script Bash pour récuperer seulement l'adresse IP - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 06-07-2012 à 10:29:26    

Bonjour à tous :hello: ,
 
Je cherche une ligne de commande en BASH qui me permettrait de récuperer seulement l'adresse ip de ma machine linux,
Je m'explique, le but etant d'envoyer des fichiers qui a pour nom l'adresse IP de la machine, afin de les envoyer en FTP sur un serveur Filezilla, et ceux pour une question d'organisation des fichiers :) .
 
Merci pour vos lumières :jap: .

Reply

Marsh Posté le 06-07-2012 à 10:29:26   

Reply

Marsh Posté le 06-07-2012 à 11:46:12    

En gros, le nom du fichier doit renvoyer l'adresse IP de la machine.
 
ftp 10.*.*.* <<END
user Root MDP
put /tmp/SauvegardeMSQL.tar /ServeurFTP/nomdufichier.tar
 
avec nomdufichier= adresse IP de la machine.
 
Auriez vous une idée ?
 
Merci :-)

Reply

Marsh Posté le 06-07-2012 à 12:08:43    

Et avec le nom de la machine, ce ne serait pas plus simple ?
 
nomdufichier= nomdelamachine.

Reply

Marsh Posté le 06-07-2012 à 12:21:19    

Je viens de faire un test, en effet, avec la variable $HOSTNAME, ça  
marche bien.
hostname=$HOSTNAME
ftp 10.*.*.* <<END
user Root MDP
put /tmp/SauvegardeMSQL.tar /ServeurFTP/$hostname.tar  
 
Mais je prefererai avec l'adresse IP.
Personne a une idée ?
 
Merci.

Reply

Marsh Posté le 06-07-2012 à 13:04:14    

`dig +short $HOSTNAME` ? :o


---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
Reply

Marsh Posté le 06-07-2012 à 13:23:06    

ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'


Message édité par o'gure le 06-07-2012 à 13:24:11
Reply

Marsh Posté le 06-07-2012 à 13:30:23    

Si ta machine est dans le DNS tu peux aussi faire :
 

Code :
  1. host $HOSTNAME | awk '{print $NF}'

Reply

Marsh Posté le 06-07-2012 à 13:52:50    

Merci beaucoup les amies, o'gure comment implanter ta ligne de commande dans mon script ?
 
hostname=$HOSTNAME
ftp 10.*.*.* <<END
user Root MDP
put /tmp/SauvegardeMSQL.tar /ServeurFTP/$hostname.tar
 
Encore merci Missardonik, o'gure, nukolau.

Reply

Marsh Posté le 06-07-2012 à 13:56:36    

jadakiss a écrit :

o'gure comment implanter ta ligne de commande dans mon script ?


Avec des quotes inversés

hostname=`ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'`
ftp 10.*.*.* <<END
user Root MDP
put /tmp/SauvegardeMSQL.tar /ServeurFTP/$hostname.tar

Reply

Marsh Posté le 06-07-2012 à 14:02:08    

Super, un grand merci à vous !!!

Reply

Marsh Posté le 06-07-2012 à 14:02:08   

Reply

Marsh Posté le 06-07-2012 à 14:52:50    

Mouais, balancer une commande FTP dans un script, pourquoi pas. Perso j'utiliserais curl pour le faire [:haha cosmoschtroumpf]
Ce qui donnerait (au complet si on veut faire une backup d'une base MySQL) :

Citation :


hostname=`ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'`
mysqldump -u user -p password [databasename] > temporaire.sql
tar -zcvf hostname.tar.gz temporaire.sql
curl -u user:passwd -T hostname.tar.gz ftp://mon_ftp.com/backupsql/
rm -f hostname.tar.gz temporaire.sql


(bon c'est fait à l'arraché, y'a sûrement moyen de faire en 3 lignes...)


Message édité par bardiel le 06-07-2012 à 14:53:28

---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
Reply

Marsh Posté le 06-07-2012 à 15:11:59    


o'gure, pourrais-tu m'expliquer la partie | cut -d: -f2 | awk '{ print $1}'`
Merci.

Reply

Marsh Posté le 06-07-2012 à 15:13:25    

bardiel, oui en effet, c'est aussi une possibilité, merci ;-)

Reply

Marsh Posté le 06-07-2012 à 15:47:14    

jadakiss a écrit :


o'gure, pourrais-tu m'expliquer la partie | cut -d: -f2 | awk '{ print $1}'`
Merci.


hostname= -> dans la variable (locale) hostname
ifconfig eth0 -> je veux toutes les infos concernant la carte eth0
grep 'inet addr:' -> on recherche la position de "inet addr:", qui correspond à la ligne où se trouve ton adresse IP
cut -d: -f2 -> là on récupère en utilisant le séparateur ":" (situé à "inet addr:" ) au 2ème champs (donc on ne récupère pas les espaces, qui ne nous servent pas)
awk '{ print $1}' -> on imprime le résultat.
 
Bref ça pourrait se traduire par :
Je veux les infos concernant la carte réseau filaire n°0, dans ces infos je veux récupérer à partir de "inet addr:" le champs affiché et je veux le mettre dans la variable hostname.


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
Reply

Marsh Posté le 16-08-2012 à 09:22:26    

Merci pour vos réponses, c'est super !!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed