Next Previous Contents

10. Un exemple de transfert de fichier

Pour copier un fichier d'une machine vers une autre, la méthode est toujours la même :

- le "job" et le fichier est mis dans la file d'attente - au prochain appel (sortant ou entrant) uucico fait exécuter les jobs en attante par uuxqt : le fichier est transféré grâce au programme uucp.

10.1 syntaxe

 uucp systeme_source!fichier_a_envoyer  systeme_cible!fichier_destination

10.2 restriction

- le ! (point d'exclamation) est interprété par certains shells (bash, c-shell). Il est donc nécessaire de le protéger par un caractère \ (anti-slash) pour que ça fonctionne.

- pensez aux droits des fichiers. En particulier pouvez vous écrire "fichier_destination" sur "système_cible" ? Rien n'est moins sûr !

C'est pourquoi il existe un répertoire spécial destiné à accueillir les fichiers en provenance d'une autre machine. C'est :

/var/spool/uucppublic    drwxrwxrwt  (1777)   uucp     uucp

(cf. paragraphe 4.8)

Hamster sur la terrine, comme "/var/spool/uucppublic" c'est un peu long à écrire, il existe une abréviation pour désigner ce répertoire. Il s'agit du caractère ~ (tilde).

10.3 exemples

Note : si votre shell n'interprête pas le caractère anti-slash (\) ne le recopiez pas.

Par exemple, écrivez :

uucp  !~/my-doc  robin!~
au lieu de
uucp \!~/my-doc robin\!~

copie /usr/local/doc/Serial-HOWTO dans le répertoire /var/spool/uucppublic de la machine "robin"

uucp batman\!/usr/local/doc/Serial-HOWTO robin\!~

en plus simple (sans le nom de la machine locale) car uucp suppose que si aucun nom de système n'est placé avant le ! (point d'exclamation) vous faites référence à la machine locale :

uucp /usr/local/doc/Serial-HOWTO robin\!~

copie de /var/spool/uucppublic/UUCP-HOWTO dans le répertoire /var/spool/uucppublic/ de la machine "robin" (remarquez la séquence !~ (point d'exclamation tilde) pour désigner le répertoire uucppublic local) :

uucp \!~/UUCP-HOWTO robin\!~

opération inverse : récupérer un fichier qui se trouve sur une machine distante. Pas de problème particulier : la syntaxe est la même.

ex. récupérer advocacy-HOWTO qui se trouve sur la machine "robin" dans votre répertoire /var/spool/uucppublic (remarquez encore une fois la séquence !~ (point d'exclamation tilde) pour désigner le répertoire uucppublic local) :

uucp robin\!~/advocacy-HOWTO \!~

10.4 Etre prévenu et prévenir l'utilisateur distant

Quand vous envoyez un fichier sur une machine distante, il est intéressant de prévenir son correspondant quand cela est fait.

Il suffit d'utiliser l'option "m" pour que uucp prévienne l'expéditeur (vous même) par mail et l'option "n" pour qu'il envoie également un mail de notification à votre correspondant (le destinataire) dès que le transfert a eu lieu.

exemple

uucp -m  -nvictor \!~/UUCP-HOWTO robin\!~

(notez le nom de l'user 'victor' accolé à l'option 'n')

exemple de mail reçu par "victor@robin.gotham.city"

   ------------------------------------------------------
   Message from UUCP on batman Thu May 13 15:54:45 1999

   The file
         /var/spool/uucppublic/UUCP-HOWTO
   was  successfully transferred to
          robin!~
   as requested by
          denis
   ------------------------------------------------------

Avec l'option 'm' l'expéditeur reçoit lui aussi un message de même genre. Pratique non ?

10.5 Permettre le 'relayage' (forwarding)

Il est possible à un système de relayer les fichiers.

exemple:  A-----------> B -----------> C

A veut envoyer un fichier à C mais l'envoie à B et c'est B qui l'enverra à C (ou C qui viendra le chercher sur B, selon que ce soit B ou C qui appelle).

Pour que cela soit possible il faut rajouter dans /etc/uucp/sys le mot-clef 'forward' (des variantes sont possibles : 'forward-to' et forward-from').

exemple

   #/etc/uucp/sys de la machine 'robin'
   #-------------------------------------------------------------
   #
   # forward (to et from ensemble) pour 
   # les machines amies (de confiance) suivantes: joker et batman.
   #
   forward  joker batman
   #-------------------------------------------------------------

Syntaxe : il suffit d'indiquer le cheminement du fichier au travers des machines successives au moyen du caractère ! (point d'exclamation). En jargon UUCP ce chemin avec des '!' s'appelle le "Bang Path" :

exemple : on envoie UUCP-HOWTO sur la machine joker via la machine robin

uucp \!~/UUCP-HOWTO  robin\!joker\!~

si votre shell n'interprète pas le back slash (\) écrivez simplement

uucp !~/UUCP-HOWTO  robin!joker!~

Next Previous Contents