• Aucun résultat trouvé

Transferts UUCP et execution a distance

Ma^triser Taylor UUCP

12.1 Transferts UUCP et execution a distance

La notion de job2 est vitale pour la comprehension d'UUCP. Chaque transfert de-

mande par un utilisateur via uucp ou uux s'appelle un job. Il est constitue d'une commande a executer sur le systeme distant, et un ensemble de chiers a transferer entre les deux sites. L'une ou l'autre de ces deux parties peut ^etre absente.

Comme exemple, considerons que vous avez tape la commande suivante sur votre machine, qui demande a UUCP de copier le chier netguide.ps sur la machine

pablo

, puis execute la commande lpr a n de l'imprimer:

$ uux -r pablo!lpr !netguide.ps

UUCP n'appelle generalement pas immediatement le systeme distant pour executer un job (sinon vous pourriez tres bien utiliser kermit). Il stocke la description du travail a e ectuer, ce qui s'appelle spouler. Le repertoire dans lequel ces jobs sont temporai- rement stockes s'appelle par consequent le repertoire de spoule, et est generalement /var/spool/uucp. Dans notre exemple, la description de job contiendrait des infor- mations concernant la commande a e ectuer (lpr), l'utilisateur ayant demande cette execution, et quelques autres renseignements. En plus de cela, UUCP doit stocker le chier d'entree, netguide.ps.

Le nom et l'emplacement exact de ces chiers spoules peuvent varier, en fonction des options de compilation. En mode compatible HDB, UUCP les met en general dans un sous-repertoire de /var/spool/uucp du nom du site distant. En mode Taylor, il creera des sous-repertoires sous le repertoire de spoule speci que au site pour les di erents types de chiers.

A intervalles reguliers, UUCP appelle le systeme distant. Lorsqu'une connexion est etablie, il transfere les chiers decrits dans le job, plus tout chier d'entree. Les com- mandes ne seront pas executees immediatement, mais juste apres que la connexion est terminee. C'est le r^ole de uuxqt, qui prend egalement soin de renvoyer tout job destine a un autre site.

Pour distinguer les jobs les plus importants des autres, UUCP associe un grade a chacun. Il s'agit d'une simple lettre, allant de 0 a 9, de A a Z et de a a z, par ordre de priorite decroissante. Le courrier est generalement spoule avec le grade B ou C, alors que les News Usenet le sont avec le grade N. Plus le grade est eleve, plus le job sera transfere avant les autres. Ces grades peuvent ^etre assignes par l'option-glors

de l'appel de uucp ou uux.

Vous pouvez aussi interdire le transfert en dessous d'un certain grade a certaines heures; c'est le grade maximum de spoule autorise pendant une communication, dont la valeur par defaut est z. Notez que la terminologie est assez ambigue ici: un chier ne sera transfere que si le grade est egal ou superieur a cette valeur.

2:Le motjobest mis a toutes les sauces en informatique; il serait vain de vouloir en imposer un

12.1.1 Fonctionnement interne de uucico

Pour comprendre pourquoi uucico a besoin de conna^tre certaines choses, une breve

}

description de la facon dont il se connecte a un systeme distant sera tres utile. Lorsque vous executez uucico -ssystemedepuis la ligne de commandes, le programme

doit d'abord realiser une connexion physique avec le correspondant. La methode de- pend du type de liaison a employer; dans le cas d'une ligne telephonique par exemple, il doit trouver un modem, et le faire numeroter. Sur TCP, il doit appeler gethostby- name(3)pour convertir le nom en adresse IP, trouver quel port ouvrir, et lier cette adresse a la socket correspondante.

Une fois la connexion etablie, il faut mettre en uvre une procedure d'autorisation d'acces. Elle est generalement constituee du classique couple login/mot de passe, et realisee par les programmes habituels getty/login, ou bien lorsqu'il s'agit de sockets TCP, par uucico lui-m^eme. Si l'autorisation d'entree est accordee, la machine appelee lance alors uucico. Sur la machine qui est appelante, le programme uucico est appele ma^tre, et celui de la machine appelee se nomme esclave.

Ensuite, vient le handshake (poignee de main; ce qui est assez realiste puisque les deux programmes se presentent l'un a l'autre): le ma^tre annonce son nom ainsi que certaines autres informations, l'esclave veri e les permissions qui lui sont accordees. Puis, si ce test est valide, prend place la veri cation d'un numero de sequence d'ap- pel. Cette procedure facultative permet de maintenir sur chaque site, un compte des connexions reussies, ces comptes sont alors compares. S'ils ne correspondent pas, la connexion est refusee; ce qui permet d'eliminer les imposteurs.

En n, les deux uucico tentent de se mettre d'accord sur un protocole de transfert, parmi ceux qu'ils ont en commun. C'est lui qui va determiner la facon de transferer les donnees, tester les erreurs, gerer les retransmissions en cas de probleme, etc. Il est necessaire de disposer de plusieurs protocoles en raison des di erents types de connexions possibles. Par exemple, les lignes de telephones necessitent un protocole tres((s^ur)), car ce sont des liaisons de qualite souvent mediocre; alors que les trans-

missions par TCP sont par essence ables et peuvent faire appel a un protocole moins regardant, et plus ecace.

Apres ce premier dialogue, la transmission peut commencer. Chaque c^ote met en route le pilote du protocole choisi, qui peut eventuellement e ectuer une sequence d'initialisation speci que supplementaire.

Le ma^tre envoie tous les chiers destines au systeme esclave en attente dans la queue, et dont le grade est susant. Lorsqu'il a termine, il informe l'esclave qu'il a ni son travail et que la communication peut ^etre coupee. A ce moment, les r^oles s'inversent: le ma^tre devient esclave, et reciproquement. Le nouveau ma^tre envoie alors ses chiers, puis nalement les deux uucico s'echangent des messages indiquant la n des jobs et ferment la connexion.

Nous n'entrerons pas plus dans le detail dans ce guide: consultez soit les sources, soit tout bon ouvrage traitant du sujet. Vous trouverez aussi un document poste

regulierement dans

comp.mail.uucp

sous le nom de uucp internals, decrivant chaque protocole supporte par Taylor UUCP.

12.1.2 La ligne de commandes de uucico

Cette section decrit les options les plus importantes supportees par le programme uucico. Sa page de manuel contient la liste complete, consultez-la si besoin est.

-s systeme Appellesysteme, sauf en cas de restriction horaire. -S systeme Appel force desysteme, quelles que soient les conditions.

-r1 Lance uucico en mode ma^tre. C'est le mode par defaut avec les

options-set-S. Utilisee seule, cette option provoque l'appel tour a

tour de tous les systemes connus, sauf en cas de restriction.

-r0 Lance uucico en mode esclave. C'est le mode par defaut lorsque au-

cune option-sou-Sn'est donnee. Dans ce mode, soit l'entree et la

sortie standard sont considerees comme etant connectees a un port serie, soit le port TCP doit ^etre precise par l'option-p.

-x type,-X type

Met en route les traces de deboguage du type speci e. Plusieurs types peuvent ^etre donnes sous forme de liste separee par des virgules. Les types suivants sont valides: abnormal, chat, handshake, uucp- proto, proto, port, con g, spooldir, execute, incoming et outgoing. Le mot cle all les valide tous. Pour rester compatible avec les autres implementations de UUCP, on peut aussi speci er un nombre, ce qui valide alors le deboguage pour lesnpremiers items de cette liste.

Ces traces sont enregistrees dans le chier Debug, situe dans le re- pertoire /var/spool/uucp.