it-swarm-ja.com

すべてのターミナルセッションを自動的に記録するにはどうすればよいですか?

historyscriptasciinemaなどのツールを使用して、xterm(つまり、bash/sh)セッションを記録および確認するのが好きです。典型的な一般的な管理上の理由、そして時には包括的な研究/改訂のため。学習ツールとして。

  • デフォルトの$Shellを、次のようなツールやコマンドへの直接パスとして設定することを考えました。

    • /bin/script transcript.log;
    • /bin/asciinema rec -w0.5 term_log.json;
  • ただし、これらのツールは通常、デフォルトの$Shellセット(つまり、/bin/bash/bin/sh/bin/zshなど)に依存しています。

  • また、システム変数($Shell$TERMなど)を再定義したり、config(*.conf)とdot(~/.bashrc)で機能させようとしたりしたいと思います。/~/.bash_profile)ファイルには、あらゆる種類の穴と潜在的な問題がたくさんあります。

  • ただし、セッションのトランスクリプトが必要であると判断または認識した場合は、それは事後であるか、すでに興味深い部分、またはそのようなシナリオの途中になります。

すべて(できればstdinstdout(および該当する場合はstderr)など)を自動的にログに記録するようにこのような設定を行う正しい、またはベストプラクティスは何ですか?

1
voices

.bash_profileまたは.bashrcでこのようなものが機能する可能性があります。

if test -t 0 -a -t 1 -a -z "$SCRIPTING"
then
    export SCRIPTING="$HOME/.script.$(date +%Y%m%d_%H%M%S).$$)"
    exec script "$SCRIPTING"
fi
1
roaima