QSHELL retrouver date fichier

IBM i, configuration, commandes, ...
Répondre
x.deseille
Messages : 15
Enregistré le : ven. 22 juin 2007, 17:15:04
Localisation : ANCENIS CEDEX( 44158)
Contact :

QSHELL retrouver date fichier

Message par x.deseille »

Bonjour,

Je recherche une commande simple permettant de retrouver les dates d'un fichier de l'IFS (création, modif, accès) à partir d'un QSH.

Il y a bien le découpage de la commande ls -l mais bon courage avec les formats de dates. :roll:
A moins qu'il n'existe des scripts qui permettent de traduire ces formats en dates plus sympa style aammjj ou jjmmaa...

Mon besoin est d'initialiser une variable dans un QSH contenant la date d'un fichier lu.

Merci pour vos idées, outils.
J'ai cherché sur la toile, il y a des soluces mais souvent sous Linux ou Unix avec awk ou cut mais pas sous notre "marginal" iSéries QSHELL :(


XD

cimmelé
Messages : 34
Enregistré le : mer. 28 mars 2007, 21:57:59
Localisation : Rennes(35)
Contact :

(sans texte)

Message par cimmelé »

Bonjour, nous procédons de la manière suivante dans un CLP pour nettoyer un répertoire réseau vu du serveur I5 (ou dans l'IFS).

Cordialement, Christophe IMMELE

/* ------------------------------------------------------------------------ */
/* Suppression des vieux fichiers de + de 10 jours */
/* ------------------------------------------------------------------------ */
CHGVAR VAR(&SHELLCMD) VALUE('find +
/QNTC/SRVFAX/REPORTCSV/ +
-mtime +
+10 -exec rm ''{}'' '';''')

STRQSH CMD(&SHELLCMD)

x.deseille
Messages : 15
Enregistré le : ven. 22 juin 2007, 17:15:04
Localisation : ANCENIS CEDEX( 44158)
Contact :

(sans texte)

Message par x.deseille »

Merci mais ce n'est pas exactement ce que je souhaite.
Ce que je veux c'est récupérer la date dans un QSH, pas filtrer la lecture sur une date.

Merci quand meme.

x.deseille
Messages : 15
Enregistré le : ven. 22 juin 2007, 17:15:04
Localisation : ANCENIS CEDEX( 44158)
Contact :

(sans texte)

Message par x.deseille »

Je suis sur la piste attr,
c'est très intéressant pour récupérer les caractéristiques du fichier.
Il manque simplement le formattage de la date, exemple :

attr cpystm.qsh CHANGE_TIME ACCESS_TIME

donne le résultat

Fri Jul 1 18:15:04 2011
Fri Jul 1 18:01:05 2011

J'aimerais bien la date avec un format plus parlant (jjmmaa) :P

Si vous avez la solution ?

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

commande ATTR et formattage de la date

Message par cmasse »

la documentation http://publib.boulder.ibm.com/infocente ... hzattr.htm indique que la variable d'environnement LC_TIME permet de préciser le format des dates en sortie
particulièrement en indiquant un format pour "d-t-fmt", voir http://publib.boulder.ibm.com/infocente ... d%45%22%20

merci pour un petit retour si ça marche.
Modifié en dernier par cmasse le lun. 11 juil. 2011, 10:47:01, modifié 1 fois.
Christian Massé (Volubis.fr)

x.deseille
Messages : 15
Enregistré le : ven. 22 juin 2007, 17:15:04
Localisation : ANCENIS CEDEX( 44158)
Contact :

(sans texte)

Message par x.deseille »

Bonjour Christian et merci pour ces conseils, c'est très intéressant.

J'ai bien essayé de paramétrer cette fonction mais cela n'a pas fonctionné.

Voici ce que j'ai fait :

- Création d'un fichier source QLOCALESRC dans ma bib (long 112 comme son homologue de QSYSLOCALE)
- Duplication du membre FR_FR_E (FRANCE/FRENCH EURO-LOCALE SOURCE DEFINITION) dans ce nouveau fichier
- Compilation par la commande CRTLOCALE (0 erreur et nouvel objet de type *LOCALE dans ma bib)
- Création d'un user profile
- Attachement du chemin du fichier Locale au profil (mot clef "LOCALE")

En me connectant avec ce profil, je recois toujours le meme résultat sous le format US de la commande :
attr /save_fac/cpystm.qsh CREATE_TIME
Fri Jul 1 18:01:05 2011

J'ai aussi essayé de modifier les paramètres du mot clef SETJOBATR du profil avec les valeurs suivantes :
*DATFMT
*DATSEP
*DECFMT
*SRTSEQ
*TIMSEP

Mais rien ne change, peut etre est-ce parce que je suis en V5R4 et que la doc fait référence à la V6.

@+
XD

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

LC_TIME

Message par cmasse »

Bonjour,

j'ai moi aussi fait qq essais et ca semble marcher :

1/ création d'un fichier source QLOCALESRC et copie du membre

2/ modification de ligne d_t_fmt "%d %m %y %H:%M:%S"

3/ création de la locale par

Code : Tout sélectionner

CRTLOCALE LOCALE('/QSYS.LIB/AF4W.LIB/FR_MODIF.LOCALE') SRCFILE('/QSYS.LIB/AF4W.LIB/QLOCALESRC.FILE/FR_MODIF.MBR')
4/ ajout de la variable d'environnement LC_TIME à laquelle j'attribue la valeur /QSYS.LIB/AF4W.LIB/FR_MODIF.LOCALE

5/ sous QSH

Code : Tout sélectionner

 attr /tmp  CHANGE_TIME    
 11 07 11 11:45:40         
 $                         
Christian Massé (Volubis.fr)

x.deseille
Messages : 15
Enregistré le : ven. 22 juin 2007, 17:15:04
Localisation : ANCENIS CEDEX( 44158)
Contact :

(sans texte)

Message par x.deseille »

Bonjour Christian,

Super !
Peux-tu préciser le point 4 ? Ajout de la variable LC_TIME
En quelle version as-tu fait le test ?

Merci

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

modifier LC_TIME

Message par cmasse »

pour ajouter une variable d'environnement ADDENVVAR (ou WRKENVVAR pour les voir) en mode IBM i.

en mode QSH export LC_TIME=/QSYS.LIB/AF4W.LIB/FR_MODIF.LOCALE


j'ai fait le test en V6R1, mais je ne vois pas pourquoi ce ne marcherais par en 5.4
Christian Massé (Volubis.fr)

x.deseille
Messages : 15
Enregistré le : ven. 22 juin 2007, 17:15:04
Localisation : ANCENIS CEDEX( 44158)
Contact :

(sans texte)

Message par x.deseille »

J'ai fais un
export LC_TIME=/QSYS.LIB/XD.LIB/FR_FR_E.LOCALE

Et ca fonctionne.

Par contre, le mot clef LOCALE au niveau du USRPRF semble changer des valeurs mais pas celle-ci.

Merci encore pour ces infos.

@+
XD

Répondre