Difference between revisions of "FR:RPi Email IP On Boot Debian"

From eLinux.org
Jump to: navigation, search
(french translation. traduction commencée. source: 08/08/2012 20:16)
 
(Qu'est-ce-que ça fait ?)
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:FR:RaspberryPi]]
+
[[Category:RaspberryPi]]
 
Retour vers les [[FR:RPi Guides|Guides RPi]].
 
Retour vers les [[FR:RPi Guides|Guides RPi]].
  
Line 6: Line 6:
 
=Qu'est-ce-que ça fait ?=
 
=Qu'est-ce-que ça fait ?=
  
This code will extract the ip address of your Pi and then send an email containing the ip to the specified email address. This is inspired by the need to access the Pi via SSH or other network protocols without a monitor and moving from network to network. This assumes a Gmail SMTP server. You may need to alter a bit for other servers (beyond scope here)
+
Ce code va récupérer l'adresse ip de votre Pi et ensuite l'envoyer par courriel vers l'adresse de messagerie spécifiée. Il est inspiré par le besoin d'accéder au Pi via SSH ou d'autres protocoles réseau en l'absence de moniteur et sans avoir à le changer d'un réseau à l'autre. Le code se base sur un serveur SMTP Gmail. Vous devrez le modifier un peu pour d'autres serveurs (ce qui ne rentre pas dans le cadre de ce guide)
  
 
=De quoi avez-vous besoin ?=
 
=De quoi avez-vous besoin ?=
  
A working, and network enabled Raspberry Pi
+
Un Raspberry Pi fonctionnel, avec accès réseau
  
 
=Quelles compétences sont requises ?=
 
=Quelles compétences sont requises ?=
  
Medium Level. You should be comfortable navigating a linux system and be comfortable using sudo (if you want to use this script, odds are you are quite comfortable at the command prompt).
+
Niveau moyen. Vous devez être à l'aise pour naviguer sur un système linux et aussi pour utiliser sudo (si vous voulez utiliser ce script, il y a des chances que vous ayez une petite expérience de l'invite de commande).
  
 
=Aperçu de ce guide=
 
=Aperçu de ce guide=
You need to
+
Vous devez
*Create a python script and store it in a Directory
+
*Créer un script python et l'enregistrer dans un répertoire
*Make python script executable
+
*Rendre le script python exécutable
*Edit '''''/boot/boot.rc'''''
+
*Éditer '''''/boot/boot.rc'''''
  
 
=Allons-y=
 
=Allons-y=
  
 
==Création du script python==
 
==Création du script python==
Copy and paste the following code into a text editor (I'm a nano man myself)
+
Copiez et collez le code suivant dans un éditeur de texte (je suis moi-même adepte de nano)
  
 
  import subprocess
 
  import subprocess
Line 32: Line 32:
 
  from email.mime.text import MIMEText
 
  from email.mime.text import MIMEText
 
  import datetime
 
  import datetime
  # Change to your own account information
+
  # À remplacer par vos propres informations de compte
  to = 'me@example.com'
+
  to = 'moi@exemple.com'
 
  gmail_user = 'test@gmail.com'
 
  gmail_user = 'test@gmail.com'
  gmail_password = 'yourpassword'
+
  gmail_password = 'votremotdepasse'
 
  smtpserver = smtplib.SMTP('smtp.gmail.com', 587)
 
  smtpserver = smtplib.SMTP('smtp.gmail.com', 587)
 
  smtpserver.ehlo()
 
  smtpserver.ehlo()
Line 42: Line 42:
 
  smtpserver.login(gmail_user, gmail_password)
 
  smtpserver.login(gmail_user, gmail_password)
 
  today = datetime.date.today()
 
  today = datetime.date.today()
  # Very Linux Specific
+
  # Très spécifique à Linux
 
  arg='ip route list'
 
  arg='ip route list'
 
  p=subprocess.Popen(arg,shell=True,stdout=subprocess.PIPE)
 
  p=subprocess.Popen(arg,shell=True,stdout=subprocess.PIPE)
Line 48: Line 48:
 
  split_data = data[0].split()
 
  split_data = data[0].split()
 
  ipaddr = split_data[split_data.index('src')+1]
 
  ipaddr = split_data[split_data.index('src')+1]
  my_ip = 'Your ip is %s' %  ipaddr
+
  my_ip = 'Votre ip est %s' %  ipaddr
 
  msg = MIMEText(my_ip)
 
  msg = MIMEText(my_ip)
  msg['Subject'] = 'IP For RaspberryPi on %s' % today.strftime('%b %d %Y')
+
  msg['Subject'] = 'IP du RaspberryPi à %s' % today.strftime('%b %d %Y')
 
  msg['From'] = gmail_user
 
  msg['From'] = gmail_user
 
  msg['To'] = to
 
  msg['To'] = to
Line 56: Line 56:
 
  smtpserver.quit()
 
  smtpserver.quit()
  
Save this script using a nice name like ''''startup_mailer.py'''' and make note of its path (like '''''/home/pi/Code/startup_mailer.py''''')
+
Enregistrez le script sous un nom parlant tel que ''''startup_mailer.py'''' et prenez note de son chemin (comme '''''/home/pi/Code/startup_mailer.py''''')
  
For good measure, make the script executable
+
Pour faire bonne mesure, rendez-le exécutable
 
  sudo chmod +x startup_mailer.py
 
  sudo chmod +x startup_mailer.py
  
 
==Édition de /boot/boot.rc==
 
