Pause-Café Volubis

pause-café

rendez-vous technique
Pause-Café est une réunion technique
destinée aux informaticiens sur plateforme IBM i.
Elle a lieu 3 à 4 fois par an : en Bretagne et sur internet.

Pause-café #34

Mai 2004




QShell -> le Shell interpreter



|

QSH, le shell interpréteur (option 30 de 5769SS1 ou 5722SS1)
 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').
 ci dessous, la liste des commandes :   (pour le détail, voyez http://www.as400.ibm.com/developer/qshell)

|

 alias        - Define or display aliases  appletviewer - Java applet viewer  break        - Exit from for, while, or until loop  cd           - Change working directory  colon (:)    - Null utility  command      - Run a simple command  continue     - Continue for, while, or until loop  dot (.)      - Run commands in current environment  echo         - Write arguments to standard output  eval         - Construct command by concatenating arguments  exec         - Execute commands and open, close, or copy file descriptors  exit         - Exit from the shell  export       - Set export attribute for variables  false        - Return false value  getconf      - Get configuration values  getopts      - Parse utility options  hash         - Remember or report utility locations  jar          - Java archive tool  java         - Run Java program  javac        - Compile Java program

|

 javadoc      - Java API documentation generator  javah        - Java C header and stub file generator  javakey      - Java security tool  javap        - Java class file disassembler  jobs         - Display status of jobs in the current session  kill         - Terminate or signal processes  local        - Assign a local variable in a function  native2ascii - Java native-to-ASCII converter  print        - Write output  printf       - Write formatted output  pwd          - Return working directory name  read         - Read a line from standard input  readonly     - Set read-only attribute for variables  return       - Return from a function  rmic         - Java RMI stub compiler  rmiregistry  - Java remote object registry  serialver    - Java serial version  set          - Set or unset options and positional parameters  shift        - Shift positional parameters  sleep        - Suspend invocation for an interval

|

 test         - Evaluate expression  trap         - Trap signals  true         - Return true value  umask        - Get or set the file mode creation mask  unalias      - Remove alias definitions  unset        - Unset values and attributes of variables and functions  wait         - Wait for process completion
vous pouvez écrire des scripts basés sur ces commandes ou bien des pgms  "maison", basés sur le langage C. (utilisant prinf , etc ...) de tels programmes sont livrés dans la bibliothèque QSHELL
 ar           - Create and maintain library archives  basename     - Return non-directory portion of path name  cat          - Concatenate and print files  cc           - Compile C programs  chgrp        - Change file group permission  chmod        - Change file modes (permissions)  chown        - Change file ownership  clrtmp       - Clear the /tmp directory  cmp          - Compare two files

|

 compress     - Compress data  cp           - Copy files  cut          - Cut out selected fields of each line of a file  date         - Write the date and time  dirname      - Return directory portion of path name  echo         - Write arguments to standard output  env          - Set environment for command invocation  expr         - Evaluate arguments as an expression  file         - Determine file type  find         - Find files  getjobid     - Display job information  grep         - Search a file for a pattern  head         - Copy the first part of files  hostname     - Display the name of the current host system  id           - Return user identity  ln           - Link files  logger       - Log messages  logname      - Return user's login name  ls           - List directory contents  make         - Maintain, update, and regenerate groups of programs  mkdir        - Make directories

|

 mv           - Move files  od           - Dump files in various formats  pax          - Portable archive interchange (supports tar format)  pwdx         - Print working directory expanded  rm           - Remove directory entries  rmdir        - Remove directories  sed          - Stream editor  sort         - Sort, merge, or sequence check text files  split        - Split files into pieces  system       - Run CL command  tail         - Copy the last part of a file  tee          - Duplicate standard input  test         - Evaluate expression  touch        - Change file access and modification times  tr           - Translate characters  uname        - Return system name  uncompress   - Expand compressed data  uniq         - Report or filter out repeated lines in a file  wc           - Word, line and byte/character count  xargs        - Construct argument lists and invoke utility  zcat         - Expand and concatenate data

|
 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 expressions régulière   find : recherche de fichiers et/ou de répertoires
  ansi 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
       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'"
 ainsi que les utilitaires ldap suivants :
 ldapadd   ldpamodrdn  ldpadelete    ldapsearch  ldapmodify                      

 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  wrklnk '/usr/bin/*'
    (pour voir le pgm réel passez l'option 12 devant un alias).

|

 Vous pouvez écrire vos propres scripts.
  read variable
       -> récupère la saisie utilisateur dans 'variable'
  echo "bonjour"
       -> affiche bonjour
  echo $variable
       -> affiche le contenu de 'variable'
  echo "bonjour $nom"
       -> affiche "bonjour " suivi du contenu de 'nom'
  # commentaire


|
   l'assignation d'une valeur à une variable

     variable=valeur  par exmeple I=0
   les tests se font sous la forme
   if booleen , booleen pouvant être une variable, le mot true|false                 ou une fonction retournant vrai|faux
   la fonction "test" compare deux opérandes et retourne vrai ou faux    if condition1                      ................................                                       : Exemple :                    :       then commande1                  :                              :                                       :  if test "$I"  -eq "0"       :    elif condition2                    :     then echo "zero"         :                                       :  elif  test "$I" -eq "1"     :       then commande2                  :     then echo "un"           :                                       :  else                        :    else                               :     echo "nombre $I"         :                                       :  fi                          :       commande3                       :                              :                                       :..............................:    fi

|

 Les tests se font via =(egal), !=(différent de) pour l'apha,
                       -eq, -lt, -le, -gt, -ge pour le numérique.

 Pour les boucles vous utiliserez
 while test (votre test)              ..............................                                       : while test "$i" -lt "5"    :  do                                   :  do                        :                                       :     echo "compteur: $i"    :   ...                                 :     i=$(($i + 1))          :   ...                                 :  done                      :                                       :                            :  done                                 :............................:

 pour lancer un script :  ---------------------       monscript        --> lance le script dans un nouvelle session      .monscript        --> lance le script dans la session en cours.

|

 Ou bien, lancez un script depuis un CL par STRQH :
  la variable d'environnement QIBM_QSH_CMD_OUTPUT permet de fixer la sortie
     NONE   : pas d'affichage (mode silencieux)      STDOUT : affichage dans le terminal destiné au C (il faut faire ENTER)      FILE=chemin       : sortie dans un fichier (écrasé)      FILEAPPEND=chemin : sortie en ajout dans un  fichier
 Vous recevrez les messages suivants :
  QSH0005 : fin du process, le status [0-255] est dans les 4 premiers octets   QSH0006 : fin du process par un avertissement (signal)   QSH0007 : fin anormale du process
 Les messages sont envoyés de type achèvement (*COMP), sauf à placer "Y"  dans la variable d'environnement QIBM_QSH_CMD_ESCAPE_MSG. (*ESCAPE)
 Une autre variable d'environnement peut-être pratique, c'est
   QSH_USE_PRESTART_JOB (contenant Y)
cela oblige QSH à utiliser des travaux à démarrage anticipés, s'ils  existent, pour lancer les process QP0ZSPWP.
Il faut au préalable avoir saisi :  ...................................................................  : ADDPJE SBSD(QINTER) PGM(QSYS/QP0ZSPWP) INLSJOBS(2) THRESOLD(5)  :  :        ADLJOBS(3) JOBD(QGPl/QDFTJOBD) MAXUSE(1) POOLID(1)       :  :.................................................................:
Pour renseigner une variable d'environnement, vous pouvez utiliser un  script, avec   "export -s QSH_USE_PRESTART_JOB=Y"
Le mieux étant de placer ce script dans :
       - /etc/profile            (script commun à tous le monde)        - /home/nom-user/.profile (script pour "nom-user")

rappel: commandes OS/400 de gestion des variables d'environnement

RMVENVVAR pour détruire une variable d'environnement.
   ADDENVVAR pour créer (et initialiser) une variable.    CHGENVVAR pour modifier le contenu et enfin WRKENVVAR pour les voir

 

PASE (AIX V5L sur OS/400)




|


 PASE (option 33 de l'OS)
  était un produit facturable en V5R10 et devient intégré à l'OS 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)
   l'année 2004 devrait voir arriver le POWER5 et les partitions AIX     sur Iseries (peut-être même partitions OS/400 sur Pseries)

   viendront ensuite les POWER6 (2006) et sans doute des machines de     convergence.(les ES/9000 devraient utiliser les prochains POWERx)

|

  pour lancer un "shell" PASE  :
       > 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"
    Les fonctions PASE qui retournent les utilisateurs et les groupes,      retournent les noms en minuscules sauf "PASE_USRGRP_LOWERCASE" à "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 .

|

  A cette liste, vous devez ajouter les commandes "internes" comme cd, ...
  un certain nombre d'utilitaires ne pourront pas s'exécuter à partir    d'une session 5250.(type de terminal non compatible)
   vous devrez peut-être recourir à un environnement X11 (inclus dans PASE)     depuis un serveur X (non fourni) à installer sur PC (ou Linux) .
  Pour lancer une application X, démarrer un serveur X11/Xwindow   (XthinPro ou Hummingbird Exceed) ou bien un poste sous Linux
  -> renseignez la variable d'environnement DISPLAY avec l'adresse IP       du serveur X, puis lancez ( xterm par exemple) depuis Qp2Term.
  sinon, 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

|
 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,stdoutet 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)

|

 Exemples d'utilisation de pase :
  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.
   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 -cvf 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-à-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-à-zipper/')

|

 Deuxième exemple : PHP (il y a un Redbook dédié à PHP sur Iseries)
   a/ téléchargez les sources depuis http://www.php.net        et compilez avec un compilateur AIX, ou    b/ téléchargez une version déja compilée sur http://www.mcind.com/php/
  décompressez et restaurer les fichiers dans /QopenSys/php par exemple.    (les exécutables seront dans /QOpenSys/php/bin)
  paramétrez votre serveur Apache avec les directives suivantes
   ScriptAlias /php-bin/ /QOpenSys/php/bin/    # définition d'un nouveau type mime     AddType application/x-httpd-php .php    # forcer exécution pour un type donné (php-bin remplacé par ScriptAlias)     Action application/x-httpd-php /php-bin/php    <Directory /QOpenSys/php/bin>      Options +ExecCGI      order allow,deny      allow from all    </Directory>

 

Nouveautés systčme en V5R20 : LPAR, partition Linux




|

 L'OS/400 V5R20 est devenu plus souple en matière de gestion des partitions

 SI vous avez un processeur S/start ou suivants, vous pouvez
 - créer plusieurs partitions sur un seul processeur
 - avoir une (ou plusieurs) partition(s) hébergeant LINUX
 - ces partitions linux n'obligent plus à du matériel dédié     (même si dans certains cas, une carte LAN  peut être un plus)
 ATTENTION, les partitions OS/400, elles, doivent avoir du matériel dédié   (bus, disques) et la partition principale(primaire) doit être OS/400.
 Pour pouvoir introduire ces notions, vous devez d'abord  définir un pool   de processeur, même si vous n'en avez qu'un.
 Un pool représente un ou plusieurs processeurs "partageable" entre   partition (malgrès que, dans un premier temps, ce pool soit utilisé    uniquement par votre partition primaire)

|

 Lancez SST par STRSST et signez vous :
                  Start Service Tools (STRSST) Sign On
                                             SYSTEM: AS400
  Type choice, press Enter.
    Service tools user ID. . . .                   Service tools password . . .
    ...................................................................     : ATTENTION à la différence minuscules/MAJUSCULES                 :     : (voyez les nouveautés V5R1 dans le domaine), en cas d'oubli     :     : vous pouvez réinitialiser par CHGDSTPWD sous QSECOFR/OS400      :     :.................................................................:
 Note: The password is case-sensitive.

F3=Exit      F9=Change Password         F12=Cancel

|

 Prenez ensuite l'option 5 (Work with system partitions), puis 3.
                       Work with Partition Configuration                                                             System:   AS400  Type option, press Enter.    1=Change partition name      2=Change partition processing resources    3=Add I/O resources          4=Remove I/O resources    5=Change bus ownership type  6=Select load source resource
 Option  Par ID      Name            0         PRIMARY
                 ...................
                 :  Choisissez F9  :                  :...............\.:                                   \                                    V  F3=Exit   F5=Refresh             F9=Work with shared processor pool  F10=Work with Virtual Ethernet   F11=Work with partition status  F12=Cancel   F23=More options

|
                        Work with Shared Processor Pool
                                                            System:   AS400
 Type change or option, press Enter.
   2=Change

 Number of system processors . . . . . . . . . . . :  1  Number of available system processors . . . . . . :  0  Number of system processors allocated to pool . . .  0    <-- 
 Available processor units in pool . . . . . . . . :    0.00
      Par            --Total Processors--  -----------Units Used-----------  Opt  ID   Name      Cur / Pnd  Min / Max     Cur / Pnd        Min / Max
 .........................................................................  : Dans la zone  Number of system processors allocated to pool s'il y a  :  : 0, tapez 1 (ou plus si votre système est bi-pro) et PREVOYEZ UN IPL ! :  :.......................................................................:

 F3=Exit   F5=Refresh   F9=Show all partitions   F12=Cancel

|
                      Work with Partition Configuration
                                                           System:   AS400
Type option, press Enter.
  1=Change partition name      2=Change partition processing resources
  3=Add I/O resources          4=Remove I/O resources
  5=Change bus ownership type  6=Select load source resource

Option  Par ID      Name    ##      0         PRIMARY

  ............................................................   : Revenez ensuite sur l'option 3 (Work with Partitions)    :   :   et devant votre seule parition (nommée PRIMARY)        :   :  tapez 2 afin de lui "enlever" des ressources            :   :  (puissance et mémoire) que vous attriburez à LINUX.     :   :..........................................................:

F3=Exit   F5=Refresh             F9=Work with shared processor pool F10=Work with Virtual Ethernet   F11=Work with partition status F12=Cancel   F23=More options

|
                     Change Partition Processing Resources
                                                            System:   AS400
 Type changes, press Enter.

   Partition identifier and name  . . . . . . . . :  0    PRIMARY
   Current / available number of processors . . . :  1   / 0    New number of processors . . . . . . . . . . . .  1      Use shared processor pool  . . . . . . . . . . .  1  1=Yes, 2=No      New shared processor pool units  . . . . . . .    1 . 00  
   Current / available size of main storage (MB)  :  896      / 0    New size of main storage (MB)  . . . . . . . . .  1024       
   Current / available interactive feature  . . . :  100 / 0   %    New interactive feature  . . . . . . . . . . . .  100 %   .......................................................................   :  sur cet écran , faites F9, afin de définir les plages admissible   :   :   mini/maxi sur cette partition, cette étape impliquera un IPL.     :   :.....................................................................:  F3=Exit   F9=Include limits   F10=Work with shared processor pool  F11=Display partition processing configuration   F12=Cancel

|
                     Change Partition Processing Resources
                                                            System:   AS400
 Type changes, press Enter.

   Partition identifier and name  . . . . . . . . :  0    PRIMARY
   Current / available number of processors . . . :  1   / 0    New number of processors . . . . . . . . . . . .  1       Minimum / maximum number of processors . . . . .  1   / 1       Use shared processor pool  . . . . . . . . . . .  1  1=Yes, 2=No      New shared processor pool units  . . . . . . .    1 . 00   >   Minimum / maximum processor pool units . . . .    0 . 50 /   1 . 00 
   Current / available size of main storage (MB)  :  1024     / 0    New size of main storage (MB)  . . . . . . . . .  1024       > Minimum / maximum size of main storage (MB)  . .  272      / 1024    
   Current / available interactive feature  . . . :  100 / 0   %    New interactive feature  . . . . . . . . . . . .  100 %  > Minimum / maximum interactive feature  . . . . .  0   / 100 %
 F3=Exit   F9=Exclude limits   F10=Work with shared processor pool

|

 Indiquez ici, pour la partition primaire :
  un minimum et un maximum en puissance   (ici entre 0.50 et 1)

  un minimum et un maximum de mémoire   (ici entre 272 et 1024)

  un minimum et un maximum de puisance interactive    (ici entre 0 et 100 %)

 Prévoyez toujours de pouvoir revenir à une seule parition (100 %)   Puis faites un IPL, obligatoire à chaque fois que l'on modifie    ces notions de mini / maxi, le reste se fera à la volée.
 Après IPL, revenez sur l'option 3 (Work with partitons) afin de  retirer des ressources à votre partition principale.

|
                     Change Partition Processing Resources
                                                            System:   AS400
 Type changes, press Enter.

   Partition identifier and name  . . . . . . . . :  0    PRIMARY
   Current / available number of processors . . . :  1   / 0    New number of processors . . . . . . . . . . . .  1      Use shared processor pool  . . . . . . . . . . .  1  1=Yes, 2=No      New shared processor pool units  . . . . . . .    0 . 90  
   Current / available size of main storage (MB)  :  1024     / 0    New size of main storage (MB)  . . . . . . . . .  896        
   Current / available interactive feature  . . . :  100 / 0   %    New interactive feature  . . . . . . . . . . . .  100 %   .......................................................................   :  sur cet écran , renseignez maintenant les valeurs, particulièrement:   :   % de CPU et mémoire de la partition OS/400. Validez.              :   :.....................................................................:  F3=Exit   F9=Include limits   F10=Work with shared processor pool  F11=Display partition processing configuration   F12=Cancel

|

  puis revenez sur le menu principal et choisissez 5 , create a partiton    puis Guest, pour LINUX.
                                Create New Partition                                                               System:   AS400    Complete blanks, press Enter.
     Partition identifier and name  . . . . . . . . .  1              (1)
     Number of available system processors  . . . . :  0      Number of partition processors . . . . . . . . .                 (2)      Use shared processor pool  . . . . . . . . . . .  2  1=Yes, 2=No
     Size of available system main storage (MB) . . :  128      Size of partition main storage (MB)  . . . . . .                 (3)
 Indiquez              1/ un nom              2/ un nombre de processeurs (partageables si 1 en dessous)              3/ une taille émoire dans la limite du disponible.

|

  par exemple :                                 Create New Partition                                                               System:   AS400    Complete blanks, press Enter.
     Partition identifier and name  . . . . . . . . .  1     LINUX400 (1)
     Number of available system processors  . . . . :  0      Number of partition processors . . . . . . . . .  1              (2)      Use shared processor pool  . . . . . . . . . . .  1  1=Yes, 2=No        Shared processor pool units  . . . . . . . . .    0 . 10 
     Size of available system main storage (MB) . . :  128      Size of partition main storage (MB)  . . . . . .  128            (3)

  1/ la partition s'appelle LINUX   2/ elle utilise un processeur partageable (entre 0 et 10 %)   3/ et la mémoire restante, soit 128 Mo

|
                          Select Communication Options
                                                            System:   AS400
   Partition identifier . . . . . . . . . . . . . :  1
   Partition name . . . . . . . . . . . . . . . . :  LINUX

 Type changes, press Enter.    1=Yes  2=No
   -----------------Virtual Ethernet Identifiers----------------    0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15    1   1   2   2   2   2   2   2   2   2   2   2   2   2   2   2 
   ^   ^    ..................................................................    : Indiquez ensuite (par une option 1) les partitions entre       :    :  lesquelles on doit établir un LAN virtuel.                    :    :                                                                :    :                                et c'est terminé.               :    :................................................................:
 F3=Exit   F11=Display communication options   F12=Cancel

|

 Cette notion de LAN virtuel fera apparaitre :
   Dans votre parition linux une ressource eth0 (comme une carte LAN)
   Dans votre AS/400 une ressource de type 268C (go hardware ...)

    -> vous devrez alors créer une ligne ethernet sur cette ressource         à 1G bits/seconde (cette carte est toujours gérée par la CPU)

    -> Il faudra ensuite associer à cette carte une Adresse IP
       par exemple 172.16.1.1 coté OS/400, 172.16.1.2 coté linux
        et indiquer à l'OS/400 une route par défaut, ......................................................................... :       Route            Subnet           Next             Preferred    : :  Opt  Destination      Mask             Hop              Interface    : :       172.16.1.2       *HOST            172.16.1.1       *NONE        : :.......................................................................:

|

 Vous devez aussi, créer un utilisateur DST ayant des droits sur cette   partition (vous ne pourrez pas utiliser QSECOFR)
 Lancez STRSST, puis option 8, définissez un nouvel utilisateur, et   modifiez ces privilèges par 7 devant son nom (une fois créé) ............................................................................ :                          Change Service Tools User Privileges            : :                                                         System:   AS400  : :Service tools user ID name  . . . . . . . . :  LINUX                      : :                                                                          : :Type option, press Enter.                                                 : :  1=Revoke   2=Grant                                                      : :                                                                          : :Option   Functions                                              Status    :         Disk units - operations                                Revoked   :         Disk units - administration                            Revoked   :         System partitions - operations                         Revoked   :         System partitions - administration                     Revoked   :         Partition remote panel key PRIMARY    0                Revoked   :  2  ->  Partition remote panel key LINUX400   1                Granted   : :..........................................................................:

|

Enfin, du coté OS/400, créez une description de serveur de réseau.
                     Créer desc de serveur réseau (CRTNWSD) 
 Indiquez vos choix, puis appuyez sur ENTREE.
 Description serveur réseau . . . > LINUX         Nom  Nom de ressource . . . . . . . . > *NONE         Nom, *NONE  Type serveur réseau  . . . . . . > *GUEST        *WINDOWSNT, *GUEST  En ligne à l'IPL . . . . . . . .   *YES          *YES, *NO  Attente de mise en fonction  . .   *NOWAIT       *NOWAIT, 1-15 minutes  Partition  . . . . . . . . . . .   linux400      Nom  Page de codes  . . . . . . . . .   437           *LNGVER, 437, 850, 852, 85

 Source de l'IPL  . . . . . . . .   stmf          *NWSSTG, *PANEL, *STMF, A.  Fichier STREAM d'IPL . . . . . .   /QOPT/KERNELS/ISERIES64
 Ce dernier paramètre indique de démarrer (booter) la partition depuis   le CDROM (/KERNELS/ISERIES64 pour la distribution SUSE 8.0)

|

 puis un espace de stockage (futur disque dur de la parition) par
  CRTNWSSTG NWSSTG(LINUX1) FORMAT(*OPEN)
 Et, l'associer au serveur de réseau :
  ADDNWSSTGL NWSSTG(LINUX1) NWSD(LINUX) ACCESS(*UPDATE) DYNAMIC(*YES)            DRVSEQNBR(1)
 Pour installer LINUX, il faut mettre "VARY ON" la partition   en vérifiant qu'elle doit bien booter depuis le CD.
 a/ placez le CD dans le lecteur optique  b/ WRKCFGSTS *NWSD, puis option 1 = mettre en fonction
............................................................................ :  1=Mettre en fonction   2=Mettre hors fonction   5=Gérer travail         : :                                                                          : :Opt  Description       Etat                  -----------Travail-----------: :     LINUX             Hors Fonction                                      : :..........................................................................:

|
il vous reste à "connecter" la console, pour cela lancez un émulateur TELNET

   ATTENTION , il faut un émulateur telnet "Unix" et sur le port 2301 
    - PuTTY (freeware disponile sur Internet)     - Un Telnet depuis un autre poste sous linux     - le Telnet XP ou OS/400 (paramétré en VT100), bof ... ...................................................... : OS/400 Guest Partition Console                     : :  1: LINUX400                                       : : Enter the console partition number:                : ...................................................... : OS/400 Guest Partition Console                     : :  1: LINUX400                                       : : Enter the console partition number:                : : 1                                                  : : LINUX400: Enter OS/400 service tools userid:       : : linux                                              : : LINUX400: Enter OS/400 service tools password:     : : LINUX400: Console connecting...                    : : LINUX400: Console connected.                       : ......................................................

|

La partition démarre et vous devez suivre les instructions à l'écran
 SUSE lance un produit d'installation nommé YAST2, REDHAT un autre...
le système linux va considérer votre espace de stockage (linux1, dans nos   exemples) comme son premier disque dur (hda), sur lequel il va créer   trois partitions disque.
    hda1 partition primaire, dite de boot.     hda2 partition de swap     hda3 partition linux native pour / (root)
 Puis installer les produits, suivants vos choix.

Quand c'est terminé, mettez hors fonction la partition.
Modifier sa descrition, afin qu'elle boot depuis le "disque dur"
  par CHGNWSD NWSD(LINUX) IPLPARM('root=/dev/hda3')

 

Netserver sur AS/400

 

NetSERVER c'est le voisinage réseau sur l'AS/400 .
  • en V4R20 on peut voir l'AS/400 à partir d'un PC sous Windows 9x/NT (sans autre soft !)
  • en V4R30 l'AS/400 voit les serveurs NT du réseau sous /QNTC (Voir ci dessous)

 

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



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

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

  • une intervalle entre annonces supérieur à 0

le paramétrage V5R10

...........................................................................
: 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 sur votre réseau local, mettez l'AS/400 dans  le même domaine que le serveur NT.
(c'est le contrôleur principal de domaine qui valide les mots de passe)

cela sera important si vous souhaitez accèder à la branche d'IFS, /QNTC, elle représente l'accès client de NetServer (client Netbios)



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.

 


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

  les seuls répertoires partagés, par défaut, sont ceux permettant
l'installation de client access
( V3R2M0 et Express) par le réseau.



 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"


Pour voir l'AS/400 dans le voisinage réseau :
   - pensez à indiquer une page de code ( 850 / 1252 )
   - renseignez le paramètre "intervalle entre annonces"
     si vous ne souhaitez pas l'AS/400 dans la 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 :

  • Etat, permet d'obtenir des statistiques sur Netserver


  • ID utilisateurs désactivés, vous affiche les utilisateurs désactivés pour Netserver


  • et enfin, l'option Configuration vous propose un assistant pour configurer Netserver


    les informations à renseigner sont les mêmes que précédemment.
 

 

Pour paraméter 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 (Samba aussi, mais avec un script)


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

(sous Windows 98, installez l'outils système WinPopup (panneau de config) et lancez WinPopup.exe)

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

     



Cet outil utilise le pgm système QZLSMAINT de QSYS.

Le même programme peut être utilisé avec l'option '32' en paramètre,
 pour dumper la liste des messages envoyés (le spool appartient à QSECOFR)


Enfin on peut demander à NetServer d'envoyer les messages suivants, sous forme de POPUP, en automatique.

Gravité MSGID
  Texte
40 CPIB68A Aucun profil utilisateur pour l'utilisateur &1
40 CPIB68B Le profil de l'utilisateur &1 est désactivé
40 CPIB68C Le mot de passe de l'utilisateur &1 a expiré
40 CPIB68D Aucun mot de passe n'existe pour l'utilisateur &1
40 CPIB68E L'accès de l'utilisateur &1 a été désactivé pour Netserver
10 CPIB68F L'accès de l''utilisateur &1 est activé pour Netserver

20

CPIB690 Le mot de passe de l'utilisateur &1 expire dans &2 jours
10 CPIB691 L'utilisateur &1 est connecté à iSeries Netserver
40 CPIB692 L'utilisateur &1 a rencontré l'erreur Kerberos &2



en modifiant la JOBD QZLSSERVER avec le paramètre LOG(4 xx *NOLIST)

xx doit être > à 0 et représente le filtre à appliquer sur les messages ci-dessus.(10,20 ou 30)

 



©AF400

 

Copyright © 1995,2004 VOLUBIS