|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
要明白学好linux不是一件一蹴而就的事,一定要能坚持使用它,特别是在使用初期。
明天碰着一个交换成绩:必要把全体接口中呈现的一个链接改成另外一个链接。固然链接地点是保留在数据库中的,可是因为某些缘故原由,不克不及间接修正数据库中的内容,只能在衬着了局的时分再举行交换。
假如有很好的逻辑封装的话,这个成绩并非甚么难事儿,可恰好代码一团乱,弄不分明究竟哪些接口必要修正。我本盘算依托蛮力挨个文件查,但试了试发明事情量其实太年夜了,没举措只能想一想其余招儿。
最初找到的招儿就是「tcpdump」,经由过程它能够间接过滤服务器衬着的内容:- shell>tcpdump-ieth0srcport80-l-s0-w-|strings|grep-B100www.foo.com
复制代码 由于会见量年夜,以是经由过程一段工夫的采样,就能够捕获到尽年夜部分必要交换的内容。
不外仅仅如许还不敷,由于固然我们过滤出了有成绩的内容,可是我们其实不晓得其对应的地点是甚么,以是我们必要想举措把地点放到呼应了局里往。
假如用PHP的话,能够借助「auto_prepend_file」为一切的PHP呼应增添一个头:- <?phpheader(X-Request-URI:.$_SERVER[REQUEST_URI]);?>
复制代码 假如用Nginx的话,能够借助「add_header」为一切的呼应增添一个头:- http{add_headerX-Request-URI$request_uri;}
复制代码 有了这些展垫事情,再用「tcpdump」过滤内容的时分,就可以直不雅的看到地点了:- HTTP/1.1200OKServer:nginxDate:Fri,22Mar201307:50:39GMTContent-Type:text/htmlTransfer-Encoding:chunkedConnection:closeX-Powered-By:PHPX-Request-URI:<URI>
复制代码 找到了地点,剩下的交换就复杂了,就未几说了。这个成绩其实不难,不外假如选错了办法,那末泯灭的工夫大概会多良多,可见即使是复杂的成绩也值得深图远虑。
BTW:Nginx有一个「Substitution」模块能完成交换,但对本例而言用它有点过了。
功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和grep命令,可以完成非常复杂的操作,如果同样的操作用图形界面的工具来完成,恐怕要多花十几陪的时间。 |
|