TIPS AS400 IBMi SYSTEME

  • Taille d’une bibliothèque

    SELECT SUM(objsize) FROM TABLE(QSYS2.OBJECT_STATISTICS('MABIB', '*ALL'))

    Additionner 2 bibliothèques :
    VALUES (SELECT SUM(objsize) FROM TABLE(QSYS2.OBJECT_STATISTICS('MABIB', '*ALL'))) +
    (SELECT SUM(objsize) FROM TABLE(QSYS2.OBJECT_STATISTICS('MABIB2', '*ALL')))

  • Copier un spoule dans l’IFS
    1. CRTPF FILE(QTEMP/SPOULE) RCDLEN(132)
    2. CPYSPLF FILE(NOM_SPOULE) TOFILE(QTEMP/SPOULE)
    3. CPYTOSTMF FROMMBR('/QSYS.LIB/QTEMP.LIB/SPOULE.FILE/SPOULE.MBR') TOSTMF('/home/mon_user/spoule.txt') STMFCCSID(*PCASCII)
  • Superviser mon AS400 avec Metabase

    Metabase est un outil de visualisation des données sous forme d’un dashboard graphique.
    Exemple d’utilisation :

    Requêtes utilisées pour cette exemple :
    1) % occupation disque
    SELECT SYSTEM_ASP_USED FROM qsys2.system_status_info

    2) Nombre de travaux intéractifs
    SELECT count(*) FROM TABLE(active_job_info()) where job_type=’INT’

    3) Nombre de travaux en message
    SELECT count(*) FROM TABLE(active_job_info()) WHERE job_status='MSGW'

    4) Palmarès du nombre de spoules par utilisateur
    SELECT job_user , count(*) AS nombre FROM TABLE(QSYS2.SPOOLED_FILE_INFO(USER_NAME =>'*'))
    WHERE job_user'QTCP'
    GROUP BY job_user
    ORDER BY nombre DESC
    LIMIT 10

    5) Palmarès des plus gros fichiers
    SELECT objlib concat '/' concat objname , objsize
    FROM TABLE(QSYS2.OBJECT_STATISTICS('*ALLUSR', 'FILE'))
    WHERE objowner NOT LIKE 'Q%' AND objattribute='PF'
    ORDER BY objsize DESC LIMIT 15

  • Importer un SAVF depuis l’IFS

    – Création du savf (par exemple dans qtemp) :
    CRTSAVF FILE(QTEMP/MONSAVF)
    – Importation du savf depuis l’IFS :
    CPYFRMSTMF FROMSTMF('/home/monprofil/monsavf') TOMBR('/qsys.lib/qtemp.lib/monsavf.file') MBROPT(*REPLACE)

  • Agrandir la ligne de commande

    Sur une ligne de commande : CALL QCMD

    On obtient 4 lignes :

    Et pour avoir encore plus grand : F11=Plein écran

  • Faire du ménage dans l’IFS selon la date des fichiers

    Par exemple, supprimer tous les fichiers pdf de plus d’1 an dans un répertoire :
    SELECT
    QCMDEXC('rmvlnk objlnk(''' CONCAT TRIM(CAST(path_name AS VARCHAR(200))) CONCAT ''')') FROM TABLE(qsys2.ifs_object_statistics( '/home/monRepertoire'))
    WHERE path_name LIKE '%.pdf' AND CREATE_TIMESTAMP < CURRENT_TIMESTAMP - 1 YEARS

    Explications :
    ifs_object_statistics permet de lister les fichiers d’un répertoire de l’IFS
    exemple :
    SELECT CAST(path_name AS VARCHAR(100))
    FROM TABLE(qsys2.ifs_object_statistics('/home/monRepertoire'))

    RMVLNK est la commande IBMi qui permet la suppression d’un fichier de l’IFS
    QCMDEXC permet d’exécuter une commande IBMi en SQL

  • Trouver le FQDN de la machine

    CHGTCPDMN + F4

  • Lister les tables d’une bibliothèque avec la dernière date d’utilisation

    SELECT SUBSTR(table_name, 1 , 12) , last_used_timestamp FROM systablestat WHERE table_schema = 'MaBibliotheque'

  • Obtenir le type, le modèle, le n° de série, le nom de la machine et le n° de partition

    SELECT machine_type, machine_model, serial_number, host_name, partition_id
    FROM qsys2.system_status_info

  • Compter le nombre de spoules par utilisateur

    SELECT count(*) FROM TABLE(qsys2.spooled_file_info(USER_NAME => 'ProfilAS400'))

    Si besoin, la commande qui permet de supprimer tous les spoules d’un d’utilisateur :
    DLTSPLF FILE(*SELECT) SELECT(ProfilAS400)

    Pour avoir le palmarès des utilisateurs avec le plus de spoules :
    SELECT job_user , count(*) AS nombre
    FROM TABLE(QSYS2.SPOOLED_FILE_INFO(USER_NAME =>'*'))
    GROUP BY job_user
    ORDER BY nombre DESC