Interação conveniente do console com carimbo de data/hora, por exemplo, usando aliases de shell?

Interação conveniente do console com carimbo de data/hora, por exemplo, usando aliases de shell?

Então, muitas vezes descubro que realmente quero saber quando iniciei um processo (ou script) depois de descobrir que estava demorando muito. algo que agora sei que leva séculos).. e então o processo pode terminar enquanto eu estiver longe do terminal.

Isso me fez pensar - é possível distorcer o alias do shell de forma que, por padrão, uma 'data' seja invocada antes e depois de cada entrada de linha de comando? Seria muito útil às vezes poder rolar para trás no terminal e ter uma ideia de quanto tempo as coisas demoraram.

Outras pessoas têm maneiras inteligentes de resolver isso? Tenho certeza de que é um cenário bastante comum.

Em termos de soluções com esta abordagem, suponho que esteja um pouco relacionado com este Q. Execute um subshell bash interativo com comandos iniciais sem retornar ao shell ("super") imediatamente

onde está claro que você pode acrescentar comandos. mas isso é apenas uma parte da solução. Talvez pré-pendente e, em seguida, obter o prompt do shell para mostrar a hora atual seria uma solução bastante interessante?

Pensamentos?

Responder1

Você pode simplesmente modificar sua PS1variável de prompt do shell para mostrar o carimbo de data/hora atual. Um dos seguintes pode ser usado:

\t     the current time in 24-hour HH:MM:SS format
\T     the current time in 12-hour HH:MM:SS format
\@     the current time in 12-hour am/pm format
\A     the current time in 24-hour HH:MM format

Você pode encontrá-los com outras opções em man bash. Edite seu .bashrcarquivo para modificar PS1conforme desejado.

Você pode então determinar quando qualquer comando será executado. Obviamente, se você ficar ocioso por muito tempo antes de pressionar Enter, não obterá o tempo preciso.

Editar:Outra possibilidade é usar tso utilitário para mostrar como o seu script está progredindo. Execute seu script como:

$ /path/to/script | ts

Cada instrução echo será exibida com um carimbo de data/hora.

Responder2

OBSERVAÇÃO:esta não é uma resposta direta ao que o OP está perguntando, mas talvez possa ser útil para resolver seu problema.

Para processos já iniciados, você pode recuperar a data/hora de início emitindo um arquivo ps ax -F. Ele mostrará uma saída semelhante à seguinte:

apache 1733 1678 0 83467 7752 0 10:07 ? S 0:00 /usr/sbin/httpd
apache 1734 1678 0 83467 7752 0 10:07 ? S 0:00 /usr/sbin/httpd
apache 1735 1678 0 83467 7752 0 10:07 ? S 0:00 /usr/sbin/httpd
apache 1736 1678 0 83467 7768 0 10:07 ? S 0:00 /usr/sbin/httpd
apache 1737 1678 0 83467 7752 0 10:07 ? S 0:00 /usr/sbin/httpd
apache 1738 1678 0 83467 7752 0 10:07 ? S 0:00 /usr/sbin/httpd

Como você pode ver, a 8ª coluna mostra a data/hora de início.

informação relacionada