创建 bash 命令及其属性的记录

创建 bash 命令及其属性的记录

我想保留我在 bash 上执行的所有操作及其输出的历史记录。

我需要创建一个可以存储的数据库

  1. 命令
  2. 路径(在命令时)
  3. 命令开始时间
  4. 命令结束时间
  5. 命令的输出

我可以使用以下代码将这些变量自动附加到 CSV 文件中吗?bash 命令或 python 脚本

目的:研究模式并优化重复命令,并在编写/测试代码时查看学习曲线

如果不能完全解决,请提供指导或伪代码

答案1

以下是我的做法:

创建一个 bash 脚本。使用此 bash 脚本记录并执行您的 bash 命令。例如,创建一个文件 log.sh,如下所示:

#!/bin/bash
LOGFILE=/path/to/your/logfile.log
touch $LOGFILE
exec 3>&1 4>&2
trap 'exec 2>&4 1>&3' 0 1 2 3 RETURN
exec 1>>$LOGFILE 2>&1
echo "### log command ###"
echo "# start time: $(date)"
echo "# pwd: $(pwd)"
echo "# command: $@"
echo "# output: "
$@
echo "# end time: $(date)"
echo "###################"
exit 0

现在您可以像这样执行 bash 命令./log.sh df -h

它将创建一个日志文件,添加时间注释和重定向所有 stdout 和 stderr对于您向该文件输入的命令。

稍后您可以解析日志文件并从中创建数据库。

相关内容