Caméra de surveillance à base d’un Raspberry PI

Il y a de cela quelques mois, je cherchais à installer un système de vidéo surveillance au bureau de mon père, j’ai donc trouvé des caméras IP pas trop chers sur le net. l’inconvénient est que ces cameras ne sont pas forcement compatibles avec les systèmes GNU/Linux. Certaines fournissaient des logiciel (qui ne fonctionnent que sous Wndows), d’autres des interfaces web, pratique pour visualiser mais aucunes ne proposait de sauvegarder le flux dans des fichiers. C’est là que m’est venu l’idée et l’envie de bidouiller mon Raspberry pour en faire une caméra de surveillance.

Vous avez un Raspberry PI(RPI), sa caméra et vous voulez fabriquer un système de vidéo surveillance pas cher?

Matériel nécessaire

  • Un Raspberry Pi.
  • Une caméra du RPi.
  • Une alimentation 5 volts avec une micro USB pour le RPI.
  • Une carte SD pour l’OS du RPI (Raspian).
  • Un accès au réseau local (Câble Ethernet ou dongle WiFi).
  • Une caméra factice qui puisse contenir le RPI et sa caméra ou alors ce boitier ou celui ci.

Principe de fonctionnement

La caméra du RPI filme une scène (grâce à la commande raspivid) et envoie le flux vidéo à VLC qui se charge de le diffuser sur le réseau(protocole HTTP), Les clients (ordinateurs, smartphones…) captent le flux streamé afin de le visualiser ou l’enregistrer dans un fichier.  Les moyens de visionnages sont multiples, on peut utiliser VLC, FFMPEG ou voir meme une page web.

Installation

Pour commencer il faut installer la caméra du RPI, Voici un bon tuto qui explique les étapes à suivre.

Pour le reste voici une archive qui contient les scripts de configuration. Il vous suffira donc de décompresser l’archive et exécuter le script « script_configuration »

unzip surveillance.zip
cd surveillance
sudo ./script_surveillance

Sinon vous pouvez suivre les étapes suivantes:

Premièrement,  il faut installer l’outil qui diffusera le flux de la caméra sur le réseau (à savoir VLC)

sudo apt-get install -y vlc

si vous tentez d’exécuter VLC en root, vous aurez un merveilleux message d’avertissement

VLC is not supposed to be run as root. Sorry.
If you need to use real-time priorities and/or privileged TCP ports 
you can use vlc-wrapper (make sure it is Set-UID root and 
cannot be run by non-trusted users first).

pour résoudre se léger soucis, nous allons exécuter la commande suivante:

sudo sed -i 's/geteuid/getppid/g' `which vlc`

Scripts

Voici le script qui nous servira à lancer la caméra et diffuser le flux sur le réseau

sudo vim /usr/bin/camera
#!/bin/bash
# Création du dossier qui contiendra le fichier de logs
 if [ ! -d "/var/log/camera" ]
 then
      mkdir /var/log/camera
 fi
#  Capture du flux de la camera et sa diffusion sur le réseau
raspivid -t 0 -w 800 -h 600 -fps 25  -b 200000 -o - | cvlc -vvv stream:///dev/stdin --sout-http-user username --sout-http-pwd password --sout '#standard{access=http,mux=ts,dst=:8554}' :demux=h264 2> /var/log/camera/camera.log

Un peu d’explication, raspivid est le programme qui se charge de filmer. le -t 0 permet de filmer indéfiniment, -w et -h définit la résolution, -fps est le nombre d’image par seconde(ici 25 image/s), -b est en gros la bande passante allouées, -o – veut dire qu’on envoie le flux non pas vers un fichier mais vers une autre commande (d’où le pipe « | » vers VLC). VLC se charge de capturer le flux de la caméra et de le diffuser sur le port 8554.  Les sorties sont stockées dans le fichier /var/log/camera/camera.log . Ici VLC diffusera le flux avec une protection (username/password) d’où la présence des paramètres, vous pouvez bien entendu les supprimer.

--sout-http-user username --sout-http-pwd password

Nous attribuons les droits d’exécution au script

sudo chmod a+x /usr/bin/camera

Nous pouvons tester le script en le lançant:

/usr/bin/camera

la Led rouge de la caméra devrait s’allumer, nous pouvons désormais visualiser la vidéo à partir d’un autre PC en utilisant VLC ou FFMPEG par exemple:

