unix - commande ps - colonne STIME - manque de précision [résolu] - Shell/Batch - Programmation
Marsh Posté le 13-05-2009 à 12:11:12
Le paramètre LANG permet simplement de changer la présentation de la date selon le langage choisi.
Marsh Posté le 13-05-2009 à 13:24:54
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
Marsh Posté le 13-05-2009 à 13:27:50
Sinon tu peux juste aller chercher la date et l'heure de création du répertoire /proc/<pid>
Marsh Posté le 13-05-2009 à 13:35:14
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 !
Marsh Posté le 13-05-2009 à 14:40:09
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 :
|
(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
Marsh Posté le 13-05-2009 à 14:43:43
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]);' |
Marsh Posté le 13-05-2009 à 14:49:39
Elmoricq a écrit : c'est le nombre de seconde depuis the epoch, suffit ensuite de convertir avec, par exemple, localtime :
|
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
Marsh Posté le 13-05-2009 à 15:07:09
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 |
Marsh Posté le 13-05-2009 à 15:42:18
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 |
(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.
Marsh Posté le 13-05-2009 à 15:47:15
Sinon tu lances gnome-system-monitor, tu affiches la colonne "Démarré" et voilà ?
Marsh Posté le 13-05-2009 à 16:00:29
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
Marsh Posté le 13-05-2009 à 11:08:33
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 :
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"
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