sqlserve的ErrorLog文件有时候会碰到文件很大的情况,可能通过命令xp_readerrorlog 或 sp_readerrorlog 执行,可以加搜索文本或起止时间

复制代码

--    日志查看--exec xp_readerrorlog @FileNum,@Type,@SearchText1,@SearchText2,@StartTime,@EndTime,@order--@FileNum : 日志编号--@Type : 查询类型(1:Sql Server 日志 ; 2:代理错误日志)--@SearchText1 : 搜索文本--@SearchText2 : 搜索文本(与 @SearchText1 为"与"关系)--@StartTime : 日志查询起始时间--@StartTime : 日志查询结束时间--@order : 时间排序(ASC 或 DESC)EXEC xp_readerrorlog 0,1,N'无法打开',N'dbname','2017-11-20','2017-11-30','DESC'exec sp_readerrorlog 0,1,'无法打开','dbname'

复制代码

sp_readerrorlog 一共四个参数(即xp_readerrorlog的前四个参数)

使用sp_helptext可以看出,sp_readerrorlog其实就是调用的xp_readerrorlog

查询SQL Agent 当前日志信息

Exec xp_readerrorlog 0,2

 

另:通过存储过程sp_cycle_errorlog可以生成新的日志文件,并循环错误日志扩展编号,就如同重新启动服务时候一样。

    EXEC sp_cycle_errorlog    GO


作为一个合格的程序员,应该抱着在哪里都要加班的理想。

为了在家调试方便,老高使用frp将自己放在公司的开发机器的ssh端口开放出来了,但是配置frp客户端的过程中总是出现下面的一句话:

2019/08/30 23:42:47 [W] [service.go:82] login to server failed: EOF
EOF

开始怀疑是frp的版本问题,于是客户端和服务端都换上了最新的版本,结果还是无法解决问题,继续尝试更换端口,问题依旧。

网上搜索一圈,发现遇到login to server failed: EOF问题的人还真不少,下面看看老高是如何解决的吧!

本地抓包

开启Wireshark,选择网卡,输入过滤规则:

tcp and ip.addr==xxx.xxx.220.109

wireshark 抓包

后面的那三个RST包很可疑,其中还有三个IRC协议的包,打开看一下,发现原来是认证数据。

{"version":"0.28.2","hostname":"","os":"darwin","arch":"amd64","user":"","privilege_key":"144fa23b09635f403ccd18","timestamp":1567119104,"run_id":"","pool_count":1}

服务端抓包

打开终端,输入命令

# xxxx 为frp监听端口tcpdump -i eth0  port xxxx -n

23:57:54.041136 IP 180.167.229.162.64674 > xx.xx.xx.xx.PPPP: Flags [S], seq 2454088299, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val 1598952560 ecr 0,sackOK,eol], length 0
23:57:54.041203 IP xx.xx.xx.xx.PPPP > 180.167.229.162.64674: Flags [S.], seq 2502814427, ack 2454088300, win 65160, options [mss 1460,sackOK,TS val 3508779989 ecr 1598952560,nop,wscale 6], length 0
23:57:54.171283 IP 180.167.229.162.64674 > xx.xx.xx.xx.PPPP: Flags [.], ack 1, win 2058, options [nop,nop,TS val 1598952691 ecr 3508779989], length 0
23:57:54.171670 IP 180.167.229.162.64674 > xx.xx.xx.xx.PPPP: Flags [P.], seq 1:13, ack 1, win 2058, options [nop,nop,TS val 1598952692 ecr 3508779989], length 12
23:57:54.171694 IP xx.xx.xx.xx.PPPP > 180.167.229.162.64674: Flags [.], ack 13, win 1018, options [nop,nop,TS val 3508780120 ecr 1598952692], length 0
23:57:54.171896 IP xx.xx.xx.xx.PPPP > 180.167.229.162.64674: Flags [P.], seq 1:13, ack 13, win 1018, options [nop,nop,TS val 3508780120 ecr 1598952692], length 12
23:57:54.172366 IP 180.167.229.162.64674 > xx.xx.xx.xx.PPPP: Flags [P.], seq 13:25, ack 1, win 2058, options [nop,nop,TS val 1598952692 ecr 3508779989], length 12
23:57:54.172391 IP 180.167.229.162.64674 > xx.xx.xx.xx.PPPP: Flags [R.], seq 25, ack 1, win 8224, length 0
23:57:54.301735 IP 180.167.229.162.64674 > xx.xx.xx.xx.PPPP: Flags [R.], seq 13, ack 1, win 8224, length 0
23:57:54.302089 IP 180.167.229.162.64674 > xx.xx.xx.xx.PPPP: Flags [R.], seq 13, ack 13, win 8224, length 0

好嘛,注意最后三个包,也是RST,而且方向刚好和我在本地抓包相反,很明显,这是受到了替身攻击!

一、选题

工程类搜索型:

定向采集 3-4 个新闻网站, 实现这些网站信息的抽取、索引和检索。网页数 目不少于 10 万条。能按相关度、时间、热度 (需要自己定义) 等属性进行排序, 能实现相似 新闻的自动聚类。
要求: 有相关搜索推荐、snippet 生成、结果预览 (鼠标移到相关结果, 能预览) 功能

二、开发工具

  • jdk 版本:1.7

  • 服务器:Tomcat7.0

  • python:2.7

  • scrapy:1.0

三、设计方案

3.1整体思路