vlc http://username:password@adresse_du_RPI:8554/

ou

ffplay http://username:password@adresse_du_RPI:8554/

L’on peut bien sûr intégrer le flux diffusé dans une page web afin de les visualiser à condition que le plugin VLC soit installé sur la machine client. Ceci est grâce à la balise object

Capture d'écran de 2014-08-03 17:35:16

Création du service

Tout d’abord nous allons créer le script qui contiendra le service camerad

sudo vim /etc/init.d/camerad
#!/bin/bash
#set -xv

### BEGIN INIT INFO
# Provides:          camerad
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Démon du système de surveillance 
### END INIT INFO

if [ $EUID != 0 ]
then
	echo "Ce script doit être exécuté en tant que root."
	exit -1
fi

if [ ! -d "/var/log/camera" ]    
then
	mkdir /var/log/camera 
	chmod 777 -R /var/log/camera
fi

start()
{
    raspivid=`ps aux | grep '[r]aspivid' | awk '{print $2}'`
    if  [ -z "$raspivid" ]
    then
        echo "Démarrage de camerad"
        /usr/bin/camera &
    else
        if [ ! -z "$raspivid" ];
        then
                echo "raspivid est déja lancé. PID=$raspivid ";
        else
                echo "raspivid est arrêté.";
        fi

	vlc=`ps aux | grep '/usr/bin/[v]lc' | awk '{print $2}'`
        if [ ! -z "$(ps aux | grep [v]lc | awk '{print $2}')"  ];
        then
                echo "vlc est déjà lancé. PID=$vlc ";
        else
                echo "vlc est arrêté.";
        fi
    fi
}

stop ()
{
    raspivid=`ps aux | grep '[r]aspivid' | awk '{print $2}'`
    if [ ! -z "$raspivid" ];
    then
	echo "Arrêt de raspivid."
        killall raspivid;
    else
        echo "raspivid est déjà arrêté.";
    fi

    vlc=`ps aux | grep '/usr/bin/[v]lc' | awk '{print $2}'`
    if [ ! -z "$vlc" ];
    then
        echo "Arrêt de vlc." 
  	killall vlc;
    else    
        echo "vlc est déjà arrêté.";
    fi  
}

status ()
{
    raspivid=`ps aux | grep '[r]aspivid' | awk '{print $2}'`
    if  [ -z "$raspivid" ]
    then
        echo "raspivid est arrêté";
    else
        echo "raspivid est lancé. PID=$raspivid";
    fi
    
    vlc=`ps aux | grep '/usr/bin/[v]lc' | awk '{print $2}'`
    if [ -z "$vlc" ]
    then
         echo "vlc est arrêté";
    else
         echo "vlc est lancé. PID=$vlc";
    fi
}

case "$1" in
  start)
    start
    ;;

  stop)
    stop
    ;;

  restart)
    stop;
    start;
    ;;

  status)
    status
    ;;

  *)
    echo "Usage: /etc/init.d/camerad {start|stop|restart|status}"
    exit 1
    ;;
esac

exit 0

Nous attribuons les droits d’exécution au script

sudo chmod a+x /etc/init.d/camerad

Il ne nous reste plus qu’a faire en sorte que notre service soit lancer au démarrage du RPI

sudo update-rc.d camerad defaults

si vous voulez retirer le script de la séquence de boot faites:

update-rc.d -f camerad remove

Pour lancer et arrêter le service

sudo service camerad start                # démarrage du service
sudo service camerad stop                 # arrêt du service
sudo service camerad status               # afficher l'état du service
sudo service camerad restart              # arrêt et démarrage du service

Vérifiez que le flux est bien lisible d’un autre ordinateur.

Script pour enregistrer le flux streamé

Une fois votre RPI en mode « streaming », vous avez la possibilité le visionner le flux avec des lecteur tel que VLC ou FFPLAY, dans cette partie je vais vous montrer un petit script qui enregistrera le flux dans des fichiers de 10 minutes.

vim /usr/bin/CamSave
#!/bin/bash
# script pour enregistrer les flux des cameras dans un fichier

if [ "$#" != 2 ]
then
   echo "Nombre d'arguments incorrect"
   echo "Usage: ./CamSave http://username:password@adresse_RPI:8554/  /home/user/Bureau/"
exit -1;
fi

while [ 1 ];
do
fichier=`date +"%d_%m_%Y-%H:%M:%S.mp4"`
repertoire=`date +"%d_%m_%Y/"`
if [ ! -d "$2$repertoire" ]
then
   mkdir $2$repertoire
