现在要将服务器的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就是运行指定的命令。
发表回复