==Édition de /boot/boot.rc==
Using your text editor once again, edit '''''/boot/boot.rc''''' (this assumes you have already renamed this file to boot.rc If not, see [[RPi_Advanced_Setup]]). For example:
+
En utilisant encore une fois votre éditeur de texte, ouvrez '''''/boot/boot.rc''''' (cela suppose que vous avez déjà renommé ce fichier en boot.rc Sinon, voir [[RPi_Advanced_Setup]]). Par exemple :
 
  sudo nano /boot/boot.rc
 
  sudo nano /boot/boot.rc
  
Add the following at the end of the file, making changes to the path for your directory tree and save.
+
Ajoutez les lignes suivantes en fin de fichier, en faisant la modification avec le chemin de votre répertoire et enregistrez.
  #Script to email ip address upon reboot
+
  #Script pour envoyer l'adresse ip par courriel au redémarrage
 
  python /home/pi/Code/startup_mailer.py
 
  python /home/pi/Code/startup_mailer.py
  
 
== Alternative si Rasbian est utilisée ==
 
== Alternative si Rasbian est utilisée ==
If you are using Rasbian you won't have a /boot/boot.rc file. Instead you can edit /etc/rc.local as follows:
+
Si vous utilisez Rasbian, vous n'aurez pas de fichier /boot/boot.rc. À la place, vous pouvez éditer /etc/rc.local comme ceci :
  
 
   sudo nano /etc/rc.local
 
   sudo nano /etc/rc.local
  
Add the python line so the file now looks like this:
+
Ajoutez la ligne python afin que le fichier ressemble à ceci :
  
 
   # rc.local
 
   # rc.local
Line 95: Line 95:
  
 
==Pour finir==
 
==Pour finir==
Reboot your Pi and you should receive an email with your ip address
+
Redémarrez votre Pi et vous devriez recevoir un courriel avec votre adresse ip

Latest revision as of 06:38, 1 June 2013

Retour vers les Guides RPi.

Envoi au démarrage d'un courriel contenant l'adresse IP

Qu'est-ce-que ça fait ?

Ce code va récupérer l'adresse ip de votre Pi et ensuite l'envoyer par courriel vers l'adresse de messagerie spécifiée. Il est inspiré par le besoin d'accéder au Pi via SSH ou d'autres protocoles réseau en l'absence de moniteur et sans avoir à le changer d'un réseau à l'autre. Le code se base sur un serveur SMTP Gmail. Vous devrez le modifier un peu pour d'autres serveurs (ce qui ne rentre pas dans le cadre de ce guide)

De quoi avez-vous besoin ?

Un Raspberry Pi fonctionnel, avec accès réseau

Quelles compétences sont requises ?

Niveau moyen. Vous devez être à l'aise pour naviguer sur un système linux et aussi pour utiliser sudo (si vous voulez utiliser ce script, il y a des chances que vous ayez une petite expérience de l'invite de commande).

Aperçu de ce guide

Vous devez

  • Créer un script python et l'enregistrer dans un répertoire
  • Rendre le script python exécutable
  • Éditer /boot/boot.rc

Allons-y

Création du script python

Copiez et collez le code suivant dans un éditeur de texte (je suis moi-même adepte de nano)

import subprocess
import smtplib
import socket
from email.mime.text import MIMEText
import datetime
# À remplacer par vos propres informations de compte
to = 'moi@exemple.com'
gmail_user = 'test@gmail.com'
gmail_password = 'votremotdepasse'
smtpserver = smtplib.SMTP('smtp.gmail.com', 587)
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo
smtpserver.login(gmail_user, gmail_password)
today = datetime.date.today()
# Très spécifique à Linux
arg='ip route list'
p=subprocess.Popen(arg,shell=True,stdout=subprocess.PIPE)
data = p.communicate()
split_data = data[0].split()
ipaddr = split_data[split_data.index('src')+1]
my_ip = 'Votre ip est %s' %  ipaddr
msg = MIMEText(my_ip)
msg['Subject'] = 'IP du RaspberryPi à %s' % today.strftime('%b %d %Y')
msg['From'] = gmail_user
msg['To'] = to
smtpserver.sendmail(gmail_user, [to], msg.as_string())
smtpserver.quit()

Enregistrez le script sous un nom parlant tel que 'startup_mailer.py' et prenez note de son chemin (comme /home/pi/Code/startup_mailer.py)

Pour faire bonne mesure, rendez-le exécutable

sudo chmod +x startup_mailer.py

Édition de /boot/boot.rc

En utilisant encore une fois votre éditeur de texte, ouvrez /boot/boot.rc (cela suppose que vous avez déjà renommé ce fichier en boot.rc Sinon, voir RPi_Advanced_Setup). Par exemple :

sudo nano /boot/boot.rc

Ajoutez les lignes suivantes en fin de fichier, en faisant la modification avec le chemin de votre répertoire et enregistrez.

#Script pour envoyer l'adresse ip par courriel au redémarrage
python /home/pi/Code/startup_mailer.py

Alternative si Rasbian est utilisée

Si vous utilisez Rasbian, vous n'aurez pas de fichier /boot/boot.rc. À la place, vous pouvez éditer /etc/rc.local comme ceci :

 sudo nano /etc/rc.local

Ajoutez la ligne python afin que le fichier ressemble à ceci :

 # rc.local
 #
 # This script is executed at the end of each multiuser runlevel.
 # Make sure that the script will "exit 0" on success or any other
 # value on error.
 #
 # In order to enable or disable this script just change the execution
 # bits.
 #
 # By default this script does nothing.
 # Print the IP address
 _IP=$(hostname -I) || true
 if [ "$_IP" ]; then
   printf "My IP address is %s\n" "$_IP"
   python /home/pi/Code/startup_mailer.py
 fi
 exit 0

Pour finir

Redémarrez votre Pi et vous devriez recevoir un courriel avec votre adresse ip