fi
cvlc $1 --run-time=600 --sout file/ts:$2$repertoire$fichier vlc://quit  >>  /var/log/camera/CamSave.log 2>&1  &
sleep 580

fichier=`date +"%d_%m_%Y-%H:%M:%S.mp4"`
repertoire=`date +"%d_%m_%Y/"`
if [ ! -d "$2$repertoire" ]
then
   mkdir $2$repertoire
fi
cvlc $1 --run-time=600 --sout file/ts:$2$repertoire$fichier vlc://quit  >>  /var/log/camera/CamSave.log 2>&1  &
sleep 5
done

exit 0

On attribut les droits d’exécution:

sudo chmod a+x /usr/bin/CamSave
sudo chmod a+w  /var/log/camera/CamSave.log

Conclusion

Voila vous avez tout ce qu’il faut pour:

  • Capturer le flux d’une caméra de RPI et streamer sur le réseau
  • Lire le flux avec un lecteur qui supporte le protocole HTTP (VLC ou FFMPEG)
  • Enregistrer le flux dans un fichier.

Perso j’utilise un petit programme que j’ai développé en Qt pour visualiser plusieurs caméras en même temps, il faudra aussi installer GSTREAMER et FFMPEG. Je mettrai bientôt à jour cet article pour pour y poster le code du programme Qt.

Publicités

