Ubuntu 14.04 arbtt-stats索引到大错误

问题描述 投票:4回答:1

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

我大部分时间都在工作,但是在收集统计数据大约30分钟后,我最终得到了以下错误。

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

有没有人对我可以解决这个问题的方法有什么建议,或者更好的是,解决它?我对用于创建规则的编码语言有0次经验(我相信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,

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

linux ubuntu haskell time-tracking arbtt
1个回答
6
投票

正如评论中所讨论的:这是一个腐败的~/.arbtt/capture.log案例。你通常可以解决这个问题

  • 运行arbtt-recover
  • 然后将~/.arbtt/capture.log.recovered移动到~/.arbtt/capture.log

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

例如,当存在不正常的关闭或其他未确定的原因时,会发生数据损坏。但是日志文件格式即使在损坏(例如,部分写入一个样本)之后,其他样本也会被正确写入并且应该被arbtt-recover选中,因此您不会丢失多个样本。

© www.soinside.com 2019 - 2024. All rights reserved.