ターミナルを介して行われたすべての作業のログを保存するにはどうすればよいですか?たとえば、ターミナルを介してデータベースで行われたすべての作業の記録が必要です。
ログファイルの記録を開始する準備ができたら、次のように入力します。
script screen.log
これで、スクリプトを停止するまで、ターミナルでのすべての入力と出力はscreen.logに保存されます。完了したら、次のように入力します。
exit
Screen.logファイルはローカルディレクトリに保存されます。リダイレクトする場合は、~/screen.log
などの絶対パス名を使用します。これはまさにあなたが探しているものです。
アシネマ を試してみてください。録音を作成するだけでなく、それを共有して、ブログ、記事、またはカンファレンストークにプレーヤーを埋め込むことができます。
すべてのシェルコマンドのログにsyslogを使用するより良い方法があります。これはLinuxディストリビューションによって異なる場合がありますが、方法は変わりません。
いくつかの手順に従う必要があります。
ステップ#1(Syslogサービスの作成)
# vim /etc/rsyslog.d/bash.conf
local6.* /var/log/commands.log
ステップ#2(bashrcを開き、以下のコマンドを入力します)
# vim /root/.bashrc
# Enable CLI Logging by Mansur 08-12-2016
whoami="$(whoami)@$(echo $SSH_CONNECTION | awk '{print $1}')"export Prompt_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$whoami [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'
Ste#3(Syslogサービスの再起動)
# /etc/init.d/rsyslog
ログのサンプルは次のとおりです。
12月7日22:13:00 validationdb2 mahasan:root @ export [13291]:tail -f /var/log/mysql/mysql.log [0] 12月7 22:13:09 validationdb2 mahasan:root @ export [13291]:ls -lh [0] Dec 7 22:13:27 validationdb2 mahasan:root @ export [13291]:タッチテストコマンド[0]