linux shell下处理web log

现在要将服务器的web log经过分析后将对应的分析结果保存到数据库里,因此需要在服务器后台自动运行,采用shell脚本进行处理,处理过程中遇到两个问题,将解决方法记录如下。

1. 合并昨日对应网站的web log

三个网站(中文版、英文版、专题版)的log记录要合并,而且现在为了保存更多的log,是将每个log按照日期的方式进行命令的,即:

website-access-20141225.log

但也有可能是.log.1的形式(之前是两个形式并存)。
因此需要在shell中获取昨日日期然后进行合并。在shell获取日期可以使用date命令,搜索后发现获取昨日日期的命令如下;

date –date=”yesterday” +%Y%m%d

或者:

date –date=”1 day ago” +%Y%m%d

然后就可以使用mergelog命令将所有的log合并。

2. 运行psql命令
需要使用管理员账号对数据库变更(用到copy命令),因此需要使用su切换到postgres账号并运行对应的sql。发现这个解决方法也比较简单:

su -c “psql db_name -f log.sql” postgres

其中-c就是运行指定的命令。


已发布

分类

,

来自

标签:

评论

《 “linux shell下处理web log” 》 有 128 条评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注