Présentation
Documentation
L'équipe
Sérialisation
 
Programmes
Objets
Libs Utilitaires
Libs Internes
   
 
Editeur
Syntaxes
Windows
Versions
   

SCR/AL1 - TOME I. Les programmes

45. s4sync : synchronisation de packages via TCP/IP et s4issrv

Le programme s4sync permet d'assurer une synchronisation de fichiers entre un serveur et des clients. La configuration type est celle d'un réseau de PC avec un serveur sur lequel se trouve toujours la dernière version d'un programme avec les fichiers associés.

A chaque démarrage du programme sur les PC clients, s4sync permet de

Les avantages de cette solution sont nombreux :

Méthode

Le programme s4issrv doit tourner sur le serveur. Un fichier (.pck) décrivant le package doit également se trouver sur le serveur, idéalement dans le répertoire de travail de s4issrv (répertoire où s4issrv a été lancé).

Le fichier de package est analysé et, pour chaque fichier, la taille, la date et l'heure sont comparés. Si la taille est différente ou si le fichier sur le serveur est plus réccent, le fichier est copié. Sinon (sauf avec l'option -force), le fichier n'est pas modifié.

Format du fichier de package (.pck)

Le fichier de description du package contient les informations suivantes :

[FILES]
liste de fichiers et répertoires nécessaires

[DIRS]
Source=répertoire sur le serveur où se trouvent les fichiers de la section [FILES]
Dest=répertoire par défaut d'installation sur le client
StartDir= répertoire de travail par défaut sur le client

[EXEC]
cmds=liste de commandes à exécuter sur le client lorsque l'installation est
terminée. Le séparateur est le point-virgule.

La section [FILES] peut contenir des noms de directory ou des nom avec *. Dans le cas des noms de directory, tous les sous-répertoires et sous fichiers sont copiés (attention à ne pas mettre c:\!).

Par exemple :

    [FILES]
subdir
*.txt
myprog.exe
mydir\*.c

Le programme s4sync

Le programme est lancé avec les paramètres appropriés. Sa syntaxe est :

S4Sync : synchonize files between client and server
------
Syntax :
scr4_syn [-srv ...] [-p ...] -pack ... [-dest dir] [-exec ...]
[-startdir dir] [-silent] [-force] [-debug ...]
[-delay ...] [-ignore] [-zip ...] [-bufsize ...]
[-login user/key] [-nocrc]

-srv serveraddress : synchronization server (dft localhost)
-p portnumber : port on the server (default 5000)
-pack packname : name of the pack file (.pck) on the server
-dest dirname : installation dir (replaces .pck definition)
-startdir dirname : start programs (-exec) in startdir (overrides .pck)
-exec "pgm parms" : program to start after sync completion
-silent : no message
-force : do not check - load unconditionaly
-nocrc : check only on date and size
-debug 0 : no debug(dft)
-debug 1 : session msgs in scr4_syn.log
-debug 2 : session + socket msgs in scr4_syn.log
-delay msec : delay between messages (Windows only)
-ignore : ignore errors (files not found)
-zip level : compression level (0-9) - dft=6
-bufsize nnn : tcpip packet size (512-16384)
-login username/key : identification (required)
-crc : vérifie le CRC32 des fichiers pour les comparer au lieu de la taille et la date/heure
-

Exemples :
scr4_syn -srv www.xon.be -pack mt -exec "mt.exe myfile.c"
scr4_syn -srv www.xon.be -pack scr4win -silent -dest c:\scr

Il faut au moins fournir le nom sur serveur (-srv) et le nom du package (-pack). Les autres paramètres sont extraits du fichiers .pck ou fixés par défaut.

-srv serveraddress

Nom du serveur ou adresse IP.

-p port

Porte sur laquelle tourne s4issrv. Par défaut, il s'agit de la porte 5001 (attention, avant c'était 5000).

-pack packname : name of the pack file (.pck) on the server

Nom du fichier .pck décrivant le package.

-dest dirname

Répertoire local d'installation. Par défaut, celui-ci est celui défini dans le fichier .pck [DIRS]DEST=.

-startdir dirname

Répertoire local d'exécution. Par défaut, celui-ci est celui défini dans le fichier .pck [DIRS]STARTDIR=.

-exec "pgm parms"

Programme(s) à exécuter après la synchronisation. Par défaut, celui-ci est celui défini dans le fichier .pck [EXEC]CMDS=.

-silent

Supprime l'affichage des messages en cours de transfert.

-force

Force la copie sans vérification.

-nocrc

Ne calcule pas les crc32 des fichiers pour vérifier leur égalité. Utilise uniquement les dates, heures et taille.

-debug n

Sauve les messages d'avancement dans le fichier s4sync.log.

-delay msec

Délai entre l'affichage des messages à l'écran.

-ignore

Ignore les erreurs. La copie continue, même si un fichier n'est pas trouvé ou ne peut être copié. Si la connexion au serveur ne fonctionne pas, la commande -exec permet de lancer quand-même le programme désiré.

-bufsize nnn

Taille des paquets tcpip (512-16384).

-login username/key

Identification et clé d'encryptage définie dans le fichier scr4_iss.ini sur le serveur.

La variable d'environnement SCR_ISC_LOGIN peut contenir le login et la clé. En l'absence du paramètre -login, le programme recherche cette variable.

Exemples

Application sur un serveur local

Synchronisation et démarrage du programme myprog sur un réseau local. Certains fichiers doivent être copiés localement pour que l'application démarre.

Le fichier de définition du Package est placé sur le serveur dans le répertoire de lancement de s4issrv.

    Myprog.pck
----------
[FILES]
myprogc.exe
myprog.scr
myprog.cmt
*.pr
tmp

[DIRS]
Source=c:\packages\myprog
Dest=c:\xon\myprog

[EXEC]
prog=myprogc.exe

La commande à placer sur le client est, en supposant que le serveur soit 192.168.0.1 et que la porte soit la porte 5000 :

    s4sync -srv 192.168.0.1 -p 5000 -pack myprog

Synchronisation d'utilitaires

Supposons que les utilitaires de SCR/AL1 se trouvent sur la machine www.xon.be. On veut mettre à niveau les utilitaires.

    s4sync -srv www.xon.be -p 5000 -pack scrutil -ignore -dest c:\scr

Si le serveur www.xon.be n'est pas disponible ou si le pack scrutil.pck n'est pas trouvé sur la machine www.xon.be, rien ne se passe. Sinon, tous les fichiers plus récents que ceux de la version dans c:\scr sont recopiés.

Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be