作者: admin

  • 请不要再用老土的销售对白了!(转)

    请不要再用老土的销售对白了!

    很多导购,顾客进门第一句话他就说错了!一般的导购看到顾客第一句话就是:“你好,欢饮光临!”,其实这句话说错了!第二句话说错的人更多了!“您想要点什么?” 错
    “有什么可以帮您的吗?” 错
    “先生,请随便看看!” 错
    “你想看个什么价位的?” 错
    “能耽误您几分钟时间吗?” 错
    “我能帮您做些什么?” 错
    “喜欢的话,可以看一看!” 错
    这是几种常见的说法,但都是错误的说法,开始你就错了,好的开始是成功的一半,那么错误的失败也是失败的一半。
    我们可以想一下,顾客听到这些话,会怎么回答你呢?基本上一句话都可以把你搞定,那就是:“好的,我随便看看!”怎么样?听着熟悉吧!
    你怎么接话呢?很多导购说:“好的,您先看,有什么需要可以随时叫我。”然后顾客看了一圈出去了!再想见他不知道何年何月再相逢了,一件衣服可能一两年,一台电视可能八年,一台冰箱可能十年,如果你卖的是骨灰盒的话,这辈子估计都见不到了!
    如果这笔销售不在你那里产生,就在别人家产生,那么你就失去了一次挣钱的机会,可能你的小孩的衣服就成了别人小孩的衣服,你小孩的书包就成了别人小孩的书包。
    现实就是这么残酷!
    所以一个好的开场白是把顾客留下的首要条件!
    选择你的开场白,让你的顾客停留
    一般第一句话这么说:“你好,欢迎光临XXX专柜!”把你的品牌说出来,因为顾客可能是在商场瞎逛,可能路边的店有很多,他只是进来看看,可能并不知道你家的品牌,这时你要告诉顾客,你家的品牌!
    还有一个原因,就是你要当着顾客的面,在他耳边做一边广告,这种广告效果比电视上,平面上的效果要强很多倍,因为是你真切的告诉他的!他可能今天不会买,但当他想买的时候,他的耳边会隐隐约约有个声音在耳边响起“XXX专柜!”就会想到你。
    第二句话,要把顾客吸引住,让他停留下来!
    怎么才能把他吸引住呢?
    那就是给他一个留下来的理由!
    女孩子嫁给男孩子,也要有个理由的,哪怕这个理由很牵强!
    “嫁给我吧!我给你两千万!”这就是一个理由!
    第二句话一般这么说:1、“这是我们的新款!”人对新的东西都喜欢看看,比如新媳妇!这是人的本性,只是这个新没有突出出来,那么我们用形象的方式把新款突出出来,因为现在说新款的专柜太多了!
    怎么把新款突出出来呢,这个以后说到构图的时候再详细说!
    第二种说法:“我们这里正在搞XXX的活动!”用活动来吸引顾客,但千万别这么说:“我们这里正在搞活动!”因为现在每家都在搞活动,搞活动的太多 了!顾客已经麻木了!这就需要我们把活动内容说出来:“我们正在搞买够三千去马尔代夫的活动!”这样顾客就感兴趣了!会注意的听你话的!
    第三种说法:唯一性,第四种说法:制造热销气氛,第五种说话:时限性等!在此不一一的说了,朋友可以自己组织语言!
    切记:把一种说法练习熟,脱口而出

    其实顾客的心理经过我的分析也就那么七个阶段,只要我们把每个阶段给解决了,就没问题了,不管卖什么东西都一样,我想再说一下:卖电脑跟卖冰棍没什么区别!
    第三句话怎么说?
    很多导购,包括以前的我的也是这样说的:“你好,欢迎光临XX专柜!我们这里正在搞满三千去马尔代夫的活动。”马上第三句又变成了:“您愿意了解一下吗?”“我能帮您介绍一下吗?”这种错误的语言!
    你这样问顾客,客户的回答又回到了原点,“我先看看吧!”“不愿意!不能!”统统被顾客拒绝掉!我通常把这种导购称为多余的礼貌!本来人家已经被吸引了,你有让顾客多新的选择!给了顾客拒绝的机会!
    一个男的在公交车上被一个女孩子打了两巴掌,别人问他为什么会被打,他说:“我看她背后的拉链没拉,我帮她拉上了,她转身给了我一巴掌,她打我我,我还以为她喜欢不拉拉链,然后我又把她背后的拉链拉下来了!谁知她有给了我一巴掌!”
    这个男的犯得错误就是多余的礼貌!
    所以第三句话直接拉过来介绍商品!
    这么说:“我来帮您介绍!”
    直接拉过来,别问顾客愿意不愿意!
    别问顾客能不能介绍!
    他既然已经被你吸引过来了,就是想了解,你一问,他又清醒就麻烦了!
    “顾客说太贵了!我们怎么回答化解!”
    顾客进门一看东西往往说一句话:“这个多少钱?”我们说:“888.”“太贵了!”
    很多营业员会这么说:“这是老板定的价格,我也没办法!”顾客:“给你们老板申请一下!”出卖老板!你敢打吗?即使敢打,老板怎么看你!
    “这是已经是我们打过折的价格了!”意思是打过折你还嫌贵啊!其实你这么说死定了,因为你打过折他还觉得贵!
    “先生,我给您便宜点吧!”这种导购我也常见,便宜货谁都会卖,即使你打过折,顾客还会要求你再打折的!
    当顾客说太贵了的时候,上面的话统统不能说,尤其是“先生,我给您便宜点吧!”
    因为顾客没说让你便宜,你自己就主动便宜了!
    顾客说的是太贵了!没说你能便宜点吗?
    所以你不能主动便宜!
    所以当顾客说太贵了的时候,我们要做的就是告诉顾客为什么这么贵?
    而不是给顾客便宜!
    怎么告诉呢?那就是讲商品。
    但是很多人不会讲商品,很多人会说:“我们物超所值!一分价钱一分货!”说的很笼统,要么就是讲质量如何如何!
    其实讲商品要讲的全面,一个商品有很多东西构成:质量,价格,材料,服务,促销,功能,款式,导购,甚至还有店的位置(离得近有问题可以直接来店里解决),我们讲商品的时候,就从这几个方面进行讲解!不可单一讲商品质量!
    传统的F什么A,也可以用,特性,特点,优势,利益等等,这个我不太懂,请大家见谅!
    讲完以后,顾客马上会说一句话:“你能便宜点吗?”
    “你能便宜点吗?”
    首先我们不能说:“不能!”强烈的拒绝会让顾客对你有强烈的反感!
    男孩子追女孩子:“晚上一起吃饭吧?”“不行!”“一起看电影吧?”“不行!”“一起散步吧?”“不行!”只要女孩子这样拒绝男孩子,总有一天女孩子会得到一句话的“你以为天底下就你一个女人啊?”
    所以当遇到这种问题的时候,我们要把顾客的问题绕开,不要直接回答,因为只要一进入价格谈判我们都会比较被动,因为钱在顾客手里!而我们的优势是产品,我们比顾客了解产品!
    任何顾客来买东西都会讲价的,这个你要有心理准备,不用怕!
    你平时买东西还不还价?肯定还,哪怕随口说一句,因为感觉不还价的话,自己像个冤大头!肯定被宰了!
    但你也有自己还价还不下来的时候,有时候看还不下来,就打算不买了,但走到半路又后悔了,于是又折回去,结果东西已经卖完了!心里一个劲的懊悔!
    所以顾客还价正常,我们先绕开价格,让商品吸引住他,而不要过多的在价格上纠缠!只要东西物有所值,不怕他不买!当然你也别在顾客面前太骄傲!
    那么怎么回答顾客呢?这么说,
    “你能便宜点吗?”如果你是卖苹果的,你不要直接回答他,你问他:“你要多少啊?”
    这时他就会有一种想法:我要得多,他就便宜的多!
    如果你不是卖苹果的,你是买苹果的,你怎么回答:“你要多少啊?”
    你也不要直接回答要多少,你要反问他:“你能便宜多少啊?”
    这时候卖苹果的就该想了:我要便宜的多,他就要的多了。你又抓住了主动权!
    那如果是卖衣服的呢?“能便宜点吗?”
    你这么回答:“你先穿上看合不合身,如果不合身,再便宜您也不会要的。”让他试穿!
    “您先看质量,如果质量不行,您肯定不会买的。”
    “你先看看喜欢不喜欢,如果不喜欢你肯定不会要。”
    把价格绕过去,然后讲商品。
    一般顾客都是进门就问:“这个多少?”“1888.”“便宜点吧!”很多顾客连商品都没看完,只是看了个大概。顾客没喜欢上之前,你谈价格肯定要吃亏!介绍商品,让顾客心动!
    如果看完商品了,也喜欢了,怎么谈价格呢

    第一个技巧就是常用的周期分解法!
    “小姐,一件衣服卖720元,可以穿两年,一天才划两元钱,很实惠了!”
    “小姐,一个这么漂亮的包包卖380元,可以用一、两年,一天才划几毛钱,物有所值啊!”
    这是最常用的。下面说一招不常用的!
    用“多”取代“少”!
    什么意思呢?
    我们经常听见这么一句话:“你少买件衣服就过来了。”“少抽两包烟就过来了!”“少去打麻将放两个炮就过来了。”“少化两次妆就过来了。”
    这是我们常听的,或者常说的,但却是非常错误的!
    因为让他想到痛苦了!
    烟民少抽一根烟他都难受,更别说两包了!打麻将最恨的就是放炮,更别说多放两炮,女孩子少化两次妆更不可行,她宁可呆在家里不出去,也不要不化妆出去!这些统统让他们觉得很痛苦。
    那么我们把这些痛苦变成快乐!
    这么说:“就当您多抽了两包烟。”“就当你打麻将多赢了两次。”“就当您多去了两次美容院。”等等。让他想到快乐。烟民多抽烟快乐吧,美女多去美容院快乐吧。麻友多赢钱更快乐!
    这样我们避免了痛苦,向往了快乐。
    你说的时候他想到的是快乐!心情当让开心,那么就没那么难销售了

    “我认识你们老板,便宜点吧!”
    但顾客这么说的时候你怎么回答?
    很多导购说:“你认识我们老板,那你给我们老板打个电话,我们老板白送给你都行。”
    你们老板被你无情的出卖了!
    有的导购说:“那你我们老板跟我说一声吧。”
    顾客说我出去给你们老板打个电话,然后就再也不会回来了!
    因为他根本不认识你们老板!
    你也不能说:“你根本不认识我们老板,净忽悠我!”
    他肯定不买!
    其实顾客说认识你们老板,他就真的认识吗?
    百分之99的人不认识,最多跟你们老板一面之缘,泛泛之交,他连你们老板的电话都没有,你让他怎么打电话!
    有人说,他要真认识怎么办?
    那么我们找认识的人买东西会怎么做呢?
    直接打电话过去:“老张,我去你店里拿件衣服,你给优惠点。”提前就打好了招呼。
    所以对待不认识说认识你们老板的人,不要当面揭穿。
    我们做的是把面子给他,但绝不降价!
    这么说:“能接待我们老板的朋友,我很荣幸,”承认他是老板的朋友,并且感到荣幸,下面就开始转折了:“只是,目前生意状况一般,你来我们店里买东西这件事,我一定告诉我们老板,让我们老板对你表示感谢!”就可以了。
    这里注意一点,转折词不能用但是,因为但是已经让人们反感透了,换成:只是、同时、还有一个词是而且,这个词不常用,但效果很好,大家可以试试!

    “老顾客也没有优惠吗?”

    顾客是老顾客要求优惠怎么办?
    “您是老顾客,更应该知道我们一直不打折的!” 错
    “知道您是老顾客,给您报的价格就是底价!” 错
    “你是老顾客,都没给您多报价!” 错
    “老顾客也没有优惠吗?”很多老顾客这样问到。
    其实各位想一下,老顾客来你这里买东西绝不是因为你这里比别的地方便宜!
    现在的社会是供过于求的时代,任何商品都可以找到很多个贩卖的商店。
    一只诺基亚手机,在国美和在苏宁没有什么变化,都是诺基亚手机。
    不同的是你这个人!
    因为他喜欢你,所以才成为你的老顾客,如果讨厌你,第一次就不会在你这里买,更不会成为老顾客。
    一句话:他觉得你们不仅是买卖关系,更多的是朋友关系!
    顾客那你当朋友了,他觉得这是我朋友的店!
    他甚至可能对他的朋友这样说:“你要买诺基亚手机,就去XXX店里找那个小张,我跟他是朋友,你提我的名字,他一定对你很照顾的!”
    所以,当老顾客提出优惠的时候,我们不能直接拒绝:“您是老顾客更应该知道这里不能优惠!”你这样说,就把老顾客给打击了,老顾客就会想:“我来这么多 次了,难道我不知道不能优惠吗?我也就是这么问问,你就直接把驳斥了,你的意思,我更应该知道不打折,不应该问这么白痴的问题?”
    那么怎么回答呢?
    首先要把面子给老顾客,让老顾客感觉到你的诚意!
    这么说:“感谢您一直以来对我这么照顾,能结实您这样的朋友我感到很高兴,只是我确实没这么大的权利,要不您下次来有赠品的话,我申请一下,给您多留一个。”就可以了!
    老顾客本身是因为和你有感情才来的,而不是为了你比别的地方便宜才来的!
    只要你不比别的地方高就可以了!就能留住老顾客!
    20%的老顾客创造80%效益。千万别宰熟!
    “你们家的品牌几年了?我怎么没听过啊?”

    “您可能很少来这条街逛。” 错
    “我们这么大的牌子,你都没听过?”错
    “可能您逛街的时候没看到。” 错
    “你没听说的牌子多了。” 错
    第一个问题,我们可以直接回答他,但第二个问题我们怎么回答都不对!
    只要你回答了第二个,顾客会一直问下去,问到他满意为止!
    所以遇到这个问题我们要引导他。
    怎么引导?
    问!
    “我怎么都没听说过?”
    “您什么时候注意到我们品牌的?”“今天刚注意到。”“那太好了,正好了解一下。”
    直接带过去,不在这个问题上过多纠缠!
    “款式过时了!”

    我们怎么回答?
    这样的问题分两种情况:一种是真的过时了!另一种是新款,但顾客看错了,看成过时的了。
    我们先说第一种情况——真的过时了!
    东西确实过时了,顾客说的对,很多导购会说:“这是经典款,好东西永远流行!”或者:“是的,好东西才会卖这么久!”
    这些说法都不能算错!因为没有否定顾客,而且把东西说出好了。
    但我不是这么说的!
    顾客说:“过时了!”我的说法是:“所以现在买最实惠!”
    对于第二种顾客看错了,把新品看成过时了!
    我们一是不能否定顾客“这是新品,您看错了!”
    二是不能承认这是老款,因为它确实是新款!
    那么我们怎么说呢?
    我们这么说:“是的,这一款确实和以前的那一款有些类似,只是(不要用但是)我们在这里做了一些创新。。。。,在这里也做了一些创新。。。。在这里还做了一些创新。。。。”最后让顾客自己得出结论:这是新款!
    不要否定你的顾客,即使他是错的,也要先认同,再引导!

     

    ”老板,我不需要这么好的东西!”
    当我们给顾客推荐一款我们自认为不错的商品,顾客也觉得不错,但就是太贵了,有很多功能用不上,或者没打算买这么好的东西,顾客常常会说:“我不需要这么好的东西!”
    很多营业员会说:“其实这也没那么好!”一句话把之前说的全部否定了!
    好东西,谁都喜欢,他只是觉得价格高,或者是超出自己预算了而已。
    如果喜欢,就是感觉价格高,
    我的答案是这样的:“这样的价格,买这样的东西,已经是最划算的了!”

    超出我预算了!”“我钱没带够!”
    当你给顾客介绍完以后,顾客说:“超出我预算了。”这时候很多导购会做的一件事情就是转介绍商品,而且有的导购还说一句话:“我们这边有便宜的,您这边看一下!”
    顾客会随便看两眼,然后离开,因为你让他感到了一点侮辱的感觉,好像他只能买便宜货。
    所以,记住,转介绍商品,是最后一招!
    实在不行了再转介绍!
    顾客说:“超出我预算了!”我们怎么办呢?
    他只是说,超出预算了!
    如果你是老导购,那么从他的穿着打扮,从他的言谈举止,能够感觉出,他能不能买得起。
    如果你是新营业员,那么怎么办呢?
    问!
    直接问!
    “先生,您的预算是多少?”这样顾客会报一个数字,看他报的数字是多少!
    如果你的东西是1000,他说我的预算是800,那你就知道了,不是超出预算了,而是他想便宜200块钱。
    这是我们要做的是继续介绍商品,不要在价格上纠缠,通过构图、触摸等方式让他爱不释手,就可以了。
    如果你的东西是1000,他说我的预算是200,那么就是真的超出预算了,那么这时候,我们再转商品。
    但转商品的时候不要说:“这边便宜,你可以到这边看看。”一定要顾及顾客的尊严。
    我们这么说:“先生,我们这边也上了一些新款,我来帮您介绍。”
    顾客过去一看是便宜的,他就会明白了,这样你给了顾客面子,也赚了商品。

     

    顾客问:“你们公司倒闭怎么办?”于此类似的:“你们品牌撤柜怎么办?”“美女,晚上一起吃饭吧!”
    很多导购听到这样的话第一反应就是证明公司不会倒闭!
    “我们公司是世界大公司,资金雄厚,品牌卓越,服务客户多年。。。。。”等等,全是证明公司实力的话。
    “我们公司撤柜,还有商场呢,现在商场都对商品负责!”
    “我们全国连锁,这边撤柜还有其它地方。”
    这次回答不能说不对,但是不好!
    为什么这么说呢?
    我们大家考虑一下:顾客在什么地方会说这句话!
    对,在最后的时候才会说出,顾客绝对不会一进门就说:“你们公司倒闭怎么办?”
    换句话说:顾客问出这句话的时候,一定会买的!
    你准备好收钱就行了,不要在这个问题上过多纠缠!
    那么怎么说呢?
    首先,不能说我们公司不会倒闭!更不要证明公司不会倒闭!
    因为你说不会倒闭的时候,顾客听到的是倒闭两个字,因为不这个字,在人的脑海里不会出现印象!而倒闭这两个字,顾客却能听的最清楚!
    我举个例子:你的绝不会买一头粉红色的小象!
    你脑海里出现的一定是粉红色的小象的图像,而没有不这个字。
    一次不要强调不会倒闭,因为顾客听到的都是倒闭。
    媒婆介绍对象的时候,常说:这个人长的不是很帅,其实就是难看,但如果换成这个人长的难看,那给人的感觉完全是两回事!
    那么怎么回答呢?
    一句话带过去!
    “先生,您开玩笑了!”就可以了,然后说:“您看您是刷卡还是现金!”不管刷卡还是现金,都买了!
    “美女,晚上一起吃饭吧!”千万不能说:“滚,你个流氓!”生意一下就完了!
    而要说:“先生,您开玩笑了,您看你是刷卡还是现金?”
    就可以了,不要在这个问题过多的纠缠!这才是主要的!

    “我在前面那家店也看到你们这个一样的款式,而且价格卖的比你们便宜” 请问怎么回答?

    首先,当遇到这样的问题的时候,我们先分清是真的还是假的,很多顾客利用这种方式实现打折的目的,当然对顾客来说,无可厚非。
    其次,我们想一下,她为什么不在那个商店买?如果她看中的话,或者非常喜欢的话,在那个商店买应该顺理成章的,当然我们不排除货比三家的可能。
    再次,不要诋毁那个商店,毕竟是同行。
    那么怎么回答呢?
    我一般这样回答:
    “小姐,您说的那个店也不错,里面的东西也不错,只是你先试试这件衣服合适不,即使同样款式的衣服,因为质感的不同,穿在身上也会有不同的效果,先看看效果如何?如果效果不好,你肯定不会要的!”
    在此提醒一点:不要说那个店的名字!
    因为每说一次,就会加深那个店在她脑海里的印象,我们用“那个”来代替,从而淡化处理。

    “我再看看吧!”
    很多导购员听到这句话,头就开始疼了。
    因为顾客要离开,因为顾客到其它门店被拦截下来的可能性太大了,因为顾客回来的可能性太小了,但导购还不能说不让顾客去货比三家!
    所以很多导购员很违心的、假装很为顾客考虑的说:“先生/小姐,货比三家也是对了,你可以去比比,如果不行,到时候再回来找我。”
    要知道顾客回来的可能性太小了,除非你的商品确实比别人的好很多,否则为了面子,为了价格他也很少回来,因为他知道,再回来,你肯定不会给他便宜,很多 顾客说再看看,很多时候是在:去零头、要赠品、要降价的原因上,说出再看看的,想通过离开这种方式,给你压力,让你再叫住他,给他便宜。
    甚至有的导购员还这么说:“早就跟你说过,我们是最好的,最实惠的吧。”  那意思是:我没骗你吧,我是对的吧!
    问题是:你越证明自己对,顾客越觉得没有面子。因为你在证明他错了!
    就像老总批评你批评错了的时候,结果你拿出证据证明你做的对,他批评错了,他马上会转移问题批评你批评的更狠:“上次你做的那个事情就错的一塌糊涂。。。。。。”因为你在证明他错了,所以他很生气,后果很严重。
    顺便说一下:遇到老总批评错了你了,你怎么办呢?
    一、预防,只要违反常规的事情,你都要在老板看到前跟老板提前说。比如:你布置会展,老板去看看布置的如何,这时你要陪同老板,在老板看到违反常规的事 情之前提前告诉老板:“老总,这个展台这样杂乱的摆放是因为我们的客户有什么什么样的要求,达到什么样的目的。”老板听完会说:“满足客户是我们的宗旨, 做的不错。”如果你没有提前跟老板说,老板跟你说:“你怎么把展台摆放的这么杂乱啊?”如果你说:“老板,这是客户的要求,不是杂乱。”老板马上说:“怎 么不杂乱啊,客户的要求合理的我们满足,不合理的我们就不能满足啊,做事要动动脑子啊。”如果你再强调自己正确,那么老板只好说:“上次有件事情你好像也 是为了满足客户,结果搞的我们很被动啊,上次。。。。。”你死定了!因为你让老板很没面子,他的权威受到了打击。
    二、老板批评错了,你按照老板的要求做就是了,然后等没人了,再去老板办公室,“老板刚才接到客户电话,客户提出了个要求,要求展台摆放另类点,不要居于常规,我想根据客户要求改动一下,老总,您给个指示吧。”老总会说“按你的意思摆放吧,让客户满意。”
    接着说“我再看看!”
    遇到这类问题怎么回答呢?
    两种方式:一、问出顾客真实原因把顾客拉回来,再努一把力。
    二、设定标准,让客户按照你设定的标准去衡量别的产品,从而比较后再回来。

    “我再看看吧。”
    我们用沉默的压力,逼他说出真实原因。
    我们的回答是:“先生/小姐,我相信这是你慎重的选择,只是,我想知道您想再看的真实原因是什么?我怕我有解释不到的地方,是价格、还是质量、还是(不说话了,等着他往下接话)”用眼睛看着他的眼睛,等着他往下接话。
    在这种沉默对视的压力下,有部分顾客就会说出真实原因:“哦,小伙子,其实我就是觉得价格有点高。”
    这时你要接上说:“哦,原来是价格问题,刚才可能我没说清楚,我们现在正在搞什么什么活动,来,我再跟您详细说一下。”再把顾客拉回去。
    有时顾客不说出真实原因,怎么办?
    那就是在顾客出了店面以后,再追上去问。
    因为顾客出了门,心理放松了,觉得自己不用掏钱了,警惕性也就降低了,这时我们追出去,对顾客说:“先生/小姐,我是个刚做销售的新人,希望您能帮我一下,您能告诉我您不购买的真实原因是什么吗?是价格,是质量还是?”等着顾客往下接话。
    这是顾客因为放松心理,加上助人为乐的精神,会很大度的告诉你:“其实也没什么,就是觉得价格有点贵。”这时候我们再把顾客拉回去,“原来是价格问题啊,刚才可能没跟您说清楚,我们这里还有一个活动,来来来,我再跟你介绍一下。”再把顾客从外边拉回到店里。
    坚持才能让顾客感动,很多顾客再回到店里不买东西,他有时候都觉得不好意思。
    这个拉回来的顾客能够占“我再看看”顾客里的30%。
    也就是说,10个离开的顾客,能拉回来3个购买的。成交量相当于正常销售的比例。
    有些店里就在店门口专门设定一个人,拉顾客回来,这个人我们叫“捕手”,工资相当高。

    如何设定标准,让客户按照你设定的标准去衡量别的产品,从而比较后再回来。

    按照四个方面找出我们的优势就可以了。

    这四个方面是:
    1、我们有,别人没有的东西
    2、我们能做,别人不愿意做的事情
    3、我们做的比别人更好的东西/事情
    4、我们的附加值
    基本上从这四个方面去找就可以了。

    那么怎么说呢?我们以买空调为例,这么说:“先生/小姐,其实您也知道(让他知道他不知道的)不管买什么样的空调,只要看三个方面就能买到好的空调,第 一,就是品牌一定是知名品牌,大品牌才有信誉,第二,就是一定要有好的售后服务,好的售后服务才能让您用着放心,这第三嘛,也是最重要的,(此时停顿一下 很重要,顾客一般回问,第三是什么,此时确认顾客是在认真听你说的话。)那就是,空调厂家一定要在科技上领先,这样的空调才能保证质量过关,您说是吗?我 们格力空调在这方面做的都很到位,您可以跟任何一家比较。”

    预先设定好比较的标杆,在客户心目中留下不可磨灭的痕迹,只要去比较都会想到这些标准,从而用我们的优势去打击别人的劣势。

    用这个销售技巧的时候,一定要找出你们比别的品牌强的地方,也就是你们的优势,特点,给顾客带来的特殊价值方面,只要找三个就行了,不用多。
    “你们质量会不会有问题?”

    这个问题很多导购觉得很好回答:“我们质量不会有问题的,我们是大品牌,全国有很多专卖店。。。。。。”

    但是顾客问出第二句话的时候:“万一有问题怎么办?”很多导购就回答的不好了:“万一有问题,我们三包,我们六年包换,十年保修。”大部分导购都会这么说,也挺好的,至少公司的售后服务还是做的不错的。

    我说的有些不同。

    我是这么说的,问顾客:“先生/小姐,你是不是以前有买过质量不是很好的产品啊?”

    顾客一般会说:“有。”

    我们问一句:“是什么产品啊?”顾客就会跟你诉苦了:“我以前买过一台空调,三个月就坏了,滴滴答答的漏水,晚上睡觉都睡不好,老是被吵醒,搞的我白天上班都没有精神,气死我了。”

    如果我们问顾客:“先生/小姐,你是不是以前有买过质量不是很好的产品啊?”
    顾客一般会说:“没有。”那我们怎么办呢?

    我们夸他一句,然后说自己的事情:“先生/小姐,您真是太幸运了,你没有,我有啊。我以前买过一台空调,三个月就坏了,滴滴答答的漏水,晚上睡觉都睡不好,老是被吵醒,搞的我白天上班都没有精神,气死我了。”

    说的时候一定要带上感情,这样才会感染到顾客。

    然后说:“所以我现在很注重产品质量问题,因为我不卖东西的时候也是消费者,所以我对产品质量要求也很好,我才会在这个厂家做销售,不到其它厂家做销售,就是因为这里的质量好。”

    至少吓得他不敢去其它厂家买。

    与朋友讨论“你觉得如何?”

    顾客跟朋友一起来买东西,顾客看完东西感觉不错,于是转头问他的朋友:“你觉得如何?”

    这时候,如果朋友说可以,顾客二话不说,立即买下;如果朋友说不好,顾客肯定不会买,掉头就走。

    遇到这种问题,一般的导购员会说:“我直接向顾客的朋友推销商品,把注意力放在顾客朋友身上。”

    有的导购会说:“我夸顾客的朋友漂亮,有气质,把她夸的心花怒放,她就认同商品了。”

    这样做也可以,只是我有更好的说法。一句话搞定他朋友。

    怎么办呢?夸她,但不夸美貌与气质。

    怎么说呢?

    这么说:“小姐,您有眼光,您看一下。”

    就可以了。

    朋友为了证明自己有眼光,也会点头的,虽然可能不说话,但很少说出坏话来,因为这样就说明她没眼光了。

    有时候顾客的朋友会说:“我没眼光。”也有这样的人。

    那么我们顺水推舟:“您没眼光怎么会找到这么好的朋友呢。”

    接下来她的回答更多的是开玩笑的口气了。

    一般说完:“您有眼光,你看一下。”就可以做好开票的准备了。

    “这两个都不错,你看我买哪一个?”

    这是一个结束信号,很多导购员听到顾客这么说,马上一指其中一个:“这个好,你买这个吧!”随即打算开票。

    结果顾客买回去回来挑换、退货的风险就很大了,因为是你给顾客选的,顾客说,当时我就犹豫不定,你帮我选得,不是我喜欢的,所以你要帮我换或者退。

    所以遇到这种问题,知道顾客要掏钱了,但我们不能急着让顾客掏钱,为了避免后顾之忧,我们一般不帮他下结论。

    可能朋友们经常会遇到一种情况:老婆早上起来,问你:“今天我穿白色的好呢还是穿黑色的好呢?”你敢 帮老婆选吗?

    “老婆,你穿什么都好看!”一般都是这么回答。

    “老婆,你穿黑的吧,今天适合穿黑的。”如果穿出去不好看,回家你就倒霉了,“都是吧,让人家穿黑的,结果大家认为不好看,就知道你没眼光。”男的想争辩都争辩不了,再争辩估计就要吵架了。

    所以遇到这种情况,我们这么说:“老婆,你穿黑的显得成熟稳重,你穿白的的显得靓丽活泼,您觉得呢?”让她拿注意。“人家就是拿不定注意才问你的啊?” 男的顺水推舟,“老婆我们真是天生一对,我也很难选择,你穿黑的显得成熟稳重,你穿白的的显得靓丽活泼,您觉得呢?”想叫我掉坑里门都没有。

    遇到客户让我们帮着选,怎么回答呢?

    这么说:“这件的特点是。。。。。。,那件的特点是。。。。。,您觉得呢?”

    如果顾客非要你决定,那么我们就帮他决定:“我个人觉得这个比较好,您觉得呢?”最后一定要问顾客,让顾客点头确认。

    我一般最后都是推荐顾客选贵的那一个。

    “我建议您要这个,虽然贵了一点,但确实上了一个档次,而且比较适合您。”
    “我不要你们的赠品了,你把赠品折算成钱,给我便宜点吧!”

    “真的很抱歉,我没有这个权利。”
    “公司规定不能这么做。”切记,公司规定,这四个字一定不要说,因为给顾客的拒绝感觉太直接了。

    那么怎么回答这个问题呢?

    我的方法是:把赠品,变成正品,让顾客喜欢上赠品。

    这么说:“姐,这些赠品是我们公司在商品价格之上,额外回馈给顾客的,也是对您支持我们公司的感谢,只是我要说的是:。。。。。。(介绍赠品的优点、好处)。从而让客户认识到赠品的价值,感觉赠品物超所值。

    “把零头抹了吧,也就20块钱。”

    这个问题比较麻烦,因为很多顾客都是在这个地方与导购争执不下,最后离开的。

    顾客真的就缺少这20块钱吗?

    不是。

    那为什么非要便宜这么点钱呢?

    我的看法是:顾客可能是觉得这么点都不便宜,自己一点面子都没有。

    也可能是顾客本来不想买,结果你推销的挺热情的,顾客觉得直接拒绝你不太好意思,于是在价格方面纠缠,最后他得以离开。

    我目前没有直接解决这个问题的答案,我的方式是:转移。转移到其它方面,换个跑道,重新杀出一条血路。

    那么怎么转移呢?还是一个字,问。问什么问题呢?问只能让顾客回答是的问题。

    换句话说:这几个问话是万金油,当你无法回答顾客提出的问题的时候,就说其中一句就可以了,这是导购员随身携带的几把砍刀,遇到无法回答的问题懒腰砍一刀就行了,每砍一刀,就把问题转移到另一个方向,重新杀出一条血路。

    再重复一下:问只能让顾客回答是的问题。

    这么说:“姐,您看这质量,如果质量不好,再便宜您也不会要的,您说是吗?”

    “先生,您也知道售后服务很重要,如果售后不好,再便宜您也不会要的,您说是吗?”

    “王姐,如果这件衣服穿出去不好看,再便宜您也不会要的,您说是吗?”

    类似这样的问题,让顾客只能回答是。

    举例:
    顾客:“这件衣服,你再给我便宜20块钱,把零头抹掉,我现在就要了。”

    导购员的回答应该是:“王姐,如果这件衣服穿出去不好看,再便宜您也不会要的,您说是吗?”

    顾客只能回答:“是。”但顾客马上会跟上说一句:“你一点都不便宜,我心理感觉很难受啊,一点面子都没有。”

    这时我们就发现了,问题变了,转移了,从开始顾客一定要让你抹零头、要赠品,变成了:感觉很难受,面子问题了。那么我们接下来解决心理和面子问题。

    就不是在价格问题纠缠了。

    我们成功将问题转移到非价格方面,处理起来就容易多了,一般转移不超过三个,就可以开单了。

    结束时机的把握。
    主动不代表冒险,被动不代表安全。高点不结束,就会夜场梦多。
    现在很多导购员不是自己结束销售,都是被顾客结束销售。
    那么怎么结束销售呢?
    一句话:“请问一下,待会您是刷卡方便一点还是付现金方便一点?”
    有人说:我提出结束销售,顾客不一定买单啊?
    是不一定买单,但你提出结束,可以增加一个机会再问他:“请问一下,你现在还在考虑的是?”他如果又把问题提出来,你就可以又回到了处理反对问题的方面,然后再结束销售。
    不要害怕问题,问题如果在顾客的心里面反而更销售更困难,只有把他心中的问题解开,他才可以放心成交。

    成交的心理障碍:
    一、害怕被人家拒绝!
    怕被人家说不,其实没有什么害怕,如果她今天说不,你就要问她为什么不?什么原因你要说不?要走没关系,讲清楚,说明白,给个不的理由。她说:“我觉得 不好看!”又回到好不好看的问题了,我们解决就是了,所以不要怕,只要有相对应的话术模板在,我们就可以很勇敢的解决顾客的反对问题。
    二、害怕给顾客产生误会!
    这是一个很多导购都会产生的错误思想。
    我问一个导购:“你为什么不结束?”导购说:“我担心她觉得我要卖她东西!”
    你不卖东西干嘛?有哪个顾客觉得你不想卖东西?但很多导购心里有结,很多导购就希望:我讲的很好,你自愿买。其实这是导购对自我不自信的表现。
    三、害怕给顾客压力!
    四、自己觉得还不到火候!
    “我觉得还不到时候。”“那你觉得什么时候到时候?”“我也不知道什么时候到时候。”很多人就在等,过了高点以后,趁热不打铁以后,这时候问题就更多,结束就更难。
    五、大家都这么干!
    这个是最麻烦的。很多销售人员为什么不结束小搜?因为店长也这么做,店助也这么做,老板娘也这么做,大家都这么做,所以我也这么做。
    结果就变成了传承,在不好的结构里面变成了复制。

    把握成交的时机!
    有几个行为看到,就可以提出结束!
    头一个,顾客提出价格的问题!
    价格问题是出现频率最多的成交的机会点,成交的时机最经常出现的就是价格问题。
    送赠品、打折、抹零头,只要顾客有这种问题出来,各位记得:“。。。您说是吗?”讲完要接一句话:“请问一下,您待会儿是刷卡方便还是付现金方便一点?”要尝试进去做结束销售。
    很导购会说:那顾客会不会觉得我们很急!
    所以各位有没有发现,我在设计的时候加上三个字:待会儿。我没说现在。能理解吗?我不是说现在,是待会儿。
    顾客说:“待会儿刷卡方便一点吧。”接下来你就不要待会儿了,直接说:“那行,这边刷卡,请。”

    其实“待会儿”这三个字是在语言上的潜意识暗示。
    有人说我这个比较狠,就是给顾客挖了个坑,让顾客不小心跳进来,等顾客跳进来,赶紧埋土。就是这个道理。
    价格信号是最经常出现的成交信号,但是导购员的把握时机的能力却是最低的!
    所以我们经常看到导购都是这样处理的:
    导购:“。。。。您说呢?”顾客:“你说的也对,不过。。。”然后导购跟顾客围绕那七八个问题一直在兜圈。
    为什么一直兜圈,因为导购不结束销售。如果我们提出了销售的信息,可能早就进入到了买单了
    第二个:询问送货(退换货)或保养相关细节。
    顾客问到这个问题,导购员就可以结束销售了。
    导购:“我们三包,一个月包退,三个月包换,保留小票就可以了。。。。”“这个产品保养的时候要注意:。。。。。。。”讲完以后,最后给顾客一句:“请问一下,您待会儿是刷卡方便一点还是付现金方便一点?”
    第三个:顾客计算数字。
    顾客:“那你总共加起来多少钱啊?折扣打下来多少钱啊?”
    导购:“折扣打下来是1980.”报完价以后就要加一句:“请问一下,您待会儿是刷卡方便一点还是付现金方便一点?”
    很多导购员最傻的做法就是:“1980。”然后就带着微笑站在那里也不说话,就等着顾客说:“啊!这么贵啊!”然后导购:“啊,怎么还有问题啊!”
    你不去结束,你要等顾客说:“买单吧!”这种几率很低啊。
    每一个自动买单的顾客背后,都代表一大堆你被动过程中损失的业绩。
    第四个:散播烟雾式异议讯号。
    有时候顾客会跟你胡扯,或者开玩笑,比如:“公司撤柜了怎么办?”“美女晚上一起吃饭吧?”类似的。
    导购一句话带过去:“大哥您真会开玩笑,这一点您放心,请问一下,待会儿你是刷卡方便一点还是付现金方便一点?”
    第五个:顾客屡次问到同一个问题。
    这个在卖衣服、卖饰品、卖家电等经常遇到的。
    顾客:“你觉得我戴这个真的好看吗?”导购在旁边:“真的好看,。。。”
    顾客:“可是我觉得好像太柔了。”导购:“不会的。。。。。。”顾客:“可是万一不好看怎么办?”导购:“您放心。。。。。。。”顾客:“我还是很担心嘞!”导购急的都想杀了她。心里面在想:妈的,你到底要问多久啊!
    什么原因造成的?因为不知道屡次问同一个问题是结束的信号!
    我都是在第二个问题重复问的时候给予她正确的信念:“这一点您可以放心,您戴起来肯定好看!”紧跟一句:“请问一下,您待会儿是刷卡方便一点还是付现金方便一点?”
    屡次在同一个地方挣扎的,就是要结束。
    为什么顾客一直问?因为你不结束,所以她一直问,你直接把她结束掉就没事了!你一直不结束,每讲完一个导购就这样含情脉脉看着顾客,那意思就是:来吧,再问啊。顾客又很难下决心买单,所以就继续问,一问你心里想:怎么还有啊!

    第六个:双手抱胸陷入沉思。!
    就要准备做结束销售了!
    表示他在做最后最重要的思考。
    只要顾客一抬头,买还是不买都已经决定了。
    这里用接触法刺激一下顾客,也叫顺水推舟法,就是在顾客的肘部,轻轻带一下,嘴里说:“您看没问题吧!”顾客接受了外界接触的带动,思想会不由自主的跟肢体走的,所以顾客会顺势点头。
    第七个:询问同伴的看法!
    有时候顾客就问旁边同伴:“你觉得怎么样?”这是到最后的环节:我觉得的还不错,再经过同伴的确认。
    这时候要做结束的销售,就代表顾客对这个产品基本上满意了。
    第八个:表情改变,由思考到豁然开朗!
    本来比较严肃到露出笑容,顾客为什么会露出笑容,因为他决定买了,如果不买,他还在关注商品,只有决定买了,才会跟你开开玩笑,才会放松。
    第九个:转而赞美销售人员!
    顾客:“小姑娘哪里人啊?说话不错哦!长得真漂亮啊!”
    这时候导购千万要记住:不要被赞美之后迷失了自己的理智!
    有人被赞美了之后,你会发现销售人员头顶上会出现光环,准备上天当耶稣!开始忘了自己是谁。
    顾客转而赞美销售人员,这是销售人员应该这么说:“X总,跟您聊天真开心,被您这么一夸,我整个人的自信心都上来啦!请问一下,您待会儿是刷卡方便一点,还是付现金方便一点?”
    在两件产品当中比较选择!
    顾客:“哎呀,这两件都差不多,这件不错,这件也不错啊,都不知道怎么挑了。”
    以前说过,在此不重复。
    所以成交的时机进来之后,就要迅速抓住,不要等,所以我们普遍在终端销售的时候销售的时间过长,所以非常考验顾客的耐心!

    至于结束销售的技巧,因为我们是终端销售,所以最常用的、最实战的、最靠谱的、最直接拿下的就是二选一结束法!
    “请问一下,您待会儿是刷卡方便一点,还是付现金方便一点?”
    “这一套还是那一套?”
    “我帮您送到车上还是您自己带走?”
    它没有那么多:法兰克结束法,小狗结束法,等等。二选一就够了,不需要太复杂!
    二选一要注意的是:自然肯定的语调!坚定无疑的眼神!理所当然的态度!
    怎么赞美顾客又让顾客觉得没那么刻意呢?等你背好了,你会很容易发现别人的优点
    道理不讲那么多了。
    一个字:背。
    背我下面写的赞美句子,背熟!
    模板:

    您气质真好!您刚刚一走进来我就注意到您了!
    你形象真好!搭配的真是时尚!
    你长得真漂亮!我的眼睛一下子就被您吸引住了!
    您打扮真时尚!我们同事刚刚都在看您呢!
    您发型真好看,真特别!跟您的气质特别搭配!
    您的眼镜(配饰)真特别!跟您的衣服搭配起来特别出色!
    看您的穿着搭配,就知道您一定是个很讲究品位的人!
    您身材真好!同样是女人我都忍不住多看两眼呢!
    您直发留的真漂亮,又黑又亮!真让人羡慕!
    这条裤子(裙子、丝巾、包、衬衫)真特别!非常与众不同。
    把这十句话背熟,脱口而出。

  • DELL 5524交换机针对于iSCSI的优化

    5524针对于iSCSI主要有如下优化:

    见下文中红色加粗部分

    console> enable

    console# configure

    console(config)# port jumbo-frame

    console(config)# spanning-tree mode rstp

    console(config)# interface range ethernet g1-24

    console(config-if)# flowcontrol on

    console(config-if)# spanning-tree portfast

    console(config-if)# exit

    console(config)# interface vlan 1

    console(config-if)# sntp client enable

    console(config-if)# ip address xxx.xxx.xxx.xxx 255.255.255.0

    console(config-if)# exit

    console(config)# ip default-gateway xxx.xxx.xxx.xxx

    console(config)# enable password level 15 xxxxxx

    console(config)# line telnet

    console(config-line)# password xxxxxx

    console(config-line)# exit

    console(config)#

    *********************

     

    This configuration gives you a good working switch for your back-end iSCSI network. Since this is a back-end network, there won’t be any VoIP traffic, and you can remove this stuff from the default configuration.

     

    *********************

    console(config)# voice vlan oui-table remove 00036b

    console(config)# voice vlan oui-table remove 00096e

    console(config)# voice vlan oui-table remove 0001e3

    console(config)# voice vlan oui-table remove 000fe2

    console(config)# voice vlan oui-table remove 0060b9

    console(config)# voice vlan oui-table remove 00d01e

    console(config)# voice vlan oui-table remove 00e075

    console(config)# voice vlan oui-table remove 00e0bb

     

     

    这个请先Show run,然后按照输出的结果来相应的Remove。

    *********************

     

    And again, since this is a back-end iSCSI network, you really have no need to prioritize iSCSI; (there is no other traffic) and you can remove this stuff too.

     

    *********************

    console(config)# no iscsi enable

    console(config)# no iscsi target port 860

    console(config)# no iscsi target port 3260

    *********************

     

    Now that you have finished the configuration, copy the running configuration to Flash. You will need to reboot for the jumbo frame command to take effect.

     

    *********************

    console# copy running-config startup-config

    Overwrite file [startup-config] ?[Yes/press any key for no] y ….01-Jan-2000 00:04:10 %COPY-I-FILECPY: Files Copy – source URL running-config destination URL flash://startup-config

    01-Jan-2000 00:04:17 %COPY-N-TRAP: The copy operation was completed successfully

    Copy succeeded

    console#

    console# reload

    This command will reset the whole system and disconnect your current session. Do you want to continue ? (Y/N)[N] y

    Shutting down …

     

    *********************

  • Win7中安装DHCP服务管理器

    Windows 7 Service Pack 1 (SP1) 远程服务器管理工具

    http://www.microsoft.com/zh-cn/download/details.aspx?id=7887

    通过 Windows 7 SP1 远程服务器管理工具,IT 管理员可以从运行 Windows 7 或 Windows 7 SP1 的远程计算机上管理安装在运行 Windows Server 2008 R2 SP1 或 Windows Server 2008 R2 的远程计算机上的角色和功能(以及运行 Windows Server 2008 或 Windows Server 2003 的远程计算机上的某些角色和功能)。它支持对运行 Windows Server 2008 R2 SP1 或 Windows Server 2008 R2(使用服务器核心安装或完全安装选项所安装)的计算机进行远程管理,还支持 Windows Server 2008 上的某些角色和功能。尽管服务器核心安装选项不可用于 Windows Server 2003 操作系统,但 Windows 7 SP1 远程服务器管理工具仍可用于远程管理 Windows Server 2003 上的某些角色和功能。

    就功能性而言,此功能可与 Windows Server 2003 管理工具包和 Windows Vista Service Pack 1 (SP1) 远程服务器管理工具相媲美。

    可以通过安装 这个来实现DHCP等服务在WIN7上的部署

  • CENTOS5下安装php4

    rpm -e
    squirrelmail-1.4.8-5.el5.centos.10.noarch
    piranha-0.8.4-16.el5.i386

    利用红帽Piranha方案实现WEB负载均衡
    http://www.chinaunix.net/jh/4/1057613.html

    清理现有的php
    rpm -qa |grep php
    rpm -e php-5.1.6-27.el5
    rpm -e php-mbstring-5.1.6-27.el5.i386
    rpm -e php-cli-5.1.6-27.el5.i386
    rpm -e php-common-5.1.6-27.el5

    准备yum
    可以先copy其它机器上的CentOS-Base.repo
    yum源  yum.repos.d
    yum update

    rpm –import http://www.labcoding.com/yum/centos/RPM-GPG-KEY-Labcoding

    如果不可以
    cd /etc/pki/rpm-gpg/
    wget http://www.labcoding.com/yum/centos/RPM-GPG-KEY-Labcoding

    vi /etc/yum.repos.d/labcoding.repo
    ######################################
    [Labcoding]
    name=Labcoding Repository for CentOS $releasever $basearch
    failovermethod=priority
    baseurl=http://www.labcoding.com/yum/centos/$releasever/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Labcoding
    ###########################################

    yum update http*
    yum install http*

    yum install my*
    yum install MySQL-python.i386

    yum list php4
    yum install php4*

    在X64bit下 装php4版本
    http://repo.conforge.com/conforge/CentOS/5/x86_64/RPMS/
    手工下载 php4相关rpm
    一个个自己装
    以上网站只能想办法翻墙出去找
    php4_x64wget ftp://rpmfind.net/linux/epel/5/x … -1.el5.1.x86_64.rpm
    rpm -ivh libyaz-2.1.54-1.el5.1.x86_64.rpm
    rpm -ivh php4-4.4.8-4.cf.centos5.x86_64.rpm –nodeps
    rpm -ivh php4-pear-4.4.8-4.cf.centos5.x86_64.rpm

    rpm -ivh php4-domxml-4.4.8-4.cf.centos5.x86_64.rpm
    rpm -ivh php4-gd-4.4.8-4.cf.centos5.x86_64.rpm

    yum install libc-client.x86_64
    rpm -ivh php4-imap-4.4.8-4.cf.centos5.x86_64.rpm

    rpm -ivh php4-ldap-4.4.8-4.cf.centos5.x86_64.rpm
    rpm -ivh php4-mbstring-4.4.8-4.cf.centos5.x86_64.rpm
    rpm -ivh php4-mysql-4.4.8-4.cf.centos5.x86_64.rpm
    rpm -ivh php4-ncurses-4.4.8-4.cf.centos5.x86_64.rpm
    rpm -ivh php4-odbc-4.4.8-4.cf.centos5.x86_64.rpm
    rpm -ivh php4-pgsql-4.4.8-4.cf.centos5.x86_64.rpm
    rpm -ivh php4-snmp-4.4.8-4.cf.centos5.x86_64.rpm
    rpm -ivh php4-xmlrpc-4.4.8-4.cf.centos5.x86_64.rpm

    wget ftp://ftp.pbone.net/mirror/cento … 2.el5.kb.x86_64.rpm
    rpm -ivh js-1.70-2.el5.kb.x86_64.rpm
    wget ftp://ftp.univie.ac.at/systems/l … 1.el5.rf.x86_64.rpm
    rpm -ivh sablotron-1.0.3-1.el5.rf.x86_64.rpm

    rpm -ivh php4-xslt-4.4.8-4.cf.centos5.x86_64.rpm
    rpm -ivh php4-devel-4.4.8-4.cf.centos5.x86_64.rpm

    ln -s /opt/php4/lib/php4/domxml.so /usr/lib/php4/domxml.so
    ln -s /opt/php4/lib/php4/gd.so /usr/lib/php4/gd.so
    ln -s /opt/php4/lib/php4/imap.so /usr/lib/php4/imap.so
    ln -s /opt/php4/lib/php4/ldap.so /usr/lib/php4/ldap.so
    ln -s /opt/php4/lib/php4/mbstring.so /usr/lib/php4/mbstring.so
    ln -s /opt/php4/lib/php4/mysql.so /usr/lib/php4/mysql.so
    ln -s /opt/php4/lib/php4/ncurses.so /usr/lib/php4/ncurses.so
    ln -s /opt/php4/lib/php4/odbc.so /usr/lib/php4/odbc.so
    ln -s /opt/php4/lib/php4/pgsql.so /usr/lib/php4/pgsql.so
    ln -s /opt/php4/lib/php4/snmp.so /usr/lib/php4/snmp.so
    ln -s /opt/php4/lib/php4/xmlrpc.so /usr/lib/php4/xmlrpc.so
    ln -s /opt/php4/lib/php4/xslt.so /usr/lib/php4/xslt.so

    ln -s /opt/php4/bin/php4 /usr/bin/php4

    vi /etc/httpd/conf.d/php4.conf
    #################################
    LoadModule php4_module modules/libphp4.so
    AddType application/x-httpd-php .php
    DirectoryIndex index.php
    #################################

    service httpd restart

    另外 看到的,不知道是不是可以 没有试过

    http://www.opensubscriber.com/me … s.org/10249550.html
    HI,

    I’m building php4.4.9 on centos 5.2 x64, and I need it to use the
    systems mysql libs, not the bundled ones….

    ./configure –with-libdir=lib64 –with-dbx –with-openssl –with-pcre
    –with-pgsql –with-posix \
    –with-xml –with-zlib –with-gd=/usr –enable-gd-native-ttf
    –enable-bcmath –enable-fastcgi \
    –disable-ipv6 –enable-force-cgi-redirect –with-bz2 –enable-ftp
    –with-apxs2 –with-iconv \
    –with-freetype-dir=/usr –with-ttf –with-jpeg-dir=/usr
    –with-xpm-dir=/usr –with-png \
    –with-mysql=/usr –prefix=/usr/local

    and all i’m getting is this:
    checking for mysql_close in -lmysqlclient… no
    checking for mysql_error in -lmysqlclient… no
    configure: error: mysql configure failed. Please check config.log for
    more information.

    this is what is going on in config.log:
    /usr/bin/ld: skipping incompatible /usr/lib/mysql/libmysqlclient.so
    when searching for -lmysqlclient
    /usr/bin/ld: skipping incompatible /usr/lib/mysql/libmysqlclient.a
    when searching for -lmysqlclient
    /usr/bin/ld: cannot find -lmysqlclient

    I’ve tried sooo many config combinations. config finishes if using
    bundled mysql libs, but thats not enough… =(…

    Any hope on this? Has anybody solved this before?

    Thanks in advance!

    # rpm -qa | grep mysql
    mysql-5.0.45-7.el5
    mysql-devel-5.0.45-7.el5
    mysql-devel-5.0.45-7.el5
    mysql-5.0.45-7.el5


  • ClarkConnect相关整理

    下载

    http://www.clearfoundation.com/Community/Home.html

    ClarkConnect3.0防火墙(软路由)安装+配置详解

    http://blog.donews.com/wxlg1117/archive/2009/01/05/1437125.aspx

    ClarkConnect Community Edition 5.0 的详细配置

    http://www.oschina.net/question/17_1617

     

     

     

  • Gameloft出品休闲大作推荐~垂钓之王HD!-转

    下载地址
    http://pan.baidu.com/share/link?shareid=106634&uk=1110039967
    数据包
    http://pan.baidu.com/share/link?shareid=106585&uk=1110039967
    1、数据包解压后,请存放在手机 sdcard/gameloft/games 目录下
    2、游戏开始后不显示文字,请点击第二个空白方框(设置)后,进入设置,再点击半透明的方框,即可显示语言!

  • Buffalo LS系列NAS 越狱

    http://www.qzxx.com/bbs/thread-8806-1-1.html

    http://www.nas1.cn/thread-26427-1-1.html

    http://nas1.cn/thread-26627-1-1.html

    http://www.qzxx.com/bbs/archiver/tid-8819.html

  • Skype国际版 6.0.60.120 多语言版

    SkypeSetup

    国内是Skype是专用版本 无法选择使用MSN登录

    选择“使用Microsoft账号登录”

    输入你的MSN账号和密码,点击“登录”

    点击“继续”,直至登录完成

    会问你的 有没有skype的账户 合并下就好了

    (注:通过微软官方下载的Skype支持简体中文,Skype的即时聊天界面,与MSN操作相同。用户还可以通过信用卡充值,直接在Skype上拨打好友电话或者发送短信给好友。)

  • Linux Kernel Panic报错解决思路–转

    转至http://blog.51osos.com/linux/linux-kernel-panic/

    Linux虽然没有蓝屏现象,不过Kernel报错有时也会让人头疼。有时重启后正常,linux系统运行一段时间后又down了,总不能出现问题就reboot啊。我从网上搜集一下资料,整理了出来,希望大家能在评论与我交流您的看法与经验。

    什么是Kernel Panic?

    wiki:

    A kernel panic is an action taken by an operating system upon detecting an internal fatal error from which it cannot safely recover. The term is largely specific to Unix and Unix-like systems; for Microsoft Windowsoperating systems the equivalent term is “Bug check” (or, colloquially, “Blue Screen of Death“).

    The kernel routines that handle panics (in AT&T-derived and BSD Unix source code, a routine known as panic()) are generally designed to output an error message to the console, dump an image of kernel memory to disk for post-mortemdebugging and then either wait for the system to be manually rebooted, or initiate an automatic reboot. The information provided is of highly technical nature and aims to assist a system administrator or software developer in diagnosing the problem.

    Attempts by the operating system to read an invalid or non-permitted memory address are a common source of kernel panics. A panic may also occur as a result of a hardware failure or a bug in the operating system. In many cases, the operating system could continue operation after memory violations have occurred. However, the system is in an unstable state and rather than risking security breaches and data corruption, the operating system stops to prevent further damage and facilitate diagnosis of the error.

    The kernel panic was introduced in an early version of Unix and demonstrated a major difference between the design philosophies of Unix and its predecessor Multics. Multics developer Tom van Vleck recalls a discussion of this change with Unix developer Dennis Ritchie:

    I remarked to Dennis that easily half the code I was writing in Multics was error recovery code. He said, “We left all that stuff out. If there’s an error, we have this routine called panic, and when it is called, the machine crashes, and you holler down the hall, ‘Hey, reboot it.’”[1]

    The original panic() function was essentially unchanged from Fifth Edition UNIX to the VAX-based UNIX 32V and output only an error message with no other information, then dropped the system into an endless idle loop. As the Unixcodebase was enhanced, the panic() function was also enhanced to dump various forms of debugging information to the console.

    panic是英文中是惊慌的意思,Linux Kernel panic正如其名,linux kernel不知道如何走了,它会尽可能把它此时能获取的全部信息都打印出来。

    有两种主要类型kernel panic:

    1.hard panic(也就是Aieee信息输出)
    2.soft panic (也就是Oops信息输出)

    常见Linux Kernel Panic报错内容:

    Kernel panic-not syncing fatal exception in interrupt
    kernel panic – not syncing: Attempted to kill the idle task!
    kernel panic – not syncing: killing interrupt handler!
    Kernel Panic – not syncing:Attempted to kill init !

    什么会导致Linux Kernel Panic?

    只有加载到内核空间的驱动模块才能直接导致kernel panic,你可以在系统正常的情况下,使用lsmod查看当前系统加载了哪些模块。
    除此之外,内建在内核里的组件(比如memory map等)也能导致panic。

    因为hard panic和soft panic本质上不同,因此我们分别讨论。

    hard panic

    一般出现下面的情况,就认为是发生了kernel panic:

    1. 机器彻底被锁定,不能使用
    2. 数字键(Num Lock),大写锁定键(Caps Lock),滚动锁定键(Scroll Lock)不停闪烁。
    3. 如果在终端下,应该可以看到内核dump出来的信息(包括一段”Aieee”信息或者”Oops”信息)
    4. 和Windows蓝屏相似

    原因:

    对于hard panic而言,最大的可能性是驱动模块的中断处理(interrupt handler)导致的,一般是因为驱动模块在中断处理程序中访问一个空指针(null pointre)。一旦发生这种情况,驱动模块就无法处理新的中断请求,最终导致系统崩溃。

    信息收集
    根据panic的状态不同,内核将记录所有在系统锁定之前的信息。因为kenrel panic是一种很严重的错误,不能确定系统能记录多少信息,下面是一些需要收集的关键信息,他们非常重要,因此尽可能收集全,当然如果系统启动的时候就kernel panic,那就无法只知道能收集到多少有用的信息了。

    1. /var/log/messages: 幸运的时候,整个kernel panic栈跟踪信息都能记录在这里。
    2. 应用程序/库 日志: 可能可以从这些日志信息里能看到发生panic之前发生了什么。
    3. 其他发生panic之前的信息,或者知道如何重现panic那一刻的状态
    4. 终端屏幕dump信息,一般OS被锁定后,复制,粘贴肯定是没戏了,因此这类信息,你可以需要借助数码相机或者原始的纸笔工具了。

    如果kernel dump信息既没有在/var/log/message里,也没有在屏幕上,那么尝试下面的方法来获取(当然是在还没有死机的情况下):

    1. 如果在图形界面,切换到终端界面,dump信息是不会出现在图形界面的,甚至都不会在图形模式下的虚拟终端里。
    2. 确保屏幕不黑屏,可以使用下面的几个方法:
      • setterm -blank 0
      • setterm -powerdown 0
      • setvesablank off
    3. 从终端,拷贝屏幕信息(方法见上)

    完整栈跟踪信息的排查方法

    栈跟踪信息(stack trace)是排查kernel panic最重要的信息,该信息如果在/var/log/messages日志里当然最好,因为可以看到全部的信息,如果仅仅只是在屏幕上,那么最上面的信息可能因为滚屏消失了,只剩下栈跟踪信息的一部分。如果你有一个完整栈跟踪信息的话,那么就可能根据这些充分的信息来定位panic的根本原因。要确认是否有一个足够的栈跟踪信息,你只要查找包含”EIP”的一行,它显示了是什么函数和模块调用时导致panic。

    使用内核调试工具(kenrel debugger ,aka KDB)

    如果跟踪信息只有一部分且不足以用来定位问题的根本原因时,kernel debugger(KDB)就需要请出来了。
    KDB编译到内核里,panic发生时,他将内核引导到一个shell环境而不是锁定。这样,我们就可以收集一些与panic相关的信息了,这对我们定位问题的根本原因有很大的帮助。

    使用KDB需要注意,内核必须是基本核心版本,比如是2.4.18,而不是2.4.18-5这样子的,因为KDB仅对基本核心有效。

    soft panic

    症状:

    1. 没有hard panic严重
    2. 通常导致段错误(segmentation fault)
    3. 可以看到一个oops信息,/var/log/messages里可以搜索到’Oops’
    4. 机器稍微还能用(但是收集信息后,应该重启系统)

    原因:

    凡是非中断处理引发的模块崩溃都将导致soft panic。在这种情况下,驱动本身会崩溃,但是还不至于让系统出现致命性失败,因为它没有锁定中断处理例程。导致hard panic的原因同样对soft panic也有用(比如在运行时访问一个空指针)

    信息收集:
    当soft panic发生时,内核将产生一个包含内核符号(kernel symbols)信息的dump数据,这个将记录在/var/log/messages里。为了开始排查故障,可以使用ksymoops工具来把内核符号信息转成有意义的数据。

    为了生成ksymoops文件,需要:

    • 从/var/log/messages里找到的堆栈跟踪文本信息保存为一个新文件。确保删除了时间戳(timestamp),否则ksymoops会失败。
    • 运行ksymoops程序(如果没有,请安装)
    • 详细的ksymoops执行用法,可以参考ksymoops(8)手册。

    Kernel panic实例:

    今天就遇到 一个客户机器内核报错:“Kernel panic-not syncing fatal exception”

    重启后正常,几个小时后出现同样报错,系统down了,有时重启后可恢复有时重启后仍然报同样的错误。

    我先来解释一下什么是fatal exception?

    “致命异常(fatal exception)表示一种例外情况,这种情况要求导致其发生的程序关闭。通常,异常(exception)可能是任何意想不到的情况(它不仅仅包括程序错误)。致命异常简单地说就是异常不能被妥善处理以至于程序不能继续运行。

    软件应用程序通过几个不同的代码层与操作系统及其他应用程序相联系。当异常(exception)在某个代码层发生时,为了查找所有异常处理的代码,各个代码层都会将这个异常发送给下一层,这样就能够处理这种异常。如果在所有层都没有这种异常处理的代码,致命异常(fatal exception)错误信息就会由操作系统显示出来。这个信息可能还包含一些关于该致命异常错误发生位置的秘密信息(比如在程序存储范围中的十六进制的位置)。这些额外的信息对用户而言没有什么价值,但是可以帮助技术支持人员或开发人员调试程序。

    当致命异常(fatal exception)发生时,操作系统没有其他的求助方式只能关闭应用程序,并且在有些情况下是关闭操作系统本身。当使用一种特殊的应用程序时,如果反复出现致命异常错误的话,应将这个问题报告给软件供应商。 ”

    而且此时键盘无任何反应,必然使用reset键硬重启。

    panic.c源文件有个方法,当panic挂起后,指定超时时间,可以重新启动机器

    方法:

    #vi /etc/sysctl.conf 添加

    kernel.panic = 20 #panic error中自动重启,等待timeout为20秒
    kernel.sysrq=1 #激活Magic SysRq 否则,键盘鼠标没有响应

    按住 [ALT]+[SysRq]+[COMMAND], 这里SysRq是Print SCR键,而COMMAND按以下来解释!

    b – 立即重启
    e – 发送SIGTERM给init之外的系统进程
    o – 关机
    s – sync同步所有的文件系统
    u – 试图重新挂载文件系统

    配置一下以防万一。

    很多网友安装linux出现“Kernel panic-not syncing fatal exception in interrupt”是由于网卡驱动原因。

    解决方法:将选项“Onboard Lan”的选项“Disabled”,重启从光驱启动即可。

    等安装完系统之后,再进入BIOS将“Onboard Lan”的选项给“enable”,下载相应的网卡驱动安装。

    如出现以下报错:

    init() r8168 …

    … …

    … :Kernel panic: Fatal exception

    r8168是网卡型号。

    在BIOS中禁用网卡,从光驱启动安装系统。再从网上下载网卡驱动安装。

    #tar vjxf r8168-8.014.00.tar.bz2

    # make clean modules (as root or with sudo)

    # make install

    # depmod -a

    # modprobe r8168

    安装好系统后reboot进入BIOS把网卡打开。

    另有网友在Kernel panic出错信息中看到“alc880”,这是个声卡类型。尝试着将声卡关闭,重启系统,搞定。

    安装linux系统遇到安装完成之后,无法启动系统出现Kernel panic-not syncing fatal exception。很多情况是由于板载声卡、网卡、或是cpu 超线程功能(Hyper-Threading )引起的。这类问题的解决办法就是先查看错误代码中的信息,找到错误所指向的硬件,将其禁用。系统启动后,安装好相应的驱动,再启用该硬件即可。
    另外出现“Kernel Panic — not syncing: attempted to kill init”和“Kernel Panic — not syncing: attempted to kill idle task”有时把内存互相换下位置或重新插拔下可以解决问题。

    ############################################################

    另外一篇:转–http://bbs.51cto.com/thread-936450-1.html

    查了一些网站资料,大部分都是双CPU才发生的,有些是关闭:Hyper-Threading (HT)好了,有些关闭USB好了。

    但是我试过了关闭HT,或者关闭USB都无法解决。
    还尝试了关闭SELinux的配置,也无法解决。
    经过四次重装之后,还是没有解决,在就要放弃之际。突然看到出错信息中有“alc880”的字样,这是个声卡类型。尝试着将声卡关闭,重启系统。OK,搞定。
    总结:安装linux系统经常会遇到安装完成之后,无法启动系统。很多情况是由于板载声卡、网卡、或是cpu 超线程功能引起的。这类问题的解决办法就是先查看错误代码中的信息,找到错误所指向的硬件,将其禁用。系统启动后,安装好相应的驱动,再启用该硬件即可。

    Linux kernel panic错误释疑

    已有 1688 次阅读 2010-01-05 14:24 标签: Linux panic kernel 释疑
    kernel panic 主要有以下几个出错提示:
    Kernel panic-not syncing fatal exception in interrupt
    kernel panic – not syncing: Attempted to kill the idle task!
    kernel panic – not syncing: killing interrupt handler!
    Kernel Panic – not syncing:

    查看了一下 linux的源码文件,找到相关位置
    kernel/panic.c
    NORET_TYPE void panic(const char * fmt, …)
    {
    static char buf[1024];
    va_list args;
    bust_spinlocks(1);
    va_start(args, fmt);
    vsnprintf(buf, sizeof(buf), fmt, args);
    va_end(args);
    printk(KERN_EMERG “Kernel panic – not syncing: %s\n”,buf);
    bust_spinlocks(0);

    kernel/exit.c

    if (unlikely(in_interrupt()))
    panic(“Aiee, killing interrupt handler!”); #中断处理
    if (unlikely(!tsk->pid))
    panic(“Attempted to kill the idle task!”); #空任务
    if (unlikely(tsk->pid == 1))
    panic(“Attempted to kill init!”); #初始化

    从其他源文件和相关文档看到应该有几种原因:

    1、硬件问题
    使用了 SCSI-device 并且使用了未知命令

    #WDIOS_TEMPPANIC Kernel panic on temperature trip
    #
    # The SETOPTIONS call can be used to enable and disable the card
    # and to ask the driver to call panic if the system overheats.
    #
    # If one uses a SCSI-device of unsupported type/commands, one
    # immediately runs into a kernel-panic caused by Command Error. To better
    # understand which SCSI-command caused the problem, I extended this
    # specific panic-message slightly.
    #
    #read/write causes a command error from
    # the subsystem and this causes kernel-panic

    2、系统过热
    如果系统过热会调用panci,系统挂起

    #WDIOS_TEMPPANIC Kernel panic on temperature trip
    #
    # The SETOPTIONS call can be used to enable and disable the card
    # and to ask the driver to call panic if the system overheats.

    3、文件系统引起

    #A variety of panics and hangs with /tmp on a reiserfs filesystem
    #Any other panic, hang, or strange behavior
    #
    # It turns out that there’s a limit of six environment variables on the
    # kernel command line. When that limit is reached or exceeded, argument
    # processing stops, which means that the ‘root=’ argument that UML
    # usually adds is not seen. So, the filesystem has no idea what the
    # root device is, so it panics.
    # The fix is to put less stuff on the command line. Glomming all your
    # setup variables into one is probably the best way to go.

    Linux内核命令行有6个环境变量。如果即将达到或者已经超过了的话 root= 参数会没有传进去
    启动时会引发panics错误。
    vi grub.conf
    #####################
    title Red Hat Enterprise Linux AS (2.6.9-67.0.15.ELsmp)
    root (hd0,0)
    kernel /boot/vmlinuz-2.6.9-67.0.15.ELsmp ro root=LABEL=/
    initrd /boot/initrd-2.6.9-67.0.15.ELsmp.img
    title Red Hat Enterprise Linux AS-up (2.6.9-67.EL)
    root (hd0,0)
    kernel /boot/vmlinuz-2.6.9-67.EL ro root=LABEL=/
    initrd /boot/initrd-2.6.9-67.EL.img

    应该是 其中的 root=LABEL=/ 没有起作用。

    4、内核更新
    网上相关文档多半是因为升级内核引起的,建议使用官方标准版、稳定版
    另外还有使用磁盘的lvm 逻辑卷,添加CPU和内存。可在BIOS中禁掉声卡驱动等不必要的设备。

    也有报是ext3文件系统的问题。
    解决: 手工编译内核,把 ext3相关的模块都编译进去,

    5、处理panic后的系统自动重启

    panic.c源文件有个方法,当panic挂起后,指定超时时间,可以重新启动机器

    if (panic_timeout > 0)
    {
    int i;
    /*
    * Delay timeout seconds before rebooting the machine.
    * We can’t use the “normal” timers since we just panicked..
    */
    printk(KERN_EMERG “Rebooting in %d seconds..”,panic_timeout);
    for (i = 0; i < panic_timeout; i++) {
    touch_nmi_watchdog();
    mdelay(1000);
    }

    修改方法:
    /etc/sysctl.conf文件中加入
    kernel.panic = 30 #panic错误中自动重启,等待时间为30秒
    kernel.sysrq=1 #激活Magic SysRq! 否则,键盘鼠标没有响应

    Linux的稳定性勿容置疑,但是有些时候一些Kernel的致命错误还是会发生(有些时候甚至是因为硬件的原因或驱动故障),Kernel Panic会导致系统crash,并且默认的系统会一直hung在那里,直到你去把它重新启动!
    不过你可以在/etc/sysctl.conf文件中加入
    kernel.panic = 20
    来告诉系统从Panic错误中自动重启,等待时间为20秒!这个由管理员自己设定!
    另外一个讨厌的事情是系统hung住之后,键盘鼠标没有响应,这个可以通过设置Magic SysRq来试着解决,也是在/etc/sysctl.conf中,
    kernel.sysrq=1
    来激活Magic SysRq!
    这样在挂住的时候至少还有一招可以使,
    按住 [ALT]+[SysRq]+[COMMAND], 这里SysRq是Print SCR键,而COMMAND按以下来解释!b – 立即重启
    e – 发送SIGTERM给init之外的系统进程
    o – 关机
    s – sync同步所有的文件系统
    u – 试图重新挂载文件系统
    当然,谁也不希望经常用到这些招数!:O,有备无患而已

    Linux kernel panic是很难定位和排查的重大故障,一旦系统发生了kernel panic,相关的日志信息非常少,而一种常见的排查方法—重现法–又很难实现,因此遇到kernel panic的问题,一般比较头疼。

    没有一个万能和完美的方法来解决所有的kernel panic问题,这篇文章仅仅只是给出一些思路,一来如何解决kernel panic的问题,二来可以尽可能减少发生kernel panic的机会。

    什么是kernel panic

    就像名字所暗示的那样,它表示Linux kernel走到了一个不知道该怎么走下一步的状况,一旦到这个情况,kernel就尽可能把它此时能获取的全部信息都打印出来,至于能打印出多少信息,那就看是那种情况导致它panic了。

    1.hard panic(也就是Aieee信息输出也就是Oops信息输出什么能导致kernel panic

    只有加载到内核空间的驱动模块才能直接导致kernel panic,你可以在系统正常的情况下,使用lsmod查看当前系统加载了哪些模块。
    除此之外,内建在内核里的组件(比如memory map等)也能导致panic。

    因为hard panic和soft panic本质上不同,因此我们分别讨论。

    一般出现下面的情况,就认为是发生了

    数字键(Num Lock),大写锁定键(Caps Lock),滚动锁定键(Scroll Lock)不停闪烁。如果在终端下,应该可以看到内核dump出来的信息(包括一段”Aieee”信息或者”Oops”信息)
    对于hard panic而言,最大的可能性是驱动模块的中断处理(interrupt handler)导致的,一般是因为驱动模块在中断处理程序中访问一个空指针(null pointre)。一旦发生这种情况,驱动模块就无法处理新的中断请求,最终导致系统崩溃。

    信息收集
    根据panic的状态不同,内核将记录所有在系统锁定之前的信息。因为kenrel panic是一种很严重的错误,不能确定系统能记录多少信息,下面是一些需要收集的关键信息,他们非常重要,因此尽可能收集全,当然如果系统启动的时候就kernel panic,那就无法只知道能收集到多少有用的信息了。

    /var/log/messages: 幸运的时候,整个kernel panic栈跟踪信息都能记录在这里。应用程序/库 日志: 可能可以从这些日志信息里能看到发生panic之前发生了什么。其他发生panic之前的信息,或者知道如何重现panic那一刻的状态终端屏幕dump信息,一般OS被锁定后,复制,粘贴肯定是没戏了,因此这类信息,你可以需要借助数码相机或者原始的纸笔工具了。
    如果kernel dump信息既没有在/var/log/message里,也没有在屏幕上,那么尝试下面的方法来获取(当然是在还没有死机的情况下):

    如果在图形界面,切换到终端界面,dump信息是不会出现在图形界面的,甚至都不会在图形模式下的虚拟终端里。确保屏幕不黑屏,可以使用下面的几个方法:
    栈跟踪信息(stack trace)是排查kernel panic最重要的信息,该信息如果在/var/log/messages日志里当然最好,因为可以看到全部的信息,如果仅仅只是在屏幕上,那么最上面的信息可能因为滚屏消失了,只剩下栈跟踪信息的一部分。如果你有一个完整栈跟踪信息的话,那么就可能根据这些充分的信息来定位panic的根本原因。要确认是否有一个足够的栈跟踪信息,你只要查找包含”EIP”的一行,它显示了是什么函数和模块调用时导致panic。大概就像下面这个例子一样:

    EIP is at _dlgn_setevmask [streams-dlgnDriver] 0xe

    Unable to handle kernel NULL pointer dereference at virtual address 0000000c

    EIP: 0010:[<f89e568a>] Tainted: PF

    EIP is at _dlgn_setevmask [streams-dlgnDriver] 0xe

    eax: 00000000 ebx: f65f5410 ecx: f5e16710 edx: f65f5410

    esi: 00001ea0 edi: f5e23c30 ebp: f65f5410 esp: f1cf7e78

    Process pwcallmgr (pid: 10334, stackpage=f1cf7000)

    Stack: 00000000 c01067fa 00000086 f1cf7ec0 00001ea0 f5e23c30 f65f5410 f89e53ec

    f89fcd60 f5e16710 f65f5410 f65f5410 f8a54420 f1cf7ec0 f8a4d73a 0000139e

    f5e16710 f89fcd60 00000086 f5e16710 f5e16754 f65f5410 0000034a f894e648

    Call Trace: [setup_sigcontext+218/288] setup_sigcontext [kernel] 0xda

    Call Trace: [<c01067fa>] setup_sigcontext [kernel] 0xda

    [<f89e53ec>] dlgnwput [streams-dlgnDriver] 0xe8

    [<f89fcd60>] Sm_Handle [streams-dlgnDriver] 0×1ea0

    [<f8a54420>] intdrv_lock [streams-dlgnDriver] 0×0

    [<f8a4d73a>] Gn_Maxpm [streams-dlgnDriver] 0×8ba

    [<f89fcd60>] Sm_Handle [streams-dlgnDriver] 0×1ea0

    [<f894e648>] lis_safe_putnext [streams] 0×168

    [<f8a7b098>] __insmod_streams-dvbmDriver_S.bss_L117376 [streams-dvbmDriver] 0xab8

    [<f8a78821>] dvbmwput [streams-dvbmDriver] 0×6f5

    [<f8a79f98>] dvwinit [streams-dvbmDriver] 0×2c0

    [<f894e648>] lis_safe_putnext [streams] 0×168

    [<f893e6d8>] lis_strputpmsg [streams] 0×54c

    [<f895482e>] __insmod_streams_S.rodata_L35552 [streams] 0×182e

    [<f8951227>] sys_putpmsg [streams] 0×6f

    [system_call+51/56] system_call [kernel] 0×33

    [<c010719b>] system_call [kernel] 0×33

    Nov 28 12:17:58 talus kernel:

    Nov 28 12:17:58 talus kernel:

    Code: 8b 70 0c 8b 06 83 f8 20 8b 54 24 20 8b 6c 24 24 76 1c 89 5c

    如果只有部分跟踪信息,要快速定位问题的根本原因就变得很难,因为没有明显的信息来告诉我们是哪个模块或者函数的调用导致了内核panic,你可能只能看到kernel最后的一些指令。这种情况下,要尽可能多的收集信息,包括程序日志,库的跟踪信息,故障重现的步骤等。

    Hard panic 部分跟踪信息例子(没有EIP信息):
    [<c01e42e7>] ip_rcv [kernel] 0×357
    [<f8a179d5>] sramintr [streams_dlgnDriver] 0×32d
    [<f89a3999>] lis_spin_lock_irqsave_fcn [streams] 0×7d
    [<f8a82fdc>] inthw_lock [streams_dlgnDriver] 0×1c
    [<f8a7bad8>] pwswtbl [streams_dlgnDriver] 0×0
    [<f8a15442>] dlgnintr [streams_dlgnDriver] 0×4b
    [<f8a7c30a>] Gn_Maxpm [streams_dlgnDriver] 0×7ae
    [<c0123bc1>] __run_timers [kernel] 0xd1
    [<c0108a6e>] handle_IRQ_event [kernel] 0×5e
    [<c0108c74>] do_IRQ [kernel] 0xa4
    [<c0105410>] default_idle [kernel] 0×0
    [<c0105410>] default_idle [kernel] 0×0
    [<c022fab0>] call_do_IRQ [kernel] 0×5
    [<c0105410>] default_idle [kernel] 0×0
    [<c0105410>] default_idle [kernel] 0×0
    [<c010543d>] default_idle [kernel] 0×2d
    [<c01054c2>] cpu_idle [kernel] 0×2d
    [<c011bb86>] __call_console_drivers [kernel] 0×4b
    [<c011bcfb>] call_console_drivers [kernel] 0xeb
    Code: 8b 50 0c 85 d2 74 31 f6 42 0a 02 74 04 89 44 24 08 31 f6 0f
    <0> Kernel panic: Aiee, killing interrupt handler!
    In interrupt handler – not syncing

    使用内核调试工具(kenrel debugger ,aka KDB)

    如果跟踪信息只有一部分且不足以用来定位问题的根本原因时,kernel debugger(KDB)就需要请出来了。
    KDB编译到内核里,panic发生时,他将内核引导到一个shell环境而不是锁定。这样,我们就可以收集一些与panic相关的信息了,这对我们定位问题的根本原因有很大的帮助。

    使用KDB需要注意,内核必须是基本核心版本,比如是2.4.18,而不是2.4.18-5这样子的,因为KDB仅对基本核心有效。

    可以看到一个oops信息,/var/log/messages里可以搜索到
    凡是非中断处理引发的模块崩溃都将导致soft panic。在这种情况下,驱动本身会崩溃,但是还不至于让系统出现致命性失败,因为它没有锁定中断处理例程。导致hard panic的原因同样对soft panic也有用(比如在运行时访问一个空指针

    信息收集:
    当soft panic发生时,内核将产生一个包含内核符号(kernel symbols)信息的dump数据,这个将记录在/var/log/messages里。为了开始排查故障,可以使用ksymoops工具来把内核符号信息转成有意义的数据。

    从/var/log/messages里找到的堆栈跟踪文本信息保存为一个新文件。确保删除了时间戳(timestamp),否则ksymoops会失败。详细的ksymoops执行用法,可以参考ksymoops(8)手册。
    Code: 8b 70 0c 50 e8 69 f9 f8 ff 83 c4 10 83 f8 08 74 35 66 c7 47
    EIP; f89ba71e <[streams-dlgnDriver]_dlgn_setidlestate+1e/8c>
    Trace; f8951bd6 <[streams]lis_wakeup_close+86/110>
    Trace; f8a2705c <[streams-dlgnDriver]__module_parm_r4_feature+280/1453>
    Trace; f8a27040 <[streams-dlgnDriver]__module_parm_r4_feature+264/1453>
    Trace; f89b9198 <[streams-dlgnDriver]dlgnwput+e8/204>

    案例分析

    Kernel Panic — not syncing: attempted to kill idle task

    出现这种错误是进入不了操作系统的,kernel panic的成因有多种多样,但这种情况是比较奇特的一种,因为它很可能不是软件的问题,而是硬件的问题。几年前我用带奔三的旧主板时遇到过,当时不知道如何解决,只知道它偶尔出现,放一放也会自行消失,所以当初没有重视。现在,当我重新用上旧主板,这种情况又出现了,而且这一次比较顽固,无论怎样重启,总是这条错误,不但硬盘上现有的两个操作系统都进不去,而且连光驱里的LiveCD也进不去了,这显然不是硬盘的问题,也不是内核的问题。以前我就明白应该是主板的问题,可能是主板太旧,电路信号不太通畅的原因,但不知道怎么办,害得我一天一宿没上网。今天早上去网吧,查了点资料,大体上有几种说法:

    一种是在grub作内核引导时添加idle参数,这一种是国内网常见的一种说法;

    第二个方法是注意一下bios中显示的CPU或者内存条的温度;

    这几个是外国人的论坛上说的。我回到家以后,先试了第一种,加了idle的各种参数后,毫无效果,关于第二种方法,我在bios中看到似乎硬件的温度不是可以调节的,但我从这个思路出发,考虑到,如果与内存有关,不妨把三个内存条互换一下位置,也许有效,于是,我把我的三个SD内存换了位置,然后开机,一切正常了。

    Kernel Panic — not syncing: attempted to kill init

    这一种情况的表现是系统的极不稳定。或者进入不了系统,syslog停止于kernel panic;或者重启后可以进入系统,但不久就死机,键盘上的Caps-Lock与Scroll-Lock两个灯在闪。这种错误与上面那个有相同的成因,解决方法也相同。