Je viens d'exécuter un processus de longue durée à partir de l'invite bash. Avec le recul, j'aurais aimé courir time
dessus, ou noter l'heure à laquelle je l'ai lancé.
Existe-t-il un moyen d'obtenir ces informations rétrospectivement? Le .bash_history
ne semble pas inclure d'horodatage.
Dans mon cas particulier, c'est Mac OS X, mais je suis intéressé par les solutions générales Unix / Linux.
Pour clarifier, le processus est maintenant terminé, et je préfère ne pas le relancer à moins que cela ne soit absolument nécessaire!
bash
osx
command-history
timestamps
audit
Graham Borland
la source
la source
Réponses:
bash
se souvient en fait des temps jusqu'à ce que vous fermiez la coque.Alors essayez de courir
Si vous mettez également
dans votre
~/.bashrc
, il sera également écrit à la~/.bash_history
sortie, afin que vous puissiez également vérifier ce qui s'est passé dans les sessions shell précédentes.la source
La réponse de Mikel est bonne, sauf que si vous exécutez le programme et que vous vous absentez pendant un certain temps, vous ne pouvez pas vraiment être sûr de la fin du processus. Donc, même si vous avez le temps lorsque vous avez commencé le programme, vous ne savez pas combien de temps cela a pris.
Je n'ai pas de solution pour le cas où vous devez le découvrir sans préparation. Cependant, si vous voulez recommencer, vous pouvez faire comme moi: imprimer l'heure actuelle avec l'invite du shell. De cette façon, si le terminal est toujours ouvert, vous pouvez voir l'heure à laquelle vous avez démarré le programme et l'heure à laquelle l'invite suivante est imprimée. Un peu de calcul vous donnera le temps d'exécution.
Pour ce faire
bash
, mettez ceci dans votre.bashrc
:Dans
zsh
, mettez ceci dans votre.zshrc
:Ce qui précède donnera à votre invite shell un format de
<time> <username>@<hostname> <current dir> <$ or % or #>
. Pour différents shells et invites fantaisies folles , lisez la page de manuel de votre shell.Remarque: cela n'aidera probablement pas si vous avez besoin d'une grande précision ou si le programme produit tellement de résultats que vous ne pouvez pas voir l'invite précédente.
la source
Si le processus est toujours en cours d'exécution, vous pouvez utiliser
ps
pour obtenir l'heure à laquelle il a démarré et combien de temps CPU il a utilisé.Par exemple, pour tous les processus:
Pour un pid particulier (12345):
la source
ps
sous linux, leps
sous MacOSX pourrait être BSD et je ne suis pas sûr des arguments.lastcomm (si la comptabilité des processus BSD est activée) vous donnera la durée d'exécution (dans un sens limité qui peut ou non être adéquat).
la source