在实现新闻信息检索系统时首先进行了信息采集,信息采集结束之后使用 Lucene 提供的 api 构建索引库, 前端使用 jsp 接收用户查询,在后台使用 servlet 对用户查询进 行分词处理,之后到索引库中进行文档匹配, 最后把查询结果集反馈给用户并在前端页面中 展示。

3.2信息采集

Scrapy 是 Python 开发的一个快速、高层次的屏幕抓取和 web 抓取框架,用于抓取 web 站点并从页面中提取结构化的数据。我们采集了 10w+ 新闻数据, 新闻信息以 json 文件格 式保存。scrapy 采集流程:
这里写图片描述
采集到的新闻数据:
这里写图片描述
新闻格式:
这里写图片描述

3.3倒排索引构建

在索引构建模块,主要包括下面三个关键步骤: 数据预处理、新闻内容分词、构建倒排 索引。
**数据预处理:**Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象, 或者反过来。我们使用 Gson 把 json 文件转换为 News 对象
**中文分词:**IK Analyzer 是一个开源的,基于 java 语言开发的轻量级的中文分词工具 包,IK 发展为面向 Java 的公用分词组件,独立于 Lucene 项目,同时提供了对 Lucene 的默 认优化实现。IK 分词采用了特有的“正向迭代最细粒度切分算法“, 支持细粒度和智能分词两 种切分模式, 并且采用了多子处理器分析模式, 支持英文字母、数字、中文词汇等分词处理, 兼容韩文、日文字符。
**构建倒排索引:**Lucene 提供了构建倒排索引的方法,步骤如下图所示:
这里写图片描述
Luke 是一个用于 Lucene 搜索引擎的,方便开发和诊断的第三方工具,它可以访问
现有 Lucene 的索引. 使用 luke 打开索引目录,可以看到新闻信息被存储到索引库中。
这里写图片描述

3.4索引查询

索引创建好以后,查询可分为以下几个步骤:
1. 设置查询索引的目录 (这里就是上面创建索引的目录).
2. 创建 indexSearcher.
3. 设置 query 的分词方式
4. 设置查询域, 比如查询域为 news title, 那么就到新闻标题域去比对 5. 设置查询字符串,也就是要查询的关键词.
6. 返回结果是一个文档集合,放在 TopDocs 中,通过循环 TopDocs 数组输出查询结果. 用户一般只看前几页的数据,为了加快前端的数据展示, 返回前 1000 条数据到前台。

3.5关键字高亮

检索结果高亮对于用户的体验度和友好度非常重要,可以快速标记出用户检索对关键 词。Lucene 的 Highlighter 类可以用于返回文档中的关键字高亮,通过在关键字前面添加 css 片段来实现。

3.6用户界面

使用 jsp 编写用户界面,服务器为 Tomcat 7.0, 用户输入关键词以后提交表单,后
台使用 servlet 接收用户查询, 之后把查询字符串作为搜索的 key 到索引库中搜索文档。检索效果:
这里写图片描述

3.7按时间排序和结果分页

按时间排序: 所有的新闻结果存放在一个 list 集合中,集合中的每个元素为一个 News 对象, 通过重写 Comparator 类中的 compare 方法实现按集合中每个新闻元素的 Time 排 序。
结果分页: 定义了一个 Page 类用来记录当前页、总页数、每页多少条数据、总的数据 数、每页起始数、每页终止数、是否有下一页、是否有前一页。

四、参考资料

下面列出可参考的资料:
1. lucene全文检索基础
2. lucene创建索引
3. Lucene查询索引
4. Lucene查询结果高亮
5. Lucene 查询(Query)子类
6. java操作json
7. java集合
8. servlet基础

五、总结

开源工具的使用显著提高了开 发效率,但build from ground还需要学习很多东西,继续沉淀。
欢迎批评指正。


简单记录一下搜索引擎的基本原理和搭建步骤。


搜索引擎基本框架




搭建搜索引擎主要分为三个步骤:Web信息的搜集;信息的索引与检索;Web服务提供接口。



1.信息搜集

信息搜集的原理是将互联网看成一个大的图,则信息搜集可以看成是图的遍历,目的是为了获取高质量的网页,其搜集的策略就有广度优先搜索和深度优先搜索及网站采集和全局URL采集等。推荐的开源信息搜集工具是Weblech,Weblech的基本流程图为:






2.索引与搜索

在建立索引上,大规模数据的索引常常使用倒排索引,具体的介绍百度百科介绍的挺好:倒排索引,建立倒排索引的流程如下(在分词的同时还需要有英文的词根还原,去除停用词等处理):



检索是用户提交一个查询(Query),搜索引擎查找与该查询相关结果的过程。检索的模型包括布尔模型,向量空间模型等。在检索过程中有一些判断网页等级/重要性的方法比如Google的PageRank,IBM的HITS算法等。


推荐的开源索引及检索工具为全文检索工具包Lucence。关于Lucence的具体介绍见上一篇文章Lucence全文搜索框架。



3.Web接口

用户查询请求的处理程序利用脚本语言ASP,PHP,JSP等编写即可。


接口的主要功能为:1)获取用户查询式:把用户通过Form输入的查询语句封装发送给检索服务器。2)显示结果:从检索服务器获取结果,缓存幵分页呈现给用户。


推荐的开源Web服务器工具为Tomcat。



————————————————

版权声明:本文为CSDN博主「qiuyang0607」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qiuyoungster/article/details/7657369