45 réflexions sur “Caméra de surveillance à base d’un Raspberry PI

  1. Bonjour, un grand merci pour l’article , je trouve juste dommage que VLC n’a pas encore mise en disposition le plugin pour les navigateurs sous Android 😥

  2. Super merci !
    Est-il possible d’envoyer par mail, les snapshots pris ?
    Les config que j’ai pu trouver ne fonctionnent pas.
    Merci.

    • Bonjour,
      oui il est possible d’envoyer les images prises par la cam. perso j’utilise mutt en ligne de commande, il est assez simple a configurer. voici un exemple de fichier .muttrc pour un compte gmail (il faudra modifier les adresse imap et smtp)
      # configuration de base
      set realname = "Nom prénom"
      set header_cache =~/.mutt/cache/headers
      set certificate_file =~/.mutt/certificates
      set message_cachedir =~/.mutt/cache/bodies

      # # configuration imap
      set spoolfile=imaps://imap.googlemail.com:993/INBOX
      set imap_user = "adresse_mail@gmail.com"
      set imap_pass = "Password_mail"
      set imap_passive="no"
      set imap_check_subscribed="yes"
      set imap_list_subscribed="yes"

      # # configuration SMTP
      set smtp_url = "smtps://adresse_mail@smtp.gmail.com:465/"
      set smtp_pass = "Password_mail"
      set from = "adresse_mail@gmail.com"
      set use_envelope_from=yes # Pour que postfix ou sendmail ne change pas votre from

      # # petit plus
      # set trash = "imaps://imap.gmail.com/[Gmail]/Trash"
      # set postponed="+[Gmail]/Draft"
      # set folder = "imaps://imap.gmail.com:993/"
      # set imap_check_subscribed
      # set mail_check = 120
      # set timeout = 300
      # set imap_keepalive = 300
      # set signature='/signature.txt'

      # # locales FR pour les nom des jours et mois
      set locale="fr_FR"

      # # Format de date
      set date_format="%A %d %b %Y à %H:%M:%S (%Z)"
      #
      # # phrase d'intro pour réponse quotée
      set attribution="Le %d, %n a écrit :"
      set forward_format="[Fwd: %s]"
      set forward_quote
      #
      # #
      # mailboxes !
      #
      # #Editeur
      # set edit_hdrs
      # auto_view text/html
      set editor="/usr/bin/vim" # indiquer ici votre éditeur de texte préféré.

      # color attachment magenta default # attachments
      # color body brightred default "(ftp|http)://[^ ]+" # point out URLs
      # color body brightcyan default [-a-z_0-9.]+@[-a-z_0-9.]+ # e-mail addresses
      # color bold brightblue default # boldface text
      # color error brightwhite red # error messages
      # color hdrdefault magenta default # default color of message header
      # color header brightmagenta default ^(From): # From and Subject header
      # color header brightwhite default ^(Subject): # From and Subject header
      # color header brightwhite default ^(Date): # Date header
      # color header white default ^(In-Reply-To):
      # color indicator brightred default # indicator bar
      # color markers brightblue default # wrapped line markers (+)
      # color message brightblack green # status messages
      # color normal default default # default
      # color quoted yellow default # quoted text, 1st quote level
      # color quoted1 green default # quoted text, 2nd quote level
      # color quoted2 brightblue default # quoted text, 3rd quote level
      # color quoted3 blue default # quoted text, 4th quoet level
      # color search black yellow # matched search patterns in pager
      # color signature red default # the signature (after sigdashes)
      # color status default blue # status lines
      # color tilde brightblue default # ``~'' used to pad blank lines
      # color tree green default # thread tree in the index menu
      # color underline brightgreen default # underlined text
      #
      #
      # # Pour la gestion des accents
      # set locale="iso-8859-15"
      #
      # set pager_index_lines=7
      # set pager_stop

      et pour envoyer un mail il suffit de taper la commande suivante

      echo "Corps du mail" | mutt -s "Objet du mail" adresse_destinataire@fournisseur.com -y -a fichiers_à_envoyer

      Voilà voilà, si besoin de plus de précision me faire signe 😉

  3. Excellent votre article.
    Mon intérêt va vers le script pour enregistrer le flux streamé car à la base raspivid ne peut que streamer ou enregistrer dans un fichier. Mais que l’un ou l’autre. Il faut choisir.
    vlc qui capture et enregistre le flux est une bonne idée.
    J’ai 2 questions :
    Peut-on diffuser et enregistrer sur le même Raspberry ? Car 2 exécutions du process cvlc sont requis (1X diffuser et 1X enregister) : le système le permet ?
    Ensuite, je me débrouille un peu en script linux mais pas assez que pour apporter une modification. J’aurais voulu supprimer automatiquement (dans votre script) les fichiers vidéos enregistrés plus vieux que 24 ou 48h afin de ne pas remplir la carte SD et planter le système. Comment faire cela avec des noms de fichiers aussi compliqués ? 😉
    Merci.

    • Bonjour,
      il est possible de lancer 2 instances de vlc sur le même raspberry. donc d’un coté raspivid utilise vlc pour streamer son flux et d’un autre coté on utilise vlc pour enregister ce flux dans des fichiers. d’ailleurs l’on peut exécuter le script CamSave sur le raspberry, par contre je déconseille d’utilisé la carte SD comme support d’enregistrement (le nombre d’écriture sur ce type de carte est limité), une solution consiste à booter sur une clé USB, voici un article de framboise314 qui explique les étapes à suivre.
      Pour ce qui est de la suppression des fichiers antérieur a 24 ou 48h, il suffit d’executer la commande find périodiquement grâce à cron (par exemple), voici un exemple de commande à faire exécuter par cron
      pour les 24h
      find /home/user/archive_video -mtime 1 -exec rm -fr {} \;
      pour les 48h
      find /home/user/archive_video -mtime 2 -exec rm -fr {} \;

      pour finir il suffit de mettre une de ces deux commandes dans « crontab -e » pour qu’il s’exécute toutes les heures par exemple.

      J’espere que que ça peut aider 😉

      • Oui tout à fait, un tout grand merci.
        Pour les 2 instances, je confondais avec raspivid pour lequel c’est impossible d’accéder en même temps au même device video (lancer 2X Raspivid pour streamer et enregistrer). Mais c’est vrai que vlc n’accède pas au device.
        Quand à crontab : merci de me rappeler les fondamentaux de Linux : c’est une très bonne solution.
        Clé usb plus endurante en R/W qu’une bonne carte SD ? Sans doute, je n’avais pas réfléchi à cet aspect technique.

  4. C’est joli, je vois que tu as finalement refait la même chose que Motion, sauf qu’au lieu de prendre une caméra USB en entrée, tu prends la Pi Cam sans ajouter le casse-tête de configuration de ffmpeg. Et tu évites soigneusement le cauchemar ZoneMinder 🙂

    Une question quand même, je suppose que ton script peut être légèrement modifié pour envoyer vers un serveur externe en FTP, mettons, mais dans ce cas qu’arriverait-il si le réseau, de façon temporaire, devient inaccessible, ou que le débit tombe à zéro? Est-ce que tout planterait? J’imagine qu’on peut enregistrer localement et laisser tourner un autre script se chargeant de l’upload du dossier sur FTP.

    Est-ce que ce script permet d’éviter les problèmes d’encodage directement par raspivid, qui n’affiche ni le bon temps de lecture, ni ne ferme correctement le conteneur (illisible ailleurs que dans omxplayer).

    Et finalement, que dit la charge CPU du Pi pendant ce genre de travail?

    • Merci pour ton commentaire, en effet l’on peut modifier le script pour enregistrer le flux sur un serveur FTP, il suffirait de monter le dossier distant(FTP) sur le raspberry et y et y executer le script comme s’il enregistrer en local.
      concernant les défaillances du réseau, le script ne plantera pas (du moins de ce que j’ai pu essayer). pour l’encodage j’utilise VLC qui se charge d’encoder le flux vidéo de la caméra et le diffuse sur le réseau, donc s’il faut agir sur l’encodage, il faudra le faire au niveau de la config de VLC. ces script ne consomme vraiment pas de CPU, en moyenne cela consomme dans les 4% à 10% de CPU.
      Cordialement

      • Et avec, justement, ce montage d’un dossier distant localement avec sshfs ou son équivalent pour FTP, que se passerait-il lors d’une défaillance réseau? Ironique que je parle de ça alors que j’en subis une depuis 3h du matin :/

  5. Bonjour
    Super tuto, je suis en train d’installer ça sur ma RPI.
    J’ai un petit souci avec le script CamSave pour enregistrer le flux streamer sur la RPI en regardant les logs je trouve :

    [0x17f6730] dummy interface: using the dummy interface module…
    [0x18136b0] access_http access error: cannot connect to 192.168.0.7:8554
    [0x18136b0] access_mms access error: cannot connect to 192.168.0.7:8554
    [0x180ef50] main input error: open of `http://192.168.0.7:8554/’ failed
    [0x180ef50] main input error: Your input can’t be opened
    [0x180ef50] main input error: VLC is unable to open the MRL ‘http://192.168.0.7:8554/’. Check the log for details.

    Auriez vous une idée ?
    merci d’avance

    ps: VLC media player 2.0.3 Twoflower (version de vlc utilisée)

  6. Bonjour,
    merci de cette réponse rapide.
    En lançant VLC depuis une autre machine cela fonctionne j’accède au streaming.
    Je voudrai ensuite pouvoir enregistrer le streaming depuis la RPI

  7. Bonjour,
    Je n’ai rien changé au script télécharger depuis votre archive.
    Je pense avoir un souci avec VLC

    [0x19788a0] inhibit interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
    [0x19788a0] main interface error: no suitable interface module
    [0x19746a8] main interface error: no suitable interface module
    [0x18e88f0] main libvlc error: interface « globalhotkeys,none » initialization failed
    [0x19746a8] dummy interface: using the dummy interface module…
    [0x198cd50] access_http access error: cannot connect to 192.168.0.6:8554
    [0x198cd50] access_mms access error: cannot connect to 192.168.0.6:8554

    • Je pense que le problème vient du fait que vous n’avez pas spécifiez le username et le password dans l’adresse du RPI.
      Avez-vous specifier un username/password dans le script de streaming « –sout-http-user username –sout-http-pwd password » ? si oui il faudra indiquer cela dans l’URL fournit au script « CamSave »

  8. Bonjour,

    Merci pour cet excellent tuto.
    J’ai une petite question, comment faire pour que raspivid ne diffuse plus le flux sur la sortie HDMI du RPI?
    Merci

  9. Hmmm, avec la configuration par défaut il y a un lag épouvantable en streaming. Je sais bien que le Pi n’est pas une fusée, mais 10 secondes de lag, n’est-ce pas un peu élevé pour une caméra de surveillance? J’imagine que ça aurait rapport avec le buffer, mais là encore il y a tellement d’options que je ne sais trop laquelle changer.

    Ou alors je manque quelque chose d’évident.

    • Oupla, effectivement 10 secondes c’est énorme.
      Bizare j’ai refait des tests chez moi et les latences ne dépassent pas le 2 secondes pour le wifi et les 1 seconde en ethernet.

  10. salut, je suis en train de réaliser une vidéo surveillance avec Raspberry Pi, je suis trompée au niveau de sauvegarde des images (à partir de la vidéo)!!!! Aidez moi svp!!
    Est ce que je peux utiliser ma webcam à la place du module caméra (dédié à la Raspberry Pi)??

  11. Bonjour, pour le dernier script qui permet d’enregistrer le flux streamé, l’enregistrement de cette video est bien sous format mp4 si j’ai bien compris le code cependant ce fichier n’est pas créer a la fin de l’enregistrement. Seul le dossier avec la date est créer mais ce dossier est vide.

    • Bonjour,
      Je pense que le problème vient du fait que vous n’ayez pas les droits sur le dossier de log « /var/log/camera/CamSave.log », comme « /var/log » est un dossier où sont stocker les logs système, il est naturellement pas accessible au simple utilisateur. Il vous suffit de modifier le script en remplaçant le dossier « /var/log/camera/camsave.log » le dossier utilisateur « /home/Arhouston/log/camsave.log » par exemple.

      • Merci de votre réponse, c’est bien ce que j’ai fait le lendemain ou je vais ai envoyée mon premier message.

        J’ai une raspberry pi b+ sur lequel j’ai branché un capteur infrarouge permettant de détecter une presence.
        J’ai écrit le script bash permettant d’enregistrer une vidéo au moment ou il y’a une détection de mouvement et c’est avec surprise dans mes recherches que je tombe sur une de vos réponse qui a partir d’un script python ou vous avez éditez un script bash sur le même sujet.

        Ma question: est ce que vous avez installez wiringPi pour pouvoir faire tourner votre script bash sur la détection?

        Merci bien

  12. Oui je veux bien le script…
    Par contre j’ai bien installer wiringPi et fait les tests pour savoir si le gpio répond bien
    gpio -v
    gpio readall

    Tous à l’air de bien fonctionnez

    Mais je me pose une question, si le module infrarouge (Pir motion sensor) est bien branché sur les bons pin sachant que j’ai une raspberry pi b+.
    -pin 2 pour les 5 volt
    -pin 6 pour la sortie
    -pin 37 pour le ground

    • Quelle est la question?
      sinon voilà mon script:
      #!/bin/bash

      etat_courant=0
      etat_precedant=0

      while true
      do
      etat_courant=`gpio read 7`
      if [ "$etat_courant" == 1 ] && [ "$etat_precedant" == 0 ]
      then
      echo "Mouvement détécté!"
      date=`date +"%Y_%m_%d-%H:%M:%S"`
      raspistill -tl 100 -o /home/pi/image_motion/$date%04d.jpg -t 5000 -w 800 -h 600
      etat_precedant=1

      elif [ "$etat_courant" == 0 ] && [ "$etat_precedant" == 1 ]
      then
      echo " Prêt"
      etat_precedant=0
      fi
      # Patienter 100 millisecondes
      sleep +0.1s
      done

  13. Salut je reviens vers toi, car j’ai un code bash permettant d’envoyer les fichiers mp4 enregistrer sur un serveur distant.
    Mon problème est qu’une fois la video sur le serveur distant quand je la telecharge, j’ai bien la meme taille en ko mais la video est inexploitable, on ne peut la visionner. Hors sur la raspberry la video tourne bien sur omxplayer.

    J’utilise lftp pour le ftp.

    Je voulais savoir si tu as deja eu a mettre en place ce genre de fonctionnalité?

    Voici le code que j’utilise actuellement:
    #!/bin/bash
    #sudo apt-get install lftp -> installez lftp
    #sudo chmod nom_du_dossier 777 -> donnez tous les droits au dossier
    # Synchronise deux répertoires en utilisant FTP

    HOST= »ftp.host.fr »
    LOGIN= »login »
    PASSWORD= »password »
    LOCALDIR= »/home/pi/Desktop/PYC »
    REMOTEDIR= »/www/video/ »
    EXCLUDED= »*.*~ »

    function Usage()
    {
    echo -e « \n Synchronise un répertoire local avec un répertoire distant en utilisant FTP »;
    echo -e « \n USAGE: ftpsync local_dir »;
    echo;
    }

    if [ « $LOCALDIR » = «  » ]
    then
    echo -e  » ERREUR: Veuillez spécifier un répertoire local »;
    Usage;
    exit 1;
    fi

    if [ -e « $LOCALDIR » ]
    then
    lftp -c « set ftp:list-options -a;
    open ftp://$LOGIN:$PASSWORD@$HOST;
    binary
    lcd $REMOTEDIR;
    sudo cd $LOCALDIR;
    mirror –reverse \
    –delete \
    –verbose \
    –exclude-glob $EXCLUDED »;
    fi

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s