一个名为 .asql 的隐藏文件,保存于用户的 home 目录下,记录用户在 asql shell 中输入的命令历史。因此你可以使用方向键浏览命令历史,按下 ENTER 来重复执行之前的命令。
asql 上的示例 SQL 查询下面是几个使用 asql 针对 Apache 日志文件运行 SQL 查询的示例:
Example 1:列出在 2014 年 10 月中请求的来源 / 时间以及 HTTP 状态码。
SELECT source, date, status FROM logs WHERE date >='2014-10-01T00:00:00' ORDER BY source;
Example 2:从小到大显示单个客户端处理的请求大小(bytes)。
SELECT source, SUM(size), AS NUMBER FROM logs GROUP BY source ORDER BY Number DESC;
Example 3:在当前目录中保存数据库为 [filename]。
save [filename]
这样做可以避免使用 load 命令对日志的语法分析所占用的处理时间。
Example 4:在重新进入 asql 后载入数据库。
restore [filename]
Example 5:返回 access 日志中记录的 error 情况。在这个例子中,我们将显示所有返回 HTTP 状态码为 403(access forbidden)的请求。
SELECT source, date, status, request FROM logs WHERE status='403' ORDER BY date
这个例子想要表现的是:虽然 asql 只分析 access 日志,我们还是可以通过使用请求的状态域来显示有 error 情况的请求。
小结:我们体验了 asql 如何帮助我们分析 Apache 日志文件,并将结果通过友好的格式输出。虽然你也可以通过使用命令行的工具(例如 cat 与 grep,uniq,sort,wc 等等之间的管道)来实现类似功能,与此比较起来 asql 展示了它如同瑞士军刀一般的强大功能,使我们在自己的需求下能够通过标准 SQL 查询语句来过滤日志。
希望这篇教程能帮助到你们。
请不要拘束地将评论文章,分享文章,提出疑问。
--------------------------------------分割线 --------------------------------------
Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置
CentOS 5.9下编译安装LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12)
RedHat 5.4下Web服务器架构之源码构建LAMP环境及应用PHPWind
LAMP源码环境搭建WEB服务器Linux+Apache+MySQL+PHP
--------------------------------------分割线 --------------------------------------