<p class="spip">Voici un rapide panorama des solutions les plus couramment utiliser pour copier, partager ou synchroniser des fichiers sous GNU/Linux. Comme bien souvent, il n’y a pas de solution miracle. Il existe un choix d’outil adapté à des besoins particuliers.</p>

<p class="spip">Un point de vue personnel va être donné sur l’utilité de chaque outils. Je me place toujours dans le point de vue d’un particulier sur un petit réseau. Les besoins seraient bien différent dans une grande structure.</p>

<h2>Copier un fichier entre deux postes</h2>
<p class="spip">Copier un fichier entre deux postes consiste à le reproduire sur un machine distante.
Deux outils sortent du lot : scp et sftp.</p>

<h3>Scp</h3>
<h4>Description</h4>
<p class="spip">Scp est l’équivalent de "cp" mais par réseau. Il utilise le démon sshd.</p>

<h4>Fonctionnement</h4>
<p class="spip">Son fonctionnement est simple :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># scp fichier guillaume@192.168.0.2:/home/guillaume<br />
guillaume@192.168.0.2's password:<br />
fichier                                          100%    9KB   5.8MB/s   00:00</code></div>
<p class="spip">Il est possible également de rapartrier un fichier de la même manière :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># scp guillaume@192.168.0.2:/home/guillaume/fichier .<br />
guillaume@192.168.0.2's password:<br />
fichier                                          100%    9KB   5.8MB/s   00:00</code></div>
<p class="spip">L’option "-r" permet de récuperer un répertoire complet.</p>

<h4>Conclusion</h4>
<p class="spip">Cette commande est pratique et rapide lorsqu’on connait le fichier à copier, ainsi que le répertoire de destination.</p>

<h3>Sftp</h3>
<h4>Description</h4>
<p class="spip">sftp est un protocole de transfert de fichier qui ressemble au ftp (mais ce n’est pas du ftp sur une couche ssl). Il utilise également le démon sshd.</p>

<h4>Fonctionnement</h4>
<p class="spip">Du fait de la ressemblance avec ftp, son fonctionnement est simple :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># sftp guillaume@192.168.0.2<br />
Connecting to 192.168.0.2...<br />
guillaume@192.168.0.2's password:<br />
sftp> cd /tmp<br />
sftp> put fichier<br />
fichier                                          100%    9KB   5.8MB/s   00:00<br />
sftp></code></div>
<p class="spip">Il est possible d’accéder facilement à une autre machine en sftp grâce à des outils comme nautilus.</p>

<p class="spip">Pour accèdé de façon temporaire à une machine, faire, dans nautilus, Ctrl-l. Dans la fenêtre, taper "sftp://guillaume@192.168.0.2".</p>

<p class="spip">Si vous avez l’habitude d’accèder tout le temps à certaine machine, il est possible de faire un connecteur réseau :</p>

<p class="spip"><span class='spip_document_225 spip_documents spip_documents_center' >
<img src='http://download.tuxfamily.org/assocoagul/drupal-files/spip/ssh.png' width="606" height="472" alt="sftp dans nautilus" title="sftp dans nautilus" /></span><p>

<p class="spip">Maintenant dans le poste de travail ou sur le bureau nous auront un icône nous permettant d’accèder facilement à la machine distante :</p>

<p class="spip"><span class='spip_document_226 spip_documents spip_documents_center' >
<img src='http://download.tuxfamily.org/assocoagul/drupal-files/spip/ssh_icone.png' width="115" height="110" alt="le lecteur réseau" title="le lecteur réseau" /></span><p>

<h4>Conclusion</h4>
<p class="spip">Cette solution est plus adapté au tranfert dont on ne connait pas bien le chemin de destination ou que le préfère copier de façon graphique.</p>

<h2>Partager un fichier</h2>
<p class="spip">Contrairement à la copier, le partage permet à un groupe de personne d’accèder à un même fichier et de le modifier.</p>

<h3>NFS</h3>
<h4>Description</h4>
<p class="spip">NFS est un système de partage de fichier sous UNIX. La version 4 de NFS vient juste de sortir et apporte de grande amélioration que nous attendions tous (notamment pour l’identification). Cette version n’est pas encore à l’heure actuelle finalisé.</p>

<h4>Fonctionnement</h4>
<p class="spip">NFS fonctionne sous la forme de client/serveur.</p>

<p class="spip">Sur le serveur, la configuration de NFS se fait dans /etc/exports :</p>

<p class="spip"><code class='spip_code' dir='ltr'>/home/ftp  192.168.0.3(ro,sync)  192.168.0.2(rw,sync)</code></p>

<p class="spip">Puis lancer la commande suivante pour que le changement soit pris en compte :</p>

<p class="spip"><code class='spip_code' dir='ltr'># exportfs -a</code></p>

<p class="spip">Dans l’exemple précédent, nous autorisons 192.168.0.2 et 192.168.0.3 à accedé en lecture à notre partage. 192.168.0.2 à également accès en écriture.</p>

<h4>Conclusion</h4>
<p class="spip">NFS est pratique pour le partage de fichier entre machine de type UNIX. Son principal défaut est son manque d’évolution depuis un certain temps. La version 4 du serveur comble la plupart des manques que nous pouvons lui trouver.</p>

<h3>Samba</h3>
<h4>Description</h4>
<p class="spip">Même si microsoft n’a pas inventer le protocole cifs/smb, ce protocole est fortement lié au système windows.</p>

<h4>Fonctionnement</h4>
<p class="spip">Le fichier de configuration principal de samba est /etc/samba/smb.conf.</p>

<p class="spip">Voici un fichier de base (pas de controle d’accès) :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>[global]<br />
<br />
   workgroup = gnunux<br />
 <br />
[partage]<br />
   comment = Le service<br />
   path = /home/ftp<br />
   guest ok = yes</code></div>
<h4>Conclusion</h4>
<p class="spip">Samba va être avantageux pour le partage GNU/windows (voir la seule solution dans celle présenté simple à mettre en place).</p>

<h2>Synchroniser des fichiers</h2>
<p class="spip">La synchronisation permet de faire un mirroir d’un répertoire de façon automatique.</p>

<h3>Rsync</h3>
<h4>Description</h4>
<p class="spip">Issu du projet samba, rsync permet de synchroniser des mirroirs. Il est facile à mettre en place et a administrer.</p>

<h4>Fonctionnement</h4>
<p class="spip">Il fonctionne sous un mode client/serveur. Le fichier de configuration principe est /etc/rsyncd.conf :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>motd file = /etc/motd<br />
max connexions = 1<br />
syslog facility = local3<br />
uid = nobody<br />
gid = nobody<br />
hosts allow = 192.168.0.3<br />
[www]<br />
   comment  = fichier dupliquer<br />
   path = /home/ftp<br />
   read only = yes<br />
   list = yes</code></div>
<p class="spip">Le démon est lancé par inetd ou xinetd.</p>

<p class="spip">Pour la partie cliente :</p>

<p class="spip">- Voir le contenu d’un mirroir :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># rsync rsync://192.168.0.25<br />
www             fichier dupliquer<br />
# rsync rsync://192.168.0.25/www<br />
rsync rsync://localhost/www<br />
drwxr-xr-x        4096 2005/03/08 22:51:44 .<br />
-rw-r--r--      128122 2005/03/08 22:51:44 document.zip<br />
-rw-r--r--          19 2005/03/08 22:50:18 test</code></div>
<p class="spip">- Pour le téléchargement :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>rsync -avuz rsync://192.168.0.25/www .<br />
rsync -avuz rsync://192.168.0.25/www .<br />
receiving file list ... done<br />
./<br />
document.zip<br />
                                                                                test<br />
<br />
wrote 1189 bytes  read 163 bytes  2704.00 bytes/sec<br />
total size is 128141  speedup is 94.78</code></div>
<h4>Conclusion</h4>
<p class="spip">Rsync est un système facile a mettre en place pour des mirroirs. Il est surtout adapter à la synchronisation dans un seul sens.</p>

<p class="spip">Il peut géré un mécanisme d’authentification sécurisé.</p>

<h3>Unison</h3>
<h4>Description</h4>
<p class="spip">Unison est un système de synchronisation de dossier entre deux postes.</p>

<h4>Fonctionnement</h4>
<p class="spip">Il faut commencer de faire un fichier de configuration par répertoire synchronisé. Il est possible de créer le fichier de configuration grâce à une interface graphique. Pour la lancer, faire unison -ui graphic. Voici par exemple le fichier de configuration /.unison/test</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>root = /home/ftp/<br />
root = ssh://root@formation1/home/ftp</code></div>
<p class="spip">Puis pour synchroniser, faire :</p>

<p class="spip"><code class='spip_code' dir='ltr'>unison test</code></p>

<h4>Conclusion</h4>
<p class="spip">Unison est surtout adapter à la synchronisation entre deux postes, ou les deux peuvent être modifié.</p>