我如何记录通过终端完成的所有工作?例如,我想要记录通过终端在数据库上完成的所有工作。
答案1
当您准备开始记录日志文件时,请输入:
script screen.log
现在,直到您停止脚本为止,终端中的所有输入和输出都将存储在 screen.log 中。完成后,只需输入:
exit
您的 screen.log 文件将存储在本地目录中。如果您想要重定向它,请使用绝对路径名,例如~/screen.log
。这将完全满足您的要求。
答案2
你可能想尝试一下海胆属。除了录制之外,您还可以共享它并将播放器嵌入到您的博客、文章或会议谈话中。
答案3
我有一个更好的方法,使用 syslog 来记录每个 shell 命令,这可能因 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]"'
步骤 # 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]:touch 测试命令 [0]
答案4
健保完美解决您的问题。此工具会自动捕获有关每个执行命令(及其输出)的所有潜在有用信息。
通过使用 提供的高级查询机制,您nhi
可以轻松检索整个 shell 会话(或终端输出)或仅检索您感兴趣的命令nhi
。
笔记:
我是这个工具的创建者。如果您有任何问题,请随时提问。