linux - Ubuntu 14.04 arbtt-stats 索引大错误

标签 linux ubuntu haskell time-tracking arbtt

我最近安装了 arbtt,它似乎是一个有趣的、基于规则的自动时间跟踪器。 http://arbtt.nomeata.de/#what

我大部分时间都在使用它,但在收集统计数据 30 分钟左右后,我遇到了以下错误。

Processing data [=>......................................................................................................................................................................................]   1%
arbtt-stats: Prelude.(!!): index too large

有没有人对解决此问题或更好地解决它的方法有任何建议?我对用于创建规则的编码语言没有任何经验(我相信是 Haskell)。到目前为止,我所做的只是尽可能严格地遵循文档。

此错误最终导致该工具无法使用,因为它不会收集超过 30 分钟的数据。要修复它,我必须删除日志并从头开始。我主要对拥有可自定义的、基于规则的时间跟踪器的概念感兴趣,但我绝不局限于使用 arbtt。

根据下面的评论,我在下面包含了更多信息。

当我尝试运行 arbtt-recover 时,我得到一长串看起来像这样的错误。所有这些似乎都与不受支持的 TimeLogEntry 有关。

Trying at position 1726098.
Failed to read value at position 1726098:
   Unsupported TimeLogEntry version tag 0

至于配置文件,这是我目前拥有的。

$idle > 30 ==> tag inactive,

-- A rule that matches on a list of strings
current window $program == ["Chrome", "Firefox"] ==> tag Web,

current window $program == ["skype"]  ==> tag Skype,

current window $program == ["jetbrains-phpstorm"] ==> tag PhpStorm,

( current window $title =~ m!Inbox! ||
  current window $title =~ m!Outlook! ) ==> tag Emails,

( current window $title =~ m!AdWords! ||
  current window $title =~ m!Analytics! ) ==> tag Adwords,

它继续下去,但我相当有信心我对所有其他行都遵循了相同的语法。其余行遵循相同的格式,但对我来说是特定于项目/客户的。如果需要,我很乐意包含文件的其余部分。

最佳答案

如评论中所述:这是一个损坏的 ~/.arbtt/capture.log 案例。您通常可以通过

解决此问题
  • 运行arbtt-recover
  • 然后将 ~/.arbtt/capture.log.recovered 移动到 ~/.arbtt/capture.log

第二个手动步骤是为了避免意外删除太多数据。您可以通过将 --logfile=~/.arbtt/capture.log.recovered 使用恢复的文件来测试恢复的文件是否更好,方法是使用 arbtt-stats .

例如,当出现不正常关机或其他不确定原因时,就会发生数据损坏。但是日志文件格式是这样的,即使在损坏之后(例如,一个样本的部分写入),更多的样本也会被正确写入并且应该被 arbtt-recover 拾取,所以你没有丢失多个样本。

关于linux - Ubuntu 14.04 arbtt-stats 索引大错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31666611/

相关文章:

haskell - cabal 软件包集的独立子集

java - 在java中解析virt-top

linux - mmap 搞乱 - 导致内核挂起

python - 如何获取分隔符出现的合并计数

Emacs - Ubuntu 初始化

ubuntu - nginx 已安装但找不到命令

linux - 如何运行通过 cabal 安装的 texmath?

ubuntu - curl:(18)传输关闭,剩余 2 个字节要读取

haskell - 如何将包依赖项添加到堆栈项目

haskell - ByteString 是否有附加运算符?