Page 1 sur 1

QSHELL retrouver date fichier

Posté : ven. 01 juil. 2011, 15:49:30
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

(sans texte)

Posté : ven. 01 juil. 2011, 16:04:21
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)

(sans texte)

Posté : ven. 01 juil. 2011, 16:23:53
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.

(sans texte)

Posté : ven. 01 juil. 2011, 17:22:36
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 ?

commande ATTR et formattage de la date

Posté : lun. 04 juil. 2011, 08:09:30
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.

(sans texte)

Posté : mer. 06 juil. 2011, 17:03:17
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

LC_TIME

Posté : lun. 11 juil. 2011, 11:15:33
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         
 $                         

(sans texte)

Posté : lun. 11 juil. 2011, 13:53:22
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

modifier LC_TIME

Posté : lun. 11 juil. 2011, 14:17:56
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

(sans texte)

Posté : lun. 11 juil. 2011, 14:32:52
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