回答:
ログファイルの記録を開始する準備ができたら、次のように入力します。
script screen.log
これで、スクリプトを停止するまで、ターミナルでのすべての入力と出力はscreen.logに保存されます。完了したら、次のように入力します。
exit
screen.logファイルはローカルディレクトリに保存されます。リダイレクトする場合は、などの絶対パス名を使用し~/screen.log
ます。これはまさにあなたが探しているものです。
man script
)にもvi
(エディター)と記載されています
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] 12月7日22:13:27 validationdb2 mahasan:root @ export [13291]:タッチテストコマンド[0]