Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1576 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [résolu] unix - commande ps - colonne STIME - manque de précision

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu] unix - commande ps - colonne STIME - manque de précision

n°1884044
gilloux
Posté le 13-05-2009 à 11:08:33  profilanswer
 

Bonjour,
 
Sous UNIX (je suis en particulier sur système AIX), la commande "ps -ef" retourne les processus existants.
Parmi les colonnes affichées par défaut, on trouve STIME, qui représente l'heure de démarrage du processus.
 
Exemple :

Code :
  1. # ps -ef
  2.      UID     PID    PPID   C    STIME    TTY  TIME CMD
  3.     root       1       0   0   Dec 03      - 61:10 /etc/init
  4. document  888982  926080   0 09:31:57  pts/7  0:00 tail -f toto.log
  5. [...]


 
Dans l'exemple, le premier processus a été démarré le 3 décembre dernier, et le 2eme a été démarré à 9h 31min 57sec (soit aujourd'hui soit hier s'il n'est pas encore 9h31 aujourd'hui)
Ainsi, si le processus a été démarré il y a plus de 24h, on perd la précision sur les heures, minutes et secondes (seul les jour et mois sont indiqués)
 
Il parait que l'on peut jouer sur le format avec LANG :
extrait "man ps"

Code :
  1. STIME
  2.             (-f and u flags) The starting time of the process. The LANG environment variables control the appearance of this field.


mais je ne trouve pas comment
 
Quelqu'un a t-il une idée pour récupérer les heures/minutes/secondes d'un processus démarré il y a plus de 24h ?
 
merci


Message édité par gilloux le 13-05-2009 à 15:44:45
mood
Publicité
Posté le 13-05-2009 à 11:08:33  profilanswer
 

n°1884077
Elmoricq
Modérateur
Posté le 13-05-2009 à 12:11:12  profilanswer
 

Le paramètre LANG permet simplement de changer la présentation de la date selon le langage choisi.

n°1884114
gilloux
Posté le 13-05-2009 à 13:24:54  profilanswer
 

Elmoricq a écrit :

Le paramètre LANG permet simplement de changer la présentation de la date selon le langage choisi.


OK merci Elmoricq, ce n'est donc pas un moyen d'afficher plus d'infos...
Mais penses tu qu'il existe une solution ?
Est-il possible que le langage perl (avec lequel j'ai déjà pu récupérer la date de modification d'un fichier sur UNIX à la seconde près) puisse apporter une solution ?
merci
 

n°1884116
Elmoricq
Modérateur
Posté le 13-05-2009 à 13:27:50  profilanswer
 

Sinon tu peux juste aller chercher la date et l'heure de création du répertoire /proc/<pid>

n°1884121
gilloux
Posté le 13-05-2009 à 13:35:14  profilanswer
 

Elmoricq a écrit :

Sinon tu peux juste aller chercher la date et l'heure de création du répertoire /proc/<pid>


Je ne savais pas qu'il existait un répertoire par processus, ça va répondre à mon besoin !
merci !

n°1884213
gilloux
Posté le 13-05-2009 à 14:40:09  profilanswer
 

En fait ce n'est pas bon : je n'arrive pas à récupérer la date de création du répertoire, car l'information ne semble pas visible au niveau des propriétés.
La commande perl ci-dessous retourne les 3 dates suivantes :
- st_atime est la date de dernier accès aux données du fichier (en rouge).
- st_mtime est la date de dernière modification des données du fichier (en vert).
- st_ctime est la date de dernière modification de l'inode lui-même (en bleu).

Code :
  1. # echo `perl -e 'print stat($ARGV[0])' "1384902"`
  2. 04280835167491100003400012422178471242217847124221784710240


(dans la commande "1384902" est le nom du répertoire qui correspond ici au PID du process)
 
donc je suis toujours au point de départ


Message édité par gilloux le 13-05-2009 à 14:42:47
n°1884218
Elmoricq
Modérateur
Posté le 13-05-2009 à 14:43:43  profilanswer
 

c'est le nombre de seconde depuis the epoch, suffit ensuite de convertir avec, par exemple, localtime :

 

$ perl -e 'my @date = localtime(1242217847); printf("%02d/%02d/%04d - %02d:%02d:%02d\n", $date[3], $date[4] + 1, $date[5] + 1900, $date[2], $date[1], $date[0]);'
13/05/2009 - 14:30:47


Message cité 1 fois
Message édité par Elmoricq le 13-05-2009 à 14:43:50
n°1884226
gilloux
Posté le 13-05-2009 à 14:49:39  profilanswer
 

Elmoricq a écrit :

c'est le nombre de seconde depuis the epoch, suffit ensuite de convertir avec, par exemple, localtime :
 

$ perl -e 'my @date = localtime(1242217847); printf("%02d/%02d/%04d - %02d:%02d:%02d\n", $date[3], $date[4] + 1, $date[5] + 1900, $date[2], $date[1], $date[0]);'
13/05/2009 - 14:30:47




 
Merci Elmoricq, mais ce n'est pas le format de la date qui me pose problème, c'est sa valeur : je cherche la date de création du répertoire, et celle-ci n'est pas présente dans les propriétés  :(

n°1884240
Taz
bisounours-codeur
Posté le 13-05-2009 à 15:03:21  profilanswer
 

stat ton_dossier

n°1884248
gilloux
Posté le 13-05-2009 à 15:07:09  profilanswer
 

Taz a écrit :

stat ton_dossier


Merci, mais la commande stat n'existe pas sous AIX.
C'est pour cette raison que je l'exécute en utilisant perl, mais à ce niveau elle ne récupère pas la date de création.

# stat 1384902
ksh: stat:  not found


mood
Publicité
Posté le 13-05-2009 à 15:07:09  profilanswer
 

n°1884270
gilloux
Posté le 13-05-2009 à 15:42:18  profilanswer
 

Il s'avère complètement impossible de récupérer la date de création d'un fichier ou répertoire sur UNIX, cette info n'est tout simplement pas stockée.
 
Par contre, j'ai ma solution pour la date de début du processus, puisque je peux récupérer le temps écoulé depuis le début du processus avec la commande suivante :

ps -ef -o pid,etime|grep 1384902
1384902  2-05:36:43


(ce temps s'affiche au format dd-hh:mm:ss)
 
>2 jours, 5h, 36min et 43sec
 
il suffit de retrancher ce temps à la date actuelle et on obtient la date de début du processus, à la seconde près.

n°1884276
Taz
bisounours-codeur
Posté le 13-05-2009 à 15:47:15  profilanswer
 

Sinon tu lances gnome-system-monitor, tu affiches la colonne "Démarré" et voilà ?

n°1884285
gilloux
Posté le 13-05-2009 à 16:00:29  profilanswer
 

Taz a écrit :

Sinon tu lances gnome-system-monitor, tu affiches la colonne "Démarré" et voilà ?


berk, pas d'environnement de bureau, on parle ligne de commande ici


Message édité par gilloux le 13-05-2009 à 16:01:10
n°1884286
Taz
bisounours-codeur
Posté le 13-05-2009 à 16:03:39  profilanswer
 

bah c'est porté pour AIX :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [résolu] unix - commande ps - colonne STIME - manque de précision

 

Sujets relatifs
[PHP][Resolu] Envoyer un signal à un processus depuis une page PHP ?Trier 2 "bouts" de colonne par date
[résolu] Div en overflow:auto, garder le focus en bas ?[Résolu] Problème d'échappement d'apostrophes
[résolu] problème de débutant[Résolu] Alerte email
[RESOLU] Initialisation paramètre[SQL] Jointure avec un OR [Résolu]
[RESOLU] __call et les tableauxcommande jar et chemin relatifs des class
Plus de sujets relatifs à : [résolu] unix - commande ps - colonne STIME - manque de précision


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR