摘要: 本文来自于我的个人博客http://www.log4myself.com/archives/363前言在前面一片文章里《如何在shell中处理异常(PART1)》,简单得介绍了几种如何在shell中处理异常的方法,本文继续介绍几种用法,其实说是几种,就一种。。就是合理使用trap。本文主要还是讲如何用在shell中用trap去处理各种事情,当然不仅仅是指异常。不过,我们首先应该讲得是异常。用trap处理异常之前在《shell中的trap和expr》里简单得介绍过了trap,所以这次我们就直接上代码,上处理异常的代码,这样更加清晰明了,简单直接。先再重复下trap的使用方法吧:trap [COM 阅读全文
posted @ 2012-12-18 21:40 clam 阅读(2556) 评论(0) 推荐(1) 编辑
摘要: 本文来自于我的博客http://www.log4myself.com/archives/339本来就想今天写写在shell中如何处理异常,结果看了一天《复活密码》,然后晚上又在看《危机边缘》,结果就到了现在了。。哎,罪过罪过啊,算了,废话不多说了,开始写。前言似乎好像大概有句话是这么说得,好程序与坏程序之间的区别就在于它的鲁棒性,也就是在异常情况下该程序是否还是在可hold住状态,能否不死,不崩溃,或者不做出一些超出预期的事情。那要做好这些,自然而然就要学会如何去处理异常。平时写php或者java程序等等的时候,很多人都会去注重对于异常的处理,比如try..catch等等,但往往在写一些脚本的 阅读全文
posted @ 2012-12-17 14:32 clam 阅读(14700) 评论(1) 推荐(2) 编辑
摘要: 本文来自于我的博客http://www.log4myself.info/archives/318前言实在不知道这个文章名应怎么写了,就随便写了这么一个奇怪的名字。反正就是来讲trap和expr。trap和expr是shell中的两个命令,后面那个命令大家应该都很熟,就是进行四则运算的,而前面那个命令可能不写shell脚本的人不太熟。这个我下面会讲到它的简单作用。但看到这里,或许大家还是在奇怪我为什么要写这两个命令,就是说为什么这两个命令会联系在一起,哎,这主要在于我工作时写脚本时遇到的一个问题。使这俩本来看起来互不相干的命令联系在了一起。首先讲一下trap这个命令是干什么用得。traptrap 阅读全文
posted @ 2012-12-15 22:59 clam 阅读(2187) 评论(0) 推荐(0) 编辑
摘要: 先前写了一篇文章,简要的介绍了工作中遇到的有关井号的问题。可参照url中的井号 但今天又发现了新的问题。 假设一个url是这样的/view/1.html#fragment,井号后面的内容是不传给server端的,而server端给出的 301 location是:/view/1.htm,那么浏览器最终跳转到的url应该是/view/1.htm#fragment,还是/view/1.htm呢?在浏览器上试了下,发现在chrome18中是跳转到/view/1.htm#fragment,也就是加上了井号(#)后面的内容,而在IE8中,是直接跳到了/view/1.htm,丢掉了井号(#)后面的内容。 阅读全文
posted @ 2012-08-27 14:27 clam 阅读(1514) 评论(0) 推荐(0) 编辑
摘要: 在上一篇文章数据库事务的实现(一) 故障恢复 (undo日志)中,我们介绍了undolog在数据恢复中的应用,这一篇文章仍会继续介绍undolog,但会深入介绍使用undolog进行数据恢复。上一章的结尾我们留下了一个问题,就是在上一章所介绍的模型中,恢复管理器必须要通过全篇扫描整个undolog进行日志恢复,这样做显然是没有太大必要的,因为系统中断肯定是在最后几个事务受到影响,前面的事务应该已经完成commit或者rollback了,不会出现abort的情况,那我们如何知道哪些事务受到了影响呢,如果我们知道了哪一些事务受到了影响,那我们就可以不用全篇进行扫描,而仅仅扫描很小的一部分就可以了。 阅读全文
posted @ 2012-08-27 08:22 clam 阅读(2417) 评论(1) 推荐(5) 编辑
摘要: 前言事务是数据库中的重要组成部分。针对于事务本身的介绍,大家可以google下其他文章。本篇文章的目的不在于介绍事务是什么,而重点想描述的是事务是如何实现的。所以本篇文章及接下来的几篇文章都是描述数据库系统中事务的实现,希望通过这几篇文章将自己的知识做一下总结,当然,如果在总结的同时,可以给各位朋友带来相应的益处那是最好的了。如果文章有不妥之处,欢迎各位朋友指正。简介保证数据的一致性是数据库的一个最最基本的功能,那数据库在机器down机或者出现其他意外的情况下是如何去保证数据库的数据的一致性的呢?本文主要围绕这个话题,介绍undo日志和redo日志这两种保持数据一致性的机制。undolog和r 阅读全文
posted @ 2012-08-27 08:21 clam 阅读(3365) 评论(1) 推荐(2) 编辑
摘要: shell本身是非常强大的,而工程师在追查线上问题时,如何能够更加快速更加有效的定位问题,用好shell非常关键。下面是我总结的几个在追查问题时常用的shell命令。大家可以参考下。大家有好的命令,也可以在这之上完善。1、日志分析类:(1)cut -d ‘’ -f4 wap_log |sort |uniq -c比如cpu idle急剧下降,要看一下当前的流量如何,是否是由于流量突增引起。可以使用该命令:其中wap_log是日志名,4 是时间那一列,简单介绍下这个shell命令。这是一行实例日志行:218.203.63.190 - - [09/Feb/2012:12:15:03 +0800] & 阅读全文
posted @ 2012-03-29 11:55 clam 阅读(1358) 评论(0) 推荐(1) 编辑
摘要: 一直以来,对于mysql的query_cache,在网上就流行着这样的说法,“对于mysql的query_cache键值就是mysql的query,所以,如果在query中有任何的不同,包括多了个空格,都会导致mysql认为是不同的查询”,其实,这一种说法是不完全正确的。首先第一点,mysql的query_cache的键值并不是简单的query,而是query加databasename加flag。这个从源码中就可以看出。在这里不做重点描述,后续可以针对于这一点再具体分析。重要的是第二点,是不是加了空格,mysql就认为是不同的查询呢?实际上这个是要分情况而言的,要看这个空格加在哪。 如果空格是 阅读全文
posted @ 2012-03-29 11:54 clam 阅读(1189) 评论(0) 推荐(4) 编辑
摘要: 最近在公司一直在做diff的事情,对于文本的diff。因为一开始维基百科实现文字的diff做得比较不错,所以就调研了下mediawiki的diff实现,但发现mediawiki默认只能diff到行的级别,如果要diff到汉字的级别,是需要更改代码的。所以我就改了该mediawiki的代码,发现可以得到相应的效果。 但待我继续追踪代码发现,其实mediawiki的diff实现并不是很优雅,当然我没有太细看它diff的内容,是在追踪的过程中,发现不如使用最小距离去做diff,这样就可以实现和mediawiki同样的diff效果,而且实现起来比mediawiki的要简单。 下面是我做的一个demo. 阅读全文
posted @ 2012-03-29 11:53 clam 阅读(1443) 评论(0) 推荐(3) 编辑
摘要: 这两天一直在看《家的n次方》,这部电视剧的本身我就不讨论了,我想讨论的就是他带给我的一些思考。 其实,这次从公司回学校也是带着任务回来的,什么任务呢,任务就是思考,由于自己在公司的人际关系比较紧张,所以自己此次回学校也是想给自己更多的时间思考。思考如何与人相处,思考如何与人沟通。自己的性格一直都是属于飞扬跋扈、说话非常尖锐的那一种,所以在相处的过程中不免树敌很多,当然,也言重了,不是什么敌不敌的... 阅读全文
posted @ 2011-06-12 12:25 clam 阅读(379) 评论(0) 推荐(0) 编辑