Accueil du site > Les articles > Exécuter un ensemble de commandes stockées dans un script
Version à imprimer Enregistrer au format PDF

Exécuter un ensemble de commandes stockées dans un script

lundi 3 novembre 2008, par David Malle Visites  2677

Nous avons tous besoin à un moment donné d’exécuter une série de commandes, parfois même plusieurs fois, voir sur plusieurs AS400. Il est un peu fastidieux d’écrire à chaque fois un programme pour cela. C’est le propos de cet outil, permettre d’exécuter une suite de commandes stockées dans un fichier que nous appellerons ’script de commandes’, qui est stocké sur l’IFS : il suffit de livrer le script dans l’IFS de la machine et de l’exécuter. Une astuce, créez vous un site intranet sécurisé pour mettre en ligne vos scripts. Vous les aurez à disposition très facilement pour mes télécharger sur la machine où vous intervenez.


Mise(s) à jour

  • 03/11/2008 :
    • Version V1M0.

Instructions

  • Le script d’installation est proposé en document joint au format ZIP. Extraire le fichier suffixé par XML et le sauvegarder dans un répertoire de votre IFS.
  • Utilisez l’outil d’installation XML2SRC (voir Outil d’installation des programmes mis en ligne sur XDOCS400, pour installer l’outil ou consulter le mode opératoire d’une installation).

Limitations

  • Votre AS400 doit être en V5R2.

Notez bien

  • Le site XDOCS400.COM fournit des programmes à titre d’exemples et n’assure pas de hotline ou de garantie dessus.
  • Toutefois, si vous avez des soucis pour les installer, ou les utiliser, contactez l’auteur de l’article via le formulaire ad’hoc du site xdocs400 pour une aide ponctuelle.

Principes

  • Dans un fichier script de commandes, saisir via un éditeur de texte toutes les commandes que vous souhaitez enchaîner.
  • Exécuter le fichier script de commandes (stocké dans l’IFS). Les commandes sont exécutées dans l’ordre de leur présence dans le fichier script.
  • Génération d’une log dans l’IFS.

Commande EXEC_CMD

  • Indiquez les paramètres suivant via la commande EXEC_CMD
    • Indiquer la bibliothèque des datas paramétrée
    • Indiquer la bibliothèque des objets paramétrée
    • Indiquer si Oui ou non les commandes ’taggables’ seront exécutées
    • Indiquer le chemin dans l’IFS où se trouvent le fichier script à exécuter.
    • Indiquer le nom du fichier script à exécuter.
    • Indiquer le mode de mise à jour du fichier log (*REPLACE ou *ADD).
    • Indiquer le code ccsid de création du fichier log
    • Indiquer si le traitement est soumis en batch (Oui par défaut).

Structure du fichier script de commandes

<INSTALL>
<INFOS>
<COMMENTAIRES>
Supression des objets sauvegardés avant procédure de récupération
</COMMENTAIRES>
</INFOS>
<COMMANDES>
<QCMDEXC_C>DLTPGM PGM(&BIBOBJ/ZZPGM02R)</QCMDEXC_C>
<QCMDEXC_C>DLTF FILE(&BIBOBJ/ZZPGM02RPR)</QCMDEXC_C>
<QCMDEXC>DB2_SCRIPT CHEMIN('/home/mybib/') DOCUMENT(REQ_S00.sql) LOG(LOG_REQ_S00.sql) BIB(&BIBDTA) SBM(N)</QCMDEXC_C>
</COMMANDES>
</INSTALL>
  • Le script de commande commence et se termine par les balises <INSTALL> et </INSTALL>
  • Le premier bloc <INFOS><COMMENTAIRES></COMMENTAIRES></INFOS> contient les commentaires explicatifs associés au script de commandes
  • Le bloc <COMMANDES></COMMANDES> contient la liste des commandes à exécuter.
  • Chaque commande est délimitée par le bloc <QCMDEXC></QCMDEXC> ou <QCMDEXC_C></QCMDEXC_C>
    • Une commande encadrée par un bloc <QCMDEXC></QCMDEXC> est exécutée à chaque lancement du script.
    • Une commande encadrée par un bloc <QCMDEXC_C></QCMDEXC_C> est exécutée au lancement du script, si le paramètre exécuter les commandes ’taggables’ est à Oui.
  • Il est possible de paramétrer deux bibliothèques : une bibliothèque de données et un bibliothèque d’objets.
    • &BIBDTA est remplacée lors de l’exécution par la bibliothèque de datas renseignées dans la commande EXEC_CMD
    • &BIBOBJ est remplacée lors de l’exécution par la bibliothèque des objets renseignées dans la commande EXEC_CMD
    • Vous pouvez aussi indiquer une bibliothèque ’en dur’ dans votre script.

Exemple

  • La commande suivante exécute en batch le fichier script MYSCRIPT.CMD qui se trouve dans l’IFS à l’emplacement /home/myrep/ sur la biblothèque de données AS400 MYBIBDTA et la bibliothèque d’objets MYBIBOBJ. Le fichier LOG est remis à blanc (valeur par défaut) et les commandes ’taggables’ sont exécutées.
EXEC_CMD BIBDTA(MYBIBDTA)    
        BIBOBJ(MYBIBOBJ)    
        CMDTAG(O)          
        IFS('/home/myrep/')
        SCRIPT(MYSCRIPT.CMD)
        MODE(*REPLACE)      
        CCSID(1252)        
        SBMJOB(O)          

Documents joints