Saya baru saja menjalankan proses yang berjalan lama dari bash prompt. Kalau dipikir-pikir, saya berharap bisa berlari time
di atasnya, atau mencatat waktu di mana saya menendang itu.
Apakah ada cara untuk mendapatkan informasi ini secara retrospektif? The .bash_history
tampaknya tidak menyertakan cap waktu.
Dalam kasus khusus saya itu Mac OS X, tapi saya tertarik pada solusi Unix / Linux umum.
Untuk memperjelas, proses sekarang telah selesai, dan saya lebih suka untuk tidak menjalankannya lagi kecuali benar-benar diperlukan!
bash
osx
command-history
timestamps
audit
Graham Borland
sumber
sumber
Jawaban:
bash
sebenarnya mengingat waktu sampai Anda menutup shell.Jadi cobalah berlari
Jika Anda juga menaruh
di Anda
~/.bashrc
, itu juga akan ditulis~/.bash_history
pada saat keluar, sehingga Anda dapat memeriksa apa yang terjadi di sesi shell sebelumnya juga.sumber
Jawaban Mikel baik, kecuali bahwa jika Anda menjalankan program dan pergi untuk sementara waktu, Anda tidak dapat benar-benar yakin ketika proses selesai. Jadi, bahkan jika Anda punya waktu ketika memulai program, Anda tidak tahu berapa banyak waktu yang dibutuhkan.
Saya tidak punya solusi untuk kasus ini ketika Anda perlu mencari tahu tanpa persiapan. Namun jika Anda akan melakukannya lagi, Anda dapat melakukannya seperti saya: cetak waktu saat ini bersama dengan prompt shell. Dengan begitu, jika Anda masih memiliki terminal terbuka, Anda dapat melihat waktu ketika Anda memulai program, dan waktu ketika prompt berikutnya dicetak. Sedikit matematika akan membuat Anda mendapatkan waktu eksekusi.
Untuk melakukan ini
bash
, letakkan ini di.bashrc
:Dalam
zsh
, letakkan ini di.zshrc
:Di atas akan memberikan prompt shell Anda format
<time> <username>@<hostname> <current dir> <$ or % or #>
. Untuk kerang yang berbeda dan permintaan mewah yang gila , baca halaman manual cangkang Anda.Catatan: ini mungkin tidak akan membantu jika Anda membutuhkan presisi tinggi, atau jika program menghasilkan begitu banyak output sehingga Anda tidak dapat melihat prompt sebelumnya.
sumber
Jika prosesnya masih berjalan, Anda dapat menggunakan
ps
untuk mendapatkan waktu mulai dan berapa banyak waktu CPU telah digunakan.Misalnya, untuk semua proses:
Untuk pid tertentu (12345):
sumber
ps
di linux,ps
di MacOSX mungkin BSD dan saya tidak yakin dengan argumennya.lastcomm (jika proses akuntansi BSD diaktifkan) akan memberi Anda durasi eksekusi (dalam arti terbatas yang mungkin atau mungkin tidak memadai).
sumber