我刚刚志愿参与了一个项目,该项目涉及创建一个程序来编辑服务器上的日志文件。我所说的编辑是指将有用的信息提取到另一个位置,并删除搜索到的具有某些文本标识符的文本行。
我的问题是我不知道最有效的方法来做到这一点。
最好使用像 python 这样的脚本语言吗?或者我应该创建外壳文件?
我计划让 cron 每天晚上运行这项工作。
答案1
就我个人而言,我会使用 Perl。那是因为我熟悉 Perl,我工作的公司的其他人也很熟悉。我们的软件主要是用 Perl 编写的。
但是,这并不是真正适合您的答案。您需要考虑:
- 这个问题有多微不足道?如果它真的很琐碎(“抓取包含 FOO 的行”),您可以只使用
grep
. - 它有可能保持平凡吗?如果它有可能很快变得不平凡,那么您可能只想跳过平凡解决方案阶段,因为您下周只需重新做一遍。
假设这不是微不足道的,那么:
- 您熟悉哪些语言?生产代码并不是学习新语言的一个很好的目标。
- 您的同事熟悉哪些语言?他们将来必须维护您的程序。
- 在您的选择中,哪个最容易编写程序?为了维护它?
- 请记住哪些语言有可以帮助您的库。请务必检查。
如果事实证明您和您所有的同事都了解 Java,但不懂 Perl、Python 或 Ruby,那么 Java 可能是正确的答案 — 尽管单独来看 Java 不太适合这项任务。如果他们都懂 PHP,甚至 C++,也是如此。
PS:编辑日志有点奇怪。如果您描述您要解决的问题,您可能会在这里获得更多帮助。
答案2
您的描述“将有用信息提取到另一个位置并删除搜索到的具有某些文本标识符的文本行”只是对我尖叫“Perl”。根据日志文件格式(我听说过 JSON 日志文件,当然也有 CSV 日志文件),Perl 程序甚至可能不需要任何非标准模块。您甚至不会像使用 PHP 程序那样突破 Perl 的限制。
由于您正在从 运行这个假设的程序cron
,因此您可能会在它周围有一个bash
或sh
脚本,以设置环境变量等。