IFS et interopérabilité

|

 V3R10 : Structure IFS.         "root"
 ................................ / ......................................
 :          -------------------/  | \------------------\                 :
 :        /      /           /    |   \home             \                :
 :      /      /            /     |                      \QLANSrv(FSIOP) :
 :     /    QOpensys       /     QSYS.lib _____________                  :
 :    /    (UNIX "like")  /         \    \             |                 :
 : madir      /          /           \     \           |-QSECOFR.USRPRF  :
 :   |       /  \       /              \     \         |-DSP01.DEVD      :
 :   |      /   user   /                 \     \___                      :
 :   /     bin       QDLS              COMPTA.lib  PAIE.lib              :
 :  / \              /   \                |           |                  :
 : /   \           /       \              |-fic1.FILE |fic11.FILE        :
 :dir1  \     dossier1    QIWSFLR         |           |                  :
 :     dir2    /  \            \          |-fic2.FILE |fic12.FILE        :
 :           /      \           \         |      ######################  :
 :         /          \        PCSADM.EXE |-pgm1 #                    #  :
 :    sous-dossiera   document1                  # la branche QSYS    #  :
 :    /   \                                      #  est inchangée     #  :
 :   /      \                                    # (non arborescente) #  :
 : doca1.doc doca2.doc                           ######################  :
 :.......................................................................:

|

 Chaque répertoire principal définit un système de fichier
  - structure simple (/home, /) plutôt destinée aux PC et au WEB.
  - structure OS/400 (/QSYS.LIB)
  - structure dossiers partagés (/QDLS) clients DOS & OFFICE
  - structure compatible POSIX (QOpensys)
+ Chaque système de fichier à ses particularités (attributs), ses limites.
  ==> transférer un fichier d'un système de fichier vers un autre        entraîne la perte de certains attributs.         (descripteur de document propre aux documents OFFICE par exemple)
+ il est possible de créer un lien (un double ou raccourcis),    pour un fichier ou un répertoire existant dans un autre répertoire.
  le fichier n'est pas dupliqué, il est référencé deux fois.
      commande : ADDLNK

|
 Il existe deux types de lien :

    1/ lien fixe (adresse),
       référence (adresse) d'un document dans un dossier        référence (pointeur) d'un objet dans une bibliothèque.
       le 1er lien est généré automatiquement à la création du fichier,         suppression du fichier à la suppression du dernier lien.        Tous les liens fixes doivent être dans le même système de fichier.        "root", QSYS.LIB et QDLS n'acceptent pas les liens multiples        ==> Uniquement QOpenSys ! 
    2/ lien symbolique (fichier contenant le chemin en clair) créé par ADDLNK ,
        véritable alias (ou double, type raccourcis PC) créé par ADDLNK
        le fichier peut ne pas exister,         le lien peut traverser différents systèmes de fichier.
       QSYS.LIB et QDLS n'acceptent pas les liens symboliques.        les autres peuvent avoir des liens symboliques sur QSYS.LIB ou QDLS !

|

  Chaque profil se voit attribuer un répertoire initial (HOMEDIR)     (Normalement /home/nom-du-profil, '/' s'il n'existe pas)
  Chaque travail possède un répertoire en cours (CURDIR)
    par défaut le répertoire "homedir"
    modifiable par CHGCURDIR ou CD !!!
     le chemin peut être indiqué relativement au répertoire en cours.
     -> dir1/fichier.doc  (le séparateur peut s'écrire "/" ou "\")
     ou sous forme de chemin absolu à partir de la racine
     ->  /dir1/fichier.doc


|

 QOpenSys est implémenté uniquement pour la compatibilté POSIX.
 QLANSrvs (plus tard QNT) est LE support de FSIOP ou serveur intégré..
 QDLS semble destiné aux dossiers OFFICE uniquement, donc sans avenir.
      -support des attributs spécifiques à ce type d'objets (dans QDOC)
      -vitesse (lente), MAIS envoi du document possible via OFFICE.
      -Inscription dans la directory système obligatoire !
 "root" est à utiliser pour les dossiers PC et WEB.
      -en ajoutant un premier niveau à la racine afin que les utilisateurs         ne "voient" pas la totalité de l'EAU à travers Netserver( voir ci-dessous).
      -en créant des liens symboliques pour des dossiers qui resteraient         dans QDLS (?)

|
 Sont apparus au cours des versions :

 +   NFS          : système de fichiers distant pour machines UNIX

                serveur : lancez la commande STRNFSSVR  *ALL
                                puis sous unix "mount -t nfs <votre-as400>/repertoiredistant /repertoirelocal" 

                client : lancez la commande STRNFSSVR  *ALL
                      MOUNT  TYPE(*NFS)
                            MFS(10.3.1.101:/c)    le "répertoire c" à l'adresse 10.3.1.101
                              MNTOVRDIR(/NFS)         alias local
                             OPTIONS('rw,rsize=1024,wsize=1024')
 +   UDFS         : système de fichier compatible à root, mais sur ASP
                   CRTUDFS puis là aussi la commande mount
   +   QFILESVR.400 : système de fichier distant entre AS/400
 +   QOPT         : CD-Rom
 +   QIBM         : répertoire plutot que système de fichier permettant                     d'intégrer les produits IBM utilisant des fichiers                     stream (souvent d'origine UNIX), comme DNS, etc..
                    sous répertoire ProdData : fichiers livrés                                     UserData : paramètres utilisateur
 + QNT            : NT sur serveur de fichier intégré, remplacant QLANSRV  + QNTC           : client des serveurs NT du réseau local via NetServer

|
 FILESYS                  Système de fichiers intégrés 
                                                            Système:   S44B0164 
 Choisissez l'une des options suivantes : 

      1. Commandes de répertoire        2. Commandes d'objet        3. Commandes de sécurité 




 Option ou commande   ===> 1                                                                                   F3=Exit   F4=Invite   F9=Rappel   F12=Annuler   F13=Informations techniques 

|
 FSDIR                      Commandes de répertoire 
                                                            Système:   S44B0164 
 Choisissez l'une des options suivantes : 

      1. Créer un répertoire  MKDIR       2. Enlever un répertoire      RMVDIR       3. Modifier le répertoire en cours  CHGCURDIR ou CD       4. Afficher le répertoire en cours  DSPCURDIR




 Option ou commande   ===> 1                                                                                   F3=Exit   F4=Invite   F9=Rappel   F12=Annuler   F13=Informations techniques 

|
 FSOBJ                         Commandes d'objet 
                                                            Système:  AS400     
 Choisissez l'une des options suivantes :      .......................
                                               : commandes associées :
      1. Gérer les liens d'objets              :       WRKLNK        :
      2. Afficher les liens d'objet            :       DSPLNK        :
      3. Copier un objet                       :       CPY           :
      4. Rebaptiser un objet                   :       RNM           :
      5. Déplacer un objet                     :       MOV           :
      6. Ajouter un lien                       :       ADDLNK        :
      7. Enlever un lien                       :       RMVLNK        :
      8. Verrouiller un objet                  :       CHKOUT        :
      9. Libérer un objet                      :       CHKIN         :
     10. Copier dans fichier STREAM            :       CPYTOSTMF     :
     11. Copier depuis fichier STREAM          :       CPYFRMSTMF    :
     12. Sauvegarder un objet                  :       SAV           :
     13. Restaurer un objet                    :       RST           :
                                               :.....................:
 Option ou commande 
 ===> 
                                                                                
 F3=Exit   F4=Invite   F9=Rappel   F12=Annuler   F13=Informations techniques 


ici, WRKLNK montre la racine (/)



vous pouvez aussi utiliser iSeries navigator

ici, iSeries Navigator montre le contenu de QSYS

Pour un fichier stream (hors QSYS) :

1. le copier/coller avec votre PC est possible
2. vous pouvez aussi lancer l'éditeur
(voyez les propriétés de "système de fichier intégré", pour activer l'éditeur pour tous les fichiers)

revenons au mode commande

|

 FSSEC                         Commandes de sécurité
                                                            Système: AS400      
 Choisissez l'une des options suivantes :      .......................
                                               : commandes associées :
      1. Gérer les droits                      :       WRKAUT        :
      2. Afficher les droits                   :       DSPAUT        :
      3. Modifier les    droits                :       CHGAUT        :
      4. Modifier le propriétaire              :       CHGOWN        :
      5. Modifier le groupe principal          :       CHGPGP        :
      6. Modifier la valeur d'audit            :       CHGAUD        :
                                               :.....................:







 Option ou commande   ===>                                                                                    F3=Exit   F4=Invite   F9=Rappel   F12=Annuler   F13=Informations techniques 

|
                     Copier dans fichier STREAM (CPYTOSTMF)    

 Indiquez vos choix, puis appuyez sur ENTREE. 
 Membre fichier BD d'origine  . . FROMMBR                                Fichier STREAM de destination  . TOSTMF                                 Options de copie . . . . . . . . STMFOPT        *NONE      Options conversion de données  . CVTDTA         *AUTO   CCSID du fichier BD  . . . . . . DBFCCSID       *FILE         Page de codes fichier STREAM . . STMFCODPAG     *STMF       





                                                                            Fin   F3=Exit   F4=Invite   F5=Réafficher   F12=Annuler   F13=Mode d'emploi invite
|
 
D
eux nouvelles commandes en V4R30
      CPYTOIMPF (copy to imported file)
 et
       CPYFRMIMPF (from imported file)

  permettent l'importation/exportation de fichiers physiques de/vers des    fichiers à plat avec séparateurs (type CSV).
le principe est de générer un fichier "à plat" à partir d'un fichier BD   (CPYTOIMPF)
 ou d'insérer des lignes venant d'une autre base (CPYFRMIMPF)
la fonction CPYTOIMPF génère un fichier type CSV dans IFS.

|

                    Copier dans fich importation (CPYTOIMPF)
 Indiquez vos choix, puis appuyez sur ENTREE.
 Fichier d'origine:    Fichier  . . . . . . . . . . . > AF4MBRP1      Nom      Bibliothèque . . . . . . . . >   AF400       Nom, *LIBL, *CURLIB    Membre . . . . . . . . . . . .   *FIRST        Nom, *FIRST  Fichier BD de destination:    Fichier  . . . . . . . . . . .                 Nom      Bibliothèque . . . . . . . .     *LIBL       Nom, *LIBL, *CURLIB    Membre . . . . . . . . . . . .   *FIRST        Nom, *FIRST  Fichier STREAM de destination  . > '/dbfimport/fichier.csv'                                                    Remplacement ou ajout enregs . .   *ADD          *ADD, *REPLACE

 Cela ressemble à une commande Copie mais           vers un fichier en interne      TOFILE           vers un fichier "PC" (stream)   TOSTMF

|
viennent ensuite les critères de séparateurs et de format :

 Délimiteur d'enregistrement  . . >  *CRLF         Valeur alpha, *EOR, *CRLF.  Format fichier d'importation . .   *DLM          *DLM, *FIXED  Délimiteur de chaîne . . . . . .   '"'           Valeur alpha, *NONE  Délimiteur de zone . . . . . . . >  ';'           Valeur alpha  Indicateur de zone indéfinie . .   *NO           *NO, *YES  Symbole décimal  . . . . . . . . >  *COMMA        *PERIOD, *COMMA  Format de date . . . . . . . . .   *ISO          *ISO, *USA, *EUR, *JIS, *Y  Format d'heure . . . . . . . . .   *ISO          *ISO, *USA, *EUR, *JIS
Vous reconnaissez ici tout ce qui permet de constituer un fichier CSV.
Quelques remarques :
Avant la V5R10, la copie de déroulait en EBCDIC, cela n'était pas génant si vous souhaitiez télécharger le fichier via FTP, mais problématique autrement
 pour en faire un fichier au format ANSI (Windows LATIN-1) lancez :
 CPY OBJ('fichier.csv') TOOBJ('fichier2.csv') TOCODEPAGE(1252) DTAFMT(*TEXT)

|

>le format généré est directment reconnu par les tableurs (extension .csv)
>si vous souhaitez en faire un fichier texte, nous vous conseillons comme   caractère séparateur la tabulation, indiquez x'05' (TAB en EBCDIC)   qui devient x'09'(la tabulation en ANSI) lors de la conversion.
>la copie peut se faire directementsur un serveur NT avec Netbios   (pour un serveur UNIX, utilisez NFS)
 a/ vérifiez la configuration Netserver, particulièrement que votre AS/400      est dans le même domaine que votre Contrôleur de Domaine.
 b/ utilisez sur l'AS/400 un profil connu du PDC et ayant le même mot de      passe dans les deux environnements.
 c/ tapez
    CPYTOIMPF FROMFILE(*LIBL/monfichier)
      TOSTMF('/QNTC/monserveurNT/nom-de-partage/fichier.csv)

|

 + pour terminer, les commandes CPYFRMIMPF et CPYTOIMPF possédent de     nouveaux paramètres en V5R10 :
 STMFCODPAG = pour le choix du code page lors des exportations.
             *PCASCII  = 1252 => l'ANSI de MS-Windows              *STDASCII =  850 => l'ASCII DOS.
 FLDDFNFILE = fichier de définition de zones, pour l'importation. ........................................................................... :    Zone1    1              10          11                               : :    Zone2    12             15          16                               : :    *END                                                                 : :     ^         ^            ^           ^                                : :     !           \          !           !                                : :  nom de zone    début     fin        position de l'indication val. nulle: :.........................................................................:  ERRRCDFILE = fichier contenant les enregistrements en erreur.               (fichier source dont la longueur est au moins celle du                 fichier base de données plus 183 c.)  RPLNULVAL  = remplace les valeurs nulles par les valeurs par défaut.

|


  Un certain nombre de ces commandes ont des "alias"
    CD pour CHGCURDIR, MOVE pour MOV, REN pour RNM ,...
  Les commandes SAV, RST, MOV , ...
   peuvent tout à fait être utilisées pour manipuler des objets OS/400.     (mais quel intérêt ???)
  Pour sauvegarder "/microsrv/micro32" :
       SAV DEV('/QSYS.LIB/TAP01.DEVD')            OBJ('/MICROSRV/MICRO32/*') SUBTREE(*ALL)
  Pour sauvegarder tous les dossiers :
       SAV DEV('/QSYS.LIB/TAP01.DEVD)            OBJ(('/*') ('/QSYS.LIB' *OMIT) ('/QDLS' *OMIT) SUBTREE(*ALL)
  Pour sauvegarder/restaurer OBJ('/*') [tout votre système]    vous devez être en mode restreint.

|

Une nouvelle commande est apparue en V5R10 : CHGATR permettant de gérer  les attributs, elle sait travailler sur une arborescence entière
La commande CPY sait aussi, maintenant, copier une arborescence complète
Deux nouvelles options, viennent compléter les possibiblités de WRKLNK
 2 : EDTF = Réviser, 5 : DSPF = Afficher, vues plus haut
 EDTF utilise les principales commandes de SEU (I, D, C, etc...)
  et possède un écran de service (F15) permettant particulièrement de    modifier le CCSID du fichier.
 En effet, si EDTF s'adapte à tous les CCSID en tenant compte de celui   du fichier et du JOB, la création d'un nouveau fichier se fait toujours   avec celui du job (297, EBCDIC Français)
 Il faut alors modifier le CCSID (F15/option 3) avant la saisie des lignes
 Rappel : 850 = ASCII/DOS    819 = ASCII/UNIX   1252 = ASCII/WINDOWS (ANSI)


 

mais vous pouvez aussi utiliser le "shell" pour manipuler ces fichiers


|


 il s'agit d'un shell compatible UNIX, lancé par QSH ou STRQSH
    il est proche du KHORN Shell
 vous pouvez passer des commandes unix comme :
 pwd : voir le répertoire en cours  ls  : contenu du répertoire  cd, etc pour naviguer dans l'arboresence  set : pour fixer des variables d'environnement
 qui sont des commandes "internes"
les autres commandes sont recherchées dans le path et peuvent être des alias
vous pouvez aussi lancer une commande par STRQSH CMD('ls').

|
 remarquons :

  wc   : pour compter le nombre de mots d'un fichier   cat  : pour lister le contenu d'un fichier   sort : tri le contenu d'un fichier   split: éclate un fichier en plusieurs (on indique sur quelle "chaîne")   grep : pour filtrer suivant une expression régulière   find : recherche de fichiers et/ou de répertoires
  ainsi que l'utilisation des redirections
       >         : redirige la sortie vers un fichier (en écrasement)        >>        : redirige la sortie vers un fichier (en ajout)     cde1 | cde2  : cde2 travaille à partir du résultat produit par cde1     cde1 !! cde2 : exécute cde2 si cde1 se termine Anormalement     cde1 && cde2 : exécute cde1, puis cde2 si cde1 se termine normalement     cde1 : cde2  : exécute cde1 puis cde2 (sans condition)
  exemple:      cat /qsys.lib/bdvin.lib/qsqlsrc.file/crtbase.mbr | grep -c date
      compte le nombre de lignes dans le membre crtbase contenant "date"

|

 grep '^.....C' /qsys.lib/mabib.lib/qrpglesrc.file/ile01.mbr
       ^ matérialise le début de ligne (la fin de ligne c'est $)        . un caractère (n'importe lequel)
       on cherche donc le caractère C en position 6 dans le membre ile01        (l'option -r aurait permis une recherche sur la totalité du fichier)
 grep '^.....[Cc]' /qsys.lib/mabib.lib/qrpglesrc.file/ile01.mbr
       [ ] indique une série de caractères admissibles (un ou logique)
       on cherche donc le caractère C ou c en position 6        (l'option -i aurait permis une recherche insensible à la casse)
 grep '^......\*' /qsys.lib/mabib.lib/qrpglesrc.file/ile01.mbr
       * = n caractère(s), "n" étant compris entre 0 et l'infini        \* déspécialise (le rend ordinaire) le caractère suivant \ (ici *)
       on cherche donc le caractère * en position 7

|

    find qui recherche des fichiers ou des répertoires
     find /QIBM -name '*.jar'            # cherche les fichiers ou les                                          # répertoires ".jar" dans /QIBM
     find /QIBM -name '*.jar' -type f    # uniquement les fichiers
     find /QIBM -name '*.jar' -user QSYS # appartenant à QSYS
     find /QIBM -name '*.jar'  ! -user QSYS # n'appartenant PAS à QSYS                                             # la négation se fait par "!"
    Vous pouvez rediriger la sortie dans un fichier, par exemple :
     PGM
      CRTPF QTEMP/FINDOUT   RCDLEN(500)
      STRQSH CMD('find /QIBM -name '*.jar' >  +                   /qsys.lib/qtemp.lib/findout.file/findout.mbr)      ENDPGM

|

    Vous pouvez exécuter une commande pour chaque élément trouvé
     find /home  -user pascal -exec chgown pierre {} \;
      .............................................       : {} sera remplacé par l'élément en cours   :       :                                           :       : \  indique la fin de la commande          :       :...........................................:
    Vous pouvez en même temps imprimer la liste
     find /home  -user pascal -exec chgown pierre {} \; -print

    Vous pouvez aussi lancer un pgm à vous
     find /home  -user pascal -exec /qsys.lib/mabib.lib/monprog.pgm
     (le programme recoit des chaînes terminées par X'00, comme en C)

|
 Autres commandes 

 rm  fichier       pour détruire un/des fichier(s), caractère "*" admis  rmdir directory   pour détruire un répertoire vide.  setccsid ccsid    pour modifier le CCSID d'un fichier  iconv -f ccsidO -t ccsidD fichier, pour convertir de ccsidO vers ccsidD
 ps pour voir les jobs d'un utilisateur (nouveauté V5R20)     -s sous-système, pour voir les job d'un sous système     -u profil      , pour voir les job d'un utilisateur ............................................................................ :> ps                                                                      : :    PID DEVICE       TIME FUNCTION       STATUS    JOBID                  : :    403 pcxp       000:00 cmd-qsh                  145818/qsecofr/pcxp    : :    409 -          000:00 pgm-qzshsh     evtw      145824/qsecofr/qzshsh  : :    410 -          000:00 pgm-ps         run       145825/qsecofr/qp0zspwp: :..........................................................................:
 -> le fait de lancer QSH démarre un autre job (QZSHSH) de type BATCHI  -> chaque commande (comme ici ps) démarre un process autonome QP0ZSPWP
 kill pour "tuer" un process sur son PID (N° comme ici 410)

|

 Vous trouverez également la commande "db2"
      db2 "SELECT * FROM qsys2.systables WHERE TABLE_OWNER = 'QSECOFR'"

 toutes ces commandes sont dans le répertoire '/usr/bin' et sont en fait   des alias pointant vers des pgms situés dans les bibliothèques de l'OS.
  (Bibliothèque QSHELL en général)
pour voir le contenu, cde OS/400  wrklnk '/usr/bin/*'     (pour voir le pgm réel passez l'option 12 devant un alias).
             ou bien  ls -l /usr/bin

|
 La version 5.2 apporte un utilisataire Rfile pour manipuler les fichiers
  OS/400 (Database et fichier source)

  Rfile -h affiche l'aide         -r lit un fichier DB2 ou source et écrit dans STDOUT         -w écrit dans un fichier DB2 ou source ce qui vient de STDIN            -a peut alors etre utilisé pour travailler en ajout (replace/dft)            -l ne pas tronquer les données longues mais éclater sur plusieurs                                                                     lignes.    autre options :
        -b flot de données binaire (sinon texte avec retour chariot)         -Q les coordonnées du fichier sont indiqué en format OS/400            (sinon IFS = /QSYS.LIB/MABIB.LIB/FICHIER.FILE/MEMBRE.MBR)         -c commande CL à passer avant le traitement (OVRxxx admis)         -C commande CL à passer après le traitement
 et enfin la V5R30 propose catsplf pour écrire un spool vers STDOUT
  catsplf -j n°job/user/nom-job nom-du-spool n°spool
     catsplf -j 123456/QSECOFR/DSP02 QSYSPRT 1 > /tmp/spool.txt


ou bien, encore PASE


|


 PASE (option 33 de l'OS)
 intégré à l'OS depuis la V5R20 et dont    l'installation est conseillée par IBM (pour java, DNS V5, etc...)
   il s'agit de tous les binaires AIX (5L) sur l'AS/400 rendant celui-ci     très compatible avec une machine UNIX.
   Cette fonctionnalité s'appuie sur le processeur commun à la gamme    Iseries et Pseries (POWER4 64 bits) et la capacité de ce dernier    à "switcher" d'un mode, d'un environnement à l'autre
   (le processeur possède des instructions propres à l'OS/400)

|

  pour lancer un "shell" PASE (ce n'est pas celui de QSH) :
       > CALL QP2TERM   (pour une saisie utilisateur)        > CALL QP2SHELL  (pour exécuter un script)        > l'API Qp2RunPase, pour lancer Pase depuis un pgm ILE.
  + le répertoire de PASE est /QOpenSys/usr/bin
    Si un exécutable n'est pas trouvé dans le chemin indiqué, PASE essai      en ajoutant "/QOpenSys" devant la racine ("/") du chemin,       sauf à renseigner la variable d'env. "PASE_EXEC_QOPENSYS" à "N"

 Le shell lancé par PASE est le Khorn shell (/QOpenSys/usr/bin/sh)

  pour voir la liste des commandes placez vous dans /QOpenSys/usr/bin    par cd (vérifiez par pwd ,que vous n'y êtes pas déja) et lancez ls .
regardez les commandes suivantes : (extrait, bien sûr ...)
              cat   - affiche le contenu d'un fichier               ln    - créé un lien symbolique sur un fichier existant               mkdir - création d'un répertoire               rm    - destruction de fichier(s)               mv    - déplace ou renomme un fichier
A cette liste, vous devez ajouter les commandes "internes" comme cd, ...

|
 Ne confondez pas QSH (le shell de l'OS/400) et PASE (compatible AIX)

  PASE possède plus de fonctionnalités, et quelques différences:
   il peut tenir compte des retours chariot à l'affichage (F11)    il est sensible à la casse (différence minuscules/MAJUSCULES), pas QSH.    il ne transforme pas EBCDIC/ASCII sauf pour stdin,stdout et stderr,     si vous fixez QIBM_PASE_DESCRIPTOR_STDIO à T (QSh utilise les CCSID)
   par exemple :    ------------
   cat /qsys.lib/bdvin.lib/qsqlsrc.file/crt_base.mbr | grep -c date
       compte le nombre de ligne du membre crt_base contenant le mot "date"        (le fichier QSQLSRC est dans la bibliothèque BDVIN)
   QSH donne 3 (il y a bien trois lignes) PASE indique 0 (data en EBCDIC)
   il en sera de même pour wc (compte le nombre de mots), sort (tri),     split (éclatement de fichiers) et sed (edition de fichier)

|

alors, pourquoi utiliser pase, un exemple :
  Aller chercher des binaires compilés pour AIX et les faire tourner    sur votre machine.
  voyez http://aixpdslib.seas.ucla.edu/index.html , par exemple.    ou   http://bio.gsi.de/DOCS/AIX/aixpdslib.seas.ucla.edu/  (un miroir)
   vous trouverez sur ce site zip.2.3.tar.Z et unzip.5.50.tar.Z
  Placez ces fichiers dans /QopenSys, puis lancez un terminal PASE
    call Qp2term
    décompressez le fichier par uncompress zip.2.3.tar.Z
    puis restaurez par tar -xvf zip_2_3.tar
    cela doit vous créer un répertoire user et des sous répertoires
     placez vous dans /QopenSys/usr/local/bin (par cd)

|

 tapez zip -h
  cela doit vous afficher l'aide
  #  > zip -h    Copyright (C) 1990-1999 Info-ZIP    Type 'zip "-L"' for software license.    Zip 2.3 (November 29th 1999). Usage:    zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi    list]
 vous pouvez maintenant zipper des fichiers par :
   zip fichier-zip-à-créer fichier(s)-à-zipper
 ou bien par  : (depuis un CL ou une ligne de commande)
    CALL QP2SHELL PARM('/QopenSys/usr/local/bin/zip'  +                        '/chemin/fichier.zip'          +                        '/chemin/fichier(s)-à-zipper/')

|


 Attention QP2SHELL n'est pas un shell, il en joue, en partie, le role :    il lance l'exécutable.
 vous ne pourrez pas profiter de certains services du shell
 - globing (caractères génériques comme *)
 - tubes [|] ou redirections [>], et commandes multiples [:]
 dans ce cas demandez à QP2SHELL de lancer sh (le shell lui même)   avec l'option -c (exécution d'une commande en paramètre)
 CALL PGM(QP2SHELL) PARM('/QOpenSys/usr/bin/sh' +                        '-c' 'cp /repertoire1/*.txt /sauvegardes')
en CL
 CALL PGM(QP2SHELL) PARM('/QOpenSys/usr/bin/sh' +                        '-c' &CDE)

|

 Pour lancer un script nommé "shell.sh", utilisez la syntaxe suivante :
 CALL PGM(QP2SHELL) PARM('/QOpenSys/usr/bin/sh' +                           '/tmp/shell.sh')
  Attention si vous saisissez ce shell sous I5/OS (EDTF ou WRKLNK puis "2")
  - demandez bien à ce que le fichier soit en ASCII 819
      (faites F15, option 3 et saisissez 819 à  la place de 297                     particulièrement en cas de création)

  - demandez aussi à ce que les fin de lignes soient marquée par le      caractère LF (standard unix) et non CRLF (standrad PC et I5/OS)
     (faites F15, option 5 et choisissez *LF)

  - commencez votre script par "#! /usr/bin/sh"  et donnez le droit *RX


Comment partager ces fichiers IFS ?


FTP


|
FTP est un standard du monde TCP/IP permettant de transférer des fichiers

  FTP possède les attributs suivants en V4R40 :
  sur la commande CHGFTPA vous trouverez :
   - NAMEFMT(*LIB | *PATH)
      la nouvelle valeur *PATH  indique un format serveur, identique à         "namefmt '1'", c'est à dire /qsys.lib/bib.lib/fichier.file/...
   - CURDIR(*HOMEDIR)
      fixe le répertoire de travail initial       (par défaut il s'agit du paramètre HOMEDIR du profil)
   - LISTFMT(*DFT | *UNIX)
      la valeur *UNIX produit un affichage, lors des demandes de liste,        compatible UNIX, c'est à dire avec (enfin) les noms de répertoires        à gauche.
ces trois options combinées rendent possible l'utilisation de clients FTP   graphiques (Windows, Linux).




|


 
Pour utiliser FTP client :
 Lancez la commande FTP
  Puis signez vous (profil / mot de passe)
Les fichiers sont vus dans un système arborescent :
1/   bibliothèque/fichier.membre: dénomination par défaut[0], NAMEFMT(*LIB).
2/   - QSYS.LIB/bibli.LIB/FICHIER.FILE/membre.MBR      et      - /, /QOPT/, /QLANSrv/, /QDLS/REPERTOIRE/DOCUMENT
 Si vous demandez le format de dénomination 1  : NAMEFMT(*PATH).
 (les fichiers *SAVF sont acceptés)

|

Vous demandez ce format en passant la commande :
 SITE NAMEFMT 1 (SITE NAMEFMT 0, revient au format précédent)
Cette commande n'est comprise que d'un AS/400.
Si vous utilisez FTP/Windows    passez la commande QUOTE, qui demande au système local de transmettre     une commande entre quotes sans la vérifier.

Voici la liste des principales commandes FTP :
 OPEN système / CLOSE système
   connexion/déconexion à un serveur FTP
 USER profil
   ouverture d'une session (en cas d'erreur lors de l'OPEN)

|

 Paramètrage:
 BINARY : transferts en mode binaire (pas de conversion CCSID)
 ASCII  : transferts en ASCII / EBCDIC : conversion
Répertoires:
 CD     : Change directory sur système distant  LCD    :  idem sur système local
 CDUP   : change vers répertoire parent (idem CD .. sous DOS)
 DIR    : liste des répertoires
 LS     : Liste des fichiers
 PWD    : voir directory en cours (système distant)  LPWD   : idem en local

|

Transferts :                            localfile  = nom local                                         remotefile = nom éloigné
 APPEND    localfile    [remotefile]     : Copie en Ajout
 DELETE    remotefile                    : suppression de fichier
 GET       remotefile   [localfile]      : Aller chercher un fichier
 MDELETE   remotefile                    : supprimer un fichier distant
 MGET      remotefiles (* accepté)       : aller chercher un(des) fichiers
 MPUT      localfiles  (idem)            : envoyer un(des) fichiers
 PUT       localfile    [remotefile]     : envoyer un fichier
 RENAME    remotefile                    : renommer un fichier
 RMDIR     remotedirectory               : supprimer un répertoire distant

|
 Divers :

  QUOTE commande    : passer une commande FTP
  SYSCMD  commande  : passer une commande OS/400 (L'AS/400 est client)   QUOTE rcmd cde    : passer une commande OS/400 (L'AS/400 est le serveur)
  STATUS            : renvoi des infos
  LOCSTAT           : renvoi des statistiques
  SYSTEM            : descritpion du système distant
  HELP              : fourni l'aide général
   HELP commandeFTP    : founi l'aide sur cette commande    HELP SERVEUR cdeFTP : demande au serveur de renvoyer l'aide                           sur une commande (inconnu en local par exemple)
 VERBOSE            : mode bavard (messages d'information)
 QUIT               : Arret de FTP client.

|

 Commandes spécifiques à l'AS/400 (quand il est serveur)
 ADDM : ADDPFM
 CRTL : CRTLIB
 CRTP : CRTPF
 CRTS : CRTSRCPF
 DLTF : DLTF
 DLTL : DLTLIB

  les paramètres sont les même que ceux des commandes CL.
 Commande de test de la connexion (ne fait rien)
   NOOP

|

 Pour utiliser FTP en Batch, lancez les commandes suivantes dans un CL :
             OVRDBF     FILE(INPUT) TOFILE(FTPCMD) MBR(IN)              OVRDBF     FILE(OUTPUT) TOFILE(FTPCMD) MBR(OUT)              FTP        RMTSYS(MACHINEx)
 Le membre IN contient les commandes suivantes :
 *** Début des données ***
profil motdepasse CD bibli Get fichier QUIT
 *** fin des données ***
   OUT recoit toutes les lignes qui auraient été affichées à l'écran.

 


Netserver sur AS/400

 

NetSERVER c'est le voisinage réseau sur l'AS/400

 

Encore une fois Operation Navigator est le SEUL moyen de configurer ce produit.


Paramétrage V4 :

...........................................................................
: ATTENTION, il faut assigner un nom "netbios" à l'AS/400.                :
: ---------                                                               :

:                                                                         :
: Si vous avez des clients en V3R2M0, il est déconseillé de donner le     :
:  même nom que le nom de l'AS/400 pour Client Access.                    :
:                                                                         :
: A partir de la V4R40, avec Client Access Express, vous pourrez cocher   :
:  la case "permettre l'accès à AS/400 Netserver avec un nom AS/400"      :
:  qui vous permettra de reconnaître l'AS/400 sur son nom netbios         :

:  et sur son nom SYSTEME.                                                :
:                                                                         :
:                                                                         :
: Le nom par défaut est QS44xxxxxx [où S44xxxxxx est le SYSNAME ]         :
:.........................................................................:

Vous devez aussi indiquer un nom de domaine (ou groupe de travail)

Si vous avez un serveur NT/2000 sur votre réseau local, mettez l'AS/400 dans  le même domaine que le serveur NT.

cela sera important si vous souhaitez accèder à la branche d'IFS, /QNTC qui représente l'accès client de NetServer (client Netbios),
c'est à dire une vision des partages de vos serveurs NT locaux, dans le même domaine.

 

    Si vous souhaitez voir automatiquement l'AS/400 dans le voisinage réseau indiquez :

  • une page de code 850 (DOS) ou mieux, 1252 (Windows)

  • une intervalle entre annonces supérieure à 0 (par défaut, 720)

le paramétrage V5R10 :

il faut d'abord cliquer sur prochain démarrage, pour avoir accès aux paramètres en modification.

le paramétrage de la page de code et de l'intervalle entre annonces, ce faisant sur le deuxième onglet



Pour voir vos serveurs et vos stations NT/2000 sous l'arborescence QNTC.

  1. le profil 400 qui utilise QNTC doit exister sur le poste ou dans le
    DOMAINE Windows AVEC LE MÊME MOT DE PASSE !

  2. a/ si l'AS et le serveur sont dans le même domaine, vous devez voir
    tous vos serveurs automatiquement dans /QNTC

    b/ s'il ne sont pas dans le même domaine (ou si vous n'en n'avez pas)
    il faut créer un répertoire portant le nom du poste dans QNTC

    par exemple MKDIR '/QNTC/POSTE01'

    il faut alors que l'OS/400 puisse trouver l'adresse IP correspondante
    (fichier HOSTS [CFGTCP option 10] ou serveur DNS [CFGTCP/12] )


    ==> ATTENTION, il faut recréer le répertoire après chaque IPL.

 

ASTUCES :
  • il peut être très judicieux pour les performances, de positionner la variable d'environnement suivante :
ADDENVVAR ENVVAR(QZLC_SERVERLIST) VALUE(1) LEVEL(*SYS)

  • en cas de problèmes :
    • recherchez les messages suivants dans la log CPDB050, CPDB055, CPDB692
    • lancez une trace avec les commndes suivantes :
      • CALL QZLCTRC (t x'FFFFFFFF') - démarrage
      • CALL QZLCTRC (t x'00000000') - arrêt
      • CALL QZLCTRC (p) - print 
      • CALL QZLCTRC (c) - clear


Contrairement aux anciens dossiers partagés, seuls les répertoires déclarés partagés seront vus des clients.



 Pour ajouter de nouveaux répertoires en partage :

      en V4R20, utilisez directement le bouton droit.

en V4R30, double-cliquez sur netserver, pour faire apparaître  la fenêtre de gestion de netserver, puis cliquez sur le bouton droit.

 dans tous les cas, sélectionnez : nouveau/fichier...


En V4r40, les partages sont plus faciles à définir

 - pour partager une imprimante, demandez la liste des imprimantes et cliquez avec le bouton droit.

 - pour partager un répertoire, demandez la liste des répertoires     (système de fichiers/sytème de fichiers intégré)et cliquez avec le bouton droit.

  L'option "Partage..." vous est alors proposée.

 pour voir la liste des partages en cours et des sessions actives
  choisissez "système de fichiers/partages de fichiers"


RAPELL : Pour voir l'AS/400 dans le voisinage réseau :
         - pensez à indiquer une page de code 850 ou 1252
         - renseignez le paramètre "intervalle entre annonces"
           si vous ne souhaitez pas l'AS/400 dans le voisinage réseau, mettez 0.

 

Si Vous ne voyez pas l'AS/400  directement dans le voisinage réseau,


   il faut taper directement "\\Q-mon-as\repertoire" ,

   ou bien utiliser "rechercher/ordinateur...."


 


 

L'authentification, lorsque vous accèdez à une ressource est la suivante :


   + le client essaie de se connecter avec le profil de réseau de Windows
   + si le profil existe mais que le mot de passe est différent,
        - vous êtes invité à entrer un mot de passe


   + si le profil n'existe pas sur l'AS/400
        - s'il y a un profil invité de paramétré,
          ==> on utilise ce profil.
        - sinon,
          ==> sous Windows 95/98/ME , l'accès est refusé
          ==> sous windows NT/2000/XP , vous rentrez profil et mot de passe.


Autres options, nouvelles en V5r10 :

 

 

Pour paramétrer ou lancer Netserver depuis une session 5250 , utilisez les APIs suivantes (par CALL) :
 
 

QZLSCHSG change le profil Invité
Profil 10 
code-erreur 16 (code erreur API)
 
 
 
QZLSADFS Ajout un répertoire partagé
nom de partage 12 
chemin  ??
lg du chemin binaire (4)
CCSID du chemin binaire (2) 
texte 50
Autorisations BIN (4) 1=read/2=read-write
nbr d'utilisateurs maxi BIN (4) -1 = *nomax
code-erreur 16 (code erreur API)
 
 
QZLSCHSN Changer le nom du serveur
nom  15
domaine 15
Texte 50
code-erreur 16 (code erreur API)
 
 
QZLSSTRS Démarrage du serveur
réinitialisation 1 '0'=non, '1'=Oui 
code-erreur 16 (code erreur API)
 
 
QZLSENDS Arret du serveur
code-erreur 16 (code erreur API)
 
 
QZLSRMS retrait d'un partage
nom de partage 12 
code-erreur 16 (code erreur API)

NB : ceci est un extrait.

QUSRTOOL propose un MENU d'utilisation de ces API, en V5R20

 

 CRTLIB LIB(NETSRVCMD) TEXT('Bibliothèque pour le menu NETS') 
CALL QUSRTOOL/UNPACKAGE PARM('*ALL ' 1)
CRTCLPGM NETSRVCMD/TZLSINST QUSRTOOL/QATTCL
CALL NETSRVCMD/TZLSINST NETSRVCMD

Puis GO NETS


Vous remarquerez sur ce menu, l'option 14 SNDNSVMSG permettant d'envoyer un message à un utilisateur Windows

1/ vérifiez que le service "Affichage des messages" est bien démarré sous NT4, 2000, XP

2/ Utilisez la commande SNDNSVMSG


SNDNSVMSG MSg('Bonjour &1, premier test') TONETID(PCXP) ==> nom de PC
SNDNSVMSG MSg('Bonjour &1, premier test') TONETID(Christian) ==> Utilisateur
SNDNSVMSG MSg('Bonjour &1, premier test') TONETID(Christian PCXP) ==> utilisateur sur un poste


     & 1 est remplacé par le nom de l'utilisateur ou du poste

     


Copyright © 1995,2009 VOLUBIS