Tuesday, July 24, 2012

我们解决你被警方通缉你该怎么办

别的地方看到的,超级吊。


1. 不要用过去的邮箱、QQ、MSN 博客、手机号,论坛id等带有个人特征的东西,非要打开,去网吧上网, 务必远离居住地,时
间不超过30分钟。

2. 不要使用手机和任何以前认识人的联系,避免被监控并通过手机定位。 如果想家人,忍耐是最重要的,因为他们是被监控
最彻底的,实在忍不住,应到居住地500公里外,最好用VPN TOR SSL加密跳板+SKYPE VOIP 或者跨省打IP电话给他们,切记
时间也不能太长,因为公话时间长了也会暴露锁定。
  
3. 自己名下的银行卡,打折卡,贵宾卡千万不要用,很多是全国联网,都有摄像头,一旦取钱或消费,很容易被经侦人员锁定
,暴露行踪。强烈建议办4-6张化名银行卡,全部开通网银,跑路时将

所带钱款分别存入带拉链的贴身内裤,冬天的夹克夹层,肩上的包裹,拉杆箱中,裤子钱包内,即使路上被歹人打劫,不至于一锅端
导致身无分文,且可以迅速通过网银将被劫银行卡中资金转移到你剩余的卡上。
  
4. 衣服穿最普通的一种,以前刮胡子,现在就蓄须,以前长发,现在就平头,戴副眼镜,如果近视,换成有色近视镜,随身现
金不要超过1000,绝对够用了。硬币、小额纸币一定要足够,车站码头等人流密集的地方,买烟,吃盒饭,买地图,报纸等等小额
消费千万不要用百元大钞,最大限度降低你被别人关注的可能。

5. 记住几个你周围熟人的身份证,同事、邻居、同学等,要年龄,体貌差不多的,而且他们都是绝对老实人,没有任何案底甚
至没有银行不良信用记录,一辈子也不会上警察的追捕名单,按照他们的信息做几张,也不要长期用一张,轮流用,万一被人盘问,
你用假名也可以对答如流。

6. 不要迷信越危险的地方越安全,你看电视上的法制节目,至少70%以上家伙都是在家乡附近不超过500公里地域范围被抓获
的,所以要有至少3-5年不回家乡省份甚至临近省份的思想准备。
  
7. 出行住宿登记,一般就说自己身份证被盗,报个家乡绝对良民的号码就行了,只要网上验证身份证号码对,多数不细查,更
何况很多小宾馆根本不具备查验能力,实在不行就去休闲洗浴城,那里不查身份证,洗个澡,睡一觉,不找小姐的话,消费也不贵,
不到万不得已不要用假身份证,很多人就是栽在假证上,其实不挂星级的根本不用,给钱就好了,前提是你不能给人你是罪犯的印象
,最好的办法是带着拉杆箱和一个旅行背包(老外常备的那种,上面塞一瓶水)

8. 不要在旅馆里不出门。那样容易被怀疑。早出晚归。去网吧看看有没有警方的侦察动向报道,看看家乡论坛上有没有关于你的帖
子,以确定下一步计划,好多人都说不要去人多的地方,特别是出事(案发)的头两个月,
我的观点是相反,人潮涌动的地铁站,购物街是最佳藏匿点,没有警察会在闹市区人流中查身份证,另外如果被私家侦探跟踪,可以
非常迅速的逃逸。
  
9. 长途出行切记随身带一本全国地图,最好后面附有公路里程和列车时刻表,很多小城市售票厅墙上的简易地图不足以给你的
跨省出行足够指导,强烈建议购买地质出版社的中国公路铁路地图册。
和谐号,特快,中长途客运汽车是最佳选择。不能直达,一定要转车。因为运气不好的话,你的举动会被售票窗口摄像头监控,你的
车票信息会被警方侦之,可能你还没下车,警察就在出站口等你了。

比如你要从武汉到广州去,不要买直达,买到长沙就行了,从长沙坐汽车到株洲,再株洲到广州,两次车一转,这条线索就断了,谁
也不知道你到了广州。
  
10. 尽量坐汽车,最好转一次车,就到了另一个省,坐汽车第一个目的地不要有意识,碰到什么车,就上什么车,装成老江湖
,不要长时间在车站东张西望,以免被关注。不要坐飞机,身份证和安检就要了你的命。也不要坐火车,车上乘警和入口处的警察也
查身份证。
  
11. 一定要走铁路的话,不妨先做和谐号到二线城市再转车。在火车站要想不被查验身份证,只有走和谐号专用候车通道或者
城际特快。实在不行你还可以坐拉客的黑车,凑够3-5个人就走哦,一般最远不超过300公里,走高速,没有身份检查,老江湖可以
考虑,新手不推荐。
  
12. 路途中能不说最好不说,说话尽量普通话,避免带有家乡口音,见到千里之外的老乡不要激动,不要急于攀谈,他可能认
识你拐弯没脚的某个熟人,即使交谈也不要留下行业背景,生活习惯,交友圈子等可能暴露你的信息。
  

13. .出事最初的半个月里,不要在任何地方停留超过3天,大跨度、随机性是保证安全的第一要务,避开自己曾去过的任何地
方。比如你是湖北人,直奔青海西宁,远离第一现场,
3天后折向江苏南京住上不超过两晚。再折向宁波住上两晚,做最新的和谐号直达福建福州,看见警察要镇定,他只是例行公事,不
可能认出你,特别是在数千里之外,你越慌他反而越关注你。

14. 出行的身份伪装反差要大,以前是办公室职员,朝九晚五,可以伪装成背包旅行客自助游,商人和小贪官请扔掉你们的名贵西
服,把它卖给恶意欠薪的包工头就对了,一身假耐克和伪LV的挎包是你
们的不二之选,把手机铃声调成最粗俗的网络歌曲,没事响两下,把名贵手表和戒指放在背包里吧,总之低调。
  
15. 跑路的最高境界不是跑,是隐居。所谓大隐隐于市,长期居住地要选在从没去过,外来流动人口多的大城市,你想啊,你
在沈阳几十年,几乎不出省,你的亲戚,同窗好友,同事,恩师,朋友
,甚至网友,都是东三省及周边,那么警察就不会在上海,成都,广州这些你从来都没去过,又没有熟人的地方做拉网式的排查。千
万不要躲到偏远小城镇,那边几十个派出所统一行动,甚至做得到挨
户检查,因为外来人口少,你就很显眼,几个老街坊就可以把你出卖了,但大城市外来人口流动密集,满眼都是外地打工者,什么地
方口音的都有,你就安全了。
  
16. 最好整租那种外来大学生,伪小资白领打工聚集的精装修单身公寓,人多,隐蔽,治安又比普通民工聚集的城中村安全许
多,为以后重新找工作打下基础,避免坐吃山空,
也可避免长期流动住宿频繁使用假身份证的风险,如果有条件,建议选择全封闭物业管理的高档社区,(20-40平方),一般城市不
超过2000,大城市
不超过3000,空调,冰箱,热水器,洗衣机,宽带,数字电视全备,拎包入住,只要不要再犯罪,便可长期潜伏。

17. 租房尽量通过网络上的个人,联系房东通过匿名神州行卡,最好是居住地以外较远省份的,提前复印假身份证,就找我上面说
的那种你老家的绝对良民,印的时候头像模糊一点,号码清楚就可以了。
不要去中介,在中介你会留下你的体貌特征,口音,甚至笔迹,指纹。而在网络,只要你一次性支付半年甚至9个月的租金,房东
对你的戒备会降到最低,根本不会想到你是在跑路,房东一旦把房子租出去,都会在网上注明已租出,勿再联系,这条租赁信息一旦
无人关注,不出半月就会湮没在网络中,警方无从查证。
  

18. 一旦有定居点,强烈建议拥有一辆二手自行车,像当地普通工薪族一样,尽量做公交和地铁,如果有月票,那就更逼真了
。没事在旧自行车龙头上挂上一兜韭菜和茄子,看到户籍警和联防队朝你走来时,不要躲躲闪闪,
直接上去和他说:“可看到你们啦,我车库门口全是小广告,什么□□□□,枪支,迷药,假币,美女
伴游,你们每月收这么贵的物管,好歹管一下啊,这不是让小孩子学坏吗?
”如果你能镇定的说出这段话,恭喜你,你的演技已经超越99%的华人演员,可以冲击奥斯卡了。

9. 居住地最好不要做出租车,很多的哥是警察的眼线,他们很快会被警察找到,说出你在哪里乘车或下车,也许你脸上一颗与众不
同的痣会在不经意间出卖了你,万一乘车,也要离目的地一公里外下车。

20. 出事后警方3天之内会重点排查你的原有社交生活圈子,不出当地县市及周边范围,但是力度很强,几近拉网式;4天以后才可
能扩大到省内各市,交通要道,力度中等,因为需要省厅布置协调,地

方配合;1周以后会排查到你曾经到过的外省地一级城市,以及外地亲戚,好友,以前同学,网友居住地,这个时候力度已经减弱,
如果不是公安部督办的案子,外省警方不会积极买账,通常下发通报应付了事。

21. 7天之内是最危险的,也是最容易被逮到的。建议当天出市,3天出省,一周乾坤大挪移3000公里外,东北的建议到川渝,
湖广到东北,沪宁杭到广莞深,广东到中土河南,总之是水土、气候、人文反差越大越好。
  
22. 基本上30天时间会让警察丧失追捕的信心。40天后他们的日子更难,该做的都做了,每过一天,他们的线索就越少。只要
不是大案要案,越往后警察的关注力度越低。这几个月不要急着找小姐,逛夜店,有时候警察扫黄打非也会有意外收获,很多家伙也
是栽在这上面,先熬上几个月。

24. 本人心目中最佳跑路目的地排名:
  1.广州:老牌大都市,包容性强,外来流动人口巨大,交通高度发达,各色人等齐聚,骗子多,打工机会多,小本创业的机会多
,身份查验不严,治安较差,消费水准丰俭由人,适合全国人民,生

存底限1000/月。
  2.东莞:世界工厂,流水操作工需求大,色情业发达,身份查验不严,治安极差;优点是工作好找,运气好下车就有招普工的,
入行门槛低,当天上班,手续简便,适合落魄的兄弟迅速站稳脚跟。

生存底限1000+/月。

3.深圳:90%全是外来人口,没有所谓的本地人,优点是没有方言、地方风俗障碍,便于迅速隐匿;缺点:城市节奏快,生活成本接
近上海,竞争激烈,治安一般,好于东莞,远低于长三角,就业机会不多,适合四十岁以下人士跑路。生存底限1500+/月。
  
4.南京:科教文卫事业发达,生活节奏偏慢,物价水平低,北方外来人口多,适合东北,湖广的兄弟,方言接近普通话,沟通不
困难,治安状况中等偏上,少有恶性刑事案,身份查验中等严格。治

安防范意识远低于广东,易于隐匿。缺点:就业机会少,平均收入低,生存底限1200+/月。
  
5.成都:人口多,城区大,慢节拍,低消费,典型居住型城市,就业机会中等多,治安一般,身份查验不严,骗子数量远低于广
东,适合沪宁杭人士隐匿。缺点:川籍外来人口居多,外省较少,不

便于迅速隐匿。生存底限1000-/月。如果能泡个来成都打工的乡下川妹子,可以把户籍落到她那边,很有可能轻易办到一张偏远地
区农村户口和身份证。有了真的身份证你就可以大胆出入全国各地,但是现在还不能回老家,切记。

6. 武汉,哈尔滨,天津+唐山,西安,排名不分先后,选择标准越远越好,最好跟你的旧生活圈子完全不相干。不推荐城市:北
京,上海,杭州,郑州,长沙,沈阳,原因嘛,长年在外的老江湖心里

都有体会。千万不要动辄就是大西北,大兴安岭,云贵山区之类的地方,那是没有头脑的凭空想象。记住,首选千万人口以上的大城
市,而且要流动人口多,这样你才会隐蔽并且有打工的机会,保证自身可持续发展。

7. 有朋友问,我金融危机做生意失败,被骗,无奈跑路,灯红酒绿的大城市跑遍啦,怎么办?不要慌,推荐以下二三线城市:
四川:广安,泸州,达州。河南:开封,洛阳。贵州:凯里。浙江:衢

州,绍兴,金华。山东:烟台,泰安,日照。江苏:扬州,南通,徐州。河北保定,东北:牡丹江,通化:广东惠州,广西柳州,就
算你是当朝一品,封疆大吏,超级富豪,相信你的人脉还不足以覆盖

这些地方。不推荐两湖及江西全境。选择标准:有一定旅游景点和特色产业作支撑,有外来人口淘金群体,很少有大案要案发生,治
安防范意识差的城市。

 23. 好些类似网文写到一些偏僻的海岛、城市边缘山区的农家乐是好去处,不需要身份证,一天20元的住宿费,安全卫生。这是
没有经验的臆想,跑路在外,百密一疏,
一旦你疏忽了某个细节,在这里你只有被瓮中捉鳖,因为交通不便。以前那个大毒枭刘招华,警察和便衣已经堵在小区了,他粘上胡
子坐电梯下楼,骑上自行车在警察面前镇定而过,等警方察觉,人已经逃脱。
越是大城市你的逃跑机会和方式越多,比如公交、地铁、轻轨,中巴、出租车,摩的、非法营运黑车、大超市班车,工厂班车,看楼
盘的车,机场大巴候
车点;想出城的话,和谐号,城际特快,普通列车,汽车,轮渡,黑

车,每一种都可能在危急时救你一命。

25. 平时要熟悉各种交通工具的特点,没事安全出行时尽量多尝试一下平时没有试过的方式,以免临时抱佛脚,关注各地的风土
人情,土特产,最快时间融入当地社会。路过一个地方,如果时间充足,
买一张匿名神州行,收集5-7张就可以了,在广东打电话就用山东的卡,在四川就用江苏移动的,用于电话订票,叫外卖,短期租
车出行,租房,办假证,话费用完扔掉,不要充值。

26. 最初的阶段最困难,尤其是遇到拉网式排查,车站码头设卡查证,宾馆旅店严格登记监控,高速封路逐一检查,你会怎么办呢
?要镇定,
  医院是一个非常理想的藏匿地点,把胳膊往墙上一蹭,皮破了吧,出血就好了,力度自己掌握,去医院挂号,随便写个张三李四
就好了,十五分钟后你就在病床上了,记得往住院卡上存钱,只要有钱,没人管你是不是有病,
你要是现金结账,医生恨不得你住到死都不出来,最便宜一天几十块的病床费,比宾馆安全多了,根本不会有警察来。十天半月后,
风声小了,你就可以出来了。

1. 提前销毁老手机号上所有通话信息,就是移动数据库上都查不到的那种,现在有专业公司代劳,要提前下手,抢在讨债公司
之前
  2. 假证件要在跑路前准备,联系电话最好匿名异地卡,不要发短信告诉证件信息,直接口述。
  3. 提前准备1寸免冠照8-10张,你住在天津,就到唐山拍,用u盘留好电子版备份。
  4. 同时准备2-3个符合你出行装扮的证件,比如:记者证,学生证,教师证,执业医师证,一般单位工作证。不推荐军官证,
护照,警官证这些人们警惕性高的证件。胆大的还可以使用人大代表证,政协委员证,只要你长得就像贪官。

身份证参见第5条,要年龄,体貌差不多的,用他的全部信息,包括住址,生日,号码,发证机关和时间,假证上除了头像是你的,
其他信息全部是他人真实。
医院没有身份证检测仪,登记99.9999%只是填单子,没有人验证真伪,现在的医院只收钱不看病,绝对安全。

目前的手机定位情况,一般开机40秒之内定位你没什么问题,这个的实现其实是基于手机信号发射站来定位的,多维定位法,一般精
确度在300-400米范围内,你所处位置的基站越多,定位越精确,
只要你手机开机,有信号,基站就会不断扫描你手机信号源,然后多维定位。我不知道他们是不是基于手机基站扫描定位,还有卫星
GPS定位技术在里面吧,另外每个正规手机都有移动设备识别码,
IMEI码是唯一的.当你手机接入通信网络时,通过手机的IMEI码,就可以对你的手机进行识别,监视,录音,定位等,所以一定要
同时换手机和卡的,不能只换卡而不换手机,新换的手机只要能打电话,看短信就

行了,待机长,结实就好,最好是山寨的,什么移动梦网,动感地带,手机QQ一概不要,3G也不要,为安全跑路而必须进行的联系
才是必要的。其余的都不要,电话打完把手机卡拔出来,要用再装,一天开机不超过5分钟,时间足够了,你没有那么多话要讲的。
不给私家侦探任何缝隙,彻底断了通讯线索。

技侦里有个术语"基站搜索法",就是调出在案发时间段,案发地点附近的基站(联通,移动)所有的手机信号,这些手机信号都将成为排
查对象,尤其串上的案子,出现手机信号碰撞的(重复的),将成为重大嫌疑目标.
  
只要手机开机,追踪手机串号,没有SIM卡照样可以定位
最新的技术可以在手关机时启动手机芯片发出信号,从而定位

即使关闭手机,利用现代高科技,持有特殊仪器的人,仍可遥控打开手机的话筒,继续窃听话筒有效范围内的任何谈话。也就是说,
使用者只要将手机放在身边,就毫无保密可言
。惟一保密的办法就是在特殊的场合将手机电池取出,彻底断绝手机的电源。一些国家的情报部门、军方和重要食堂部门,都禁止在
办公场所使用移动电话,即使是关闭的手机也

“手机定位”听起来挺吓人,其实手机定位再准确,也没有电话线或宽带网定位准确。

如果用一个无线基站定位,那只能定位在几百米或几千米内;如果用三个无线基站进行定位,精度可达几十米。而固定线路可精确到
某一家某一户。

无线定位所需动用的人力物力和时间,比有线定位花费大得多,jc追踪少数人是有可能的;一旦人数多了,jc在人力物力资金上都
顾不过来,特别是在经济不发达地区更是如此。

IMEI码,也就是我们所说的手机串号,几乎所以手机都适用,IMEI就是“国际移动装备辨识码”,是手机的“身份证”,PPC手机修改
串号,相当于换了一部手机。有的JS有意用与行货相同串号的PPC手机使用行货软件冒充行货

手机所谓关机只是关掉屏幕显示、手机的键盘、手机的耳机和发射电路的电源,这几个是主要的耗电因素。而接收电路、时钟电路、
内部控制操作系统的电源没有断掉,一部份核心系统仍在运行。只有拔掉电池,才算是真正的关掉手机。再一个就是不开机被监听,
而这种情况下手机的电池耗电是微量的,几乎没有耗电,根本无法察觉。

现在设计的手机核心芯片都加入了非常之多的实时控制,可以接收空中特殊的处理指令。这些特殊功能的手机芯片,老百姓乃至不参
与这些的专家对此都一无所知,只有一部份开发设计人员知道,而这些人员也都是被控制和监视的。很多这些功能都是用户所不需要
的,比如悄悄的打开接收话音电路,悄悄的转发通话、接收特殊的短信等。手机接收到之后,在内部先有个识别,是普通信息的,走
普通短信的程序处理,有特种标记的不作为短信处理,其实对手机而言是一段特殊的程序,

可以悄悄向监视中心报告手机的位置等监视信息,也可以在有信号的情况下,让手机显示无信号,拨电话时可以随意控制话路走向,
反正功能非常之多。很多监视和控制是靠手机
用户所必须依赖的服务实现的,比如通过短信、位置更新、无线链路连接等形式,而手机在接收和发送这类短信时,手机持有者对此
一无所知。

更换sim卡还找到对方是依据串号,巴基斯坦用串号定位,结果因为中国山寨手机串号都一样结果不理想

"极高待遇"的电话不光被监听,甚至录音被通过技术手段或者书面形式有专家专门研究,从中来发现隐藏的暗语和特殊含义

体貌特征,生活、和消费习惯,书写笔迹有没有办法应对?可以这么说,有矛就有盾,既然是终结版,当然有对策。但是在这个层面
上,你自己要有一定的侦查与反侦查能力,了解痕迹学与追踪,审讯应对策略,应对突发事件的处理能力。

Wednesday, June 13, 2012

Virtual Router设置使用

过去:
   
    很多时候,只有一个网线,没有路由器,但是想用windows自带的简历局域网的方式共享有线上网,以前也试过,总是觉得不大好用,系统自带的方法建立无线局域网连接,但是经常手机或者其他终端连不上,更不用说其他的pc连接了。。。。。一直觉得是个鸡肋。

需求:

    而且貌似都是共享本地有线连接,即建立的临时无线局域网是要通过共享电脑本身连接的网线来上网的,不能支持共享无线网络,这个正是前段时间遇到的麻烦需求:校内的网络采用认证方式,一个学号只能只用一台设备上网(为了节约带宽,所有移动设备什么的疯狂跟上,显然BUPT的不足的带宽更吃不消了),那我要是有两太机器咋办?手机测试需要网络咋办?在确实需要多个设备都接入网络的情况下,需要一种办法,或许有人会说:笔记本插线,然后自带win7建立和临时局域网,无线连接共享有线就行了嘛……但是往往还会碰到这种情况:你没有有线……就是宿舍的端口被占满了,或者坏了两个,跟人数不等了。。。。这个时候只能使用宿舍路由器(只不过当做交换机用),当然是无线方式,总不能我要从路由器拉很长一个线到我床上吧。。。。。。。非把别人整疯了不可。那已经用无线连接上网,自带的临时无线局域网已经不支持了,所以需要使用无线的方式,共享已有无线上网连接。

解决:


    正好前段时间看codeplex,,上面的开源项目还真是不错,跟Google Project的交相辉映,好资源好代码啊,然后就看到了Virtual Router,传送门:http://virtualrouter.codeplex.com/,这个开源项目做得应该是已有的最全的了,通过Virtual Router,用户可以将各种互联网连接(WiFi,局域网,宽带连接,拨号连接,蜂窝式通信等等)以无线的方式与任何WiFi设备(笔记本电脑,智能手机,iPod Touch,iPhone,Zune,上网本,无线打印机等等)进行分享。
    试验了一下今天,一开始不大顺利,总是连接失败,这个软件会帮助添加一个Microsoft Virtual WiFi Miniport Adapter的虚拟网卡,然后共享的时候建立的无线局域网就是一这个网卡为主节点的。在进入主界面后,要选择共享的连接,比如我要共享本地有线的,那么要选择“本地连接”,要共享无线的,要选择“无线连接”,但是我本身机子还有virtual box和vmware的建立的虚拟网卡(或者说虚拟交换机吧),所以我每次选择好后,它会自动的蹦到共享virtual box的网卡,可能是默认选第一个,后来一直无法连接共享。
    最后直接把其他的连接全部禁用了,只剩下无线连接,然后选择,start,就ok了~
当然要设置一下这个局域网hotspot的ssid和密码,这样就可以共享已有的无线网络了,手机其他有无线网卡的设备都可以介入这个wireless hotspot来上网,这样回去 学校宿舍就可以爽一把了

中文可以参考:http://www.iplaysoft.com/virtual-router.html

Wednesday, May 30, 2012

Ubuntu 命令行模式和图形界面切换问题的解决

1、从桌面版怎么能进命令模式呢?

alt + ctrl + f1 ~ f6

或者

在终端中输入命令:sudo /etc/init.d/gdm stop 进入文本模式

alt + ctrl + f7 ~ f12

但是尝试后没有成功。不知道是不是我用虚拟机的缘故。

或者

startx 回到桌面


2、为什么用sudo /etc/init.d/gdm stop进入命令行界面后,再以startx进入图形界面的话这个命令sudo /etc/init.d/gdm stop就再也不行了呢?

需要搞清楚系统服务GDM(/etc/init.d/gdm)和X-Window的关系。

gdm服务是一个脚本,通过这个脚本可以启动X-Window并将gdm程序(/usr/bin/gdm) 作为窗口管理器 (Desktop Manager)。

系统服务的状态通常有两种:Running 或者 Stopped, 其状态转换可以通过下面的命令实现:

Stopped ==> Running: /etc/init.d/xxx start (开启服务)

Running ==> Stopped: /etc/init.d/xxx stop (停止服务)

还有另外一种: /etc/init.d/xxx restart (重启服务)
即:

sudo /etc/init.d/gdm stop #彻底停止x window

sudo /etc/init.d/gdm restart #启动x window

前面使用 /etc/init.d/gdm stop 来将服务关闭了(同时也关闭了已经打开的 X-window),然后用 startx 来启动了 X-window, 此时 gdm服务已经停止,你再次使用 /etc/init.d/gdm stop 的话,由于该服务已经停止,这个命令当然不会有什么作用。


记住: 系统服务只能在已经启动的前提下才能关闭或者重启,所以说“只能用一次这个命令”。

Ubuntu 10.04 命令行启动

还是搜国外的资料靠谱,英文关键字 ubuntu 10.04 text boot

在 /etc/init/rc-sysinit.conf:
env DEFAULT_RUNLEVEL=3 设置启动默认级别为3

in /etc/init/gdm.conf:
start on (filesystem
and started hal
and tty-device-added KERNEL=tty7
and (graphics-device-added or stopped udevtrigger)
and runlevel [!3]) 添加这一行
stop on runlevel [016]



然后就可以了。回去试试看


Tuesday, May 29, 2012

Java PreparedStatement 批处理执行

更新一个数据表字段,数据量较大的情况下,不能每次执行一条sql语句,这样数据库负担太大,而且速度相当慢。所以要采用批处理的方法执行。




  1. Statement批量处理和事务代码如下:  
  2. package com.ambow.day20.jdbc.JDBCTestCommitAndRollback;  
  3. import java.sql.Connection;  
  4. import java.sql.SQLException;  
  5. import java.sql.Statement;  
  6. import com.ambow.day19.jdbc.util.JDBCConAndClo;  
  7. /* 
  8.  *1,首先把Auto commit设置为false,不让它自动提交 
  9.  *2,进行手动提交(commit) 
  10.  *3,提交完成后回复现场将Auto commit,还原为true, 
  11.  *4,当异常发生执行catch中SQLException时,记得要rollback(回滚); 
  12.  * */  
  13. public class StatementCommitAndRollbackTest {  
  14.     public static void main(String args[]) {  
  15.         Connection con = null;  
  16.         Statement stm = null;  
  17.         try {  
  18.             con = JDBCConAndClo.getConnectionBao();  
  19.             stm = con.createStatement();  
  20.             con.setAutoCommit(false);  
  21.             // 若不出现异常,则继续执行到try语句完,否则跳转到catch语句中  
  22.             stm.addBatch("insert into student values(23,'tangbao','高数',100)");  
  23.             stm.addBatch("insert into student values(24,'王定','c#',98)");  
  24.             stm.addBatch("insert into student values(25,'王国云','java',90)");  
  25.             stm.addBatch("insert into student values(26,'溜出','英语',89)");  
  26.             stm.addBatch("insert into student values(27,'wqde','java',63)");  
  27.             /* 
  28.              * int[] executeBatch() throws 
  29.              * SQLException将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。 
  30.              */  
  31.             stm.executeBatch();  
  32.             System.out.println("插入成功!");  
  33.             // commit:若成功执行完所有的插入操作,则正常结束  
  34.             con.commit();  
  35.             System.out.println("提交成功!");  
  36.             con.setAutoCommit(true);  
  37.   
  38.         } catch (SQLException e) {  
  39.             e.printStackTrace();  
  40.             try {  
  41.     //rollback: 若出现异常,对数据库中所有已完成的操作全部撤销,则回滚到事务开始状态  
  42.                 if (!con.isClosed()) {  
  43.                     con.rollback();  
  44.                     System.out.println("提交失败,回滚!");  
  45.                     con.setAutoCommit(true);  
  46.                 }  
  47.             } catch (SQLException e1) {  
  48.                 e1.printStackTrace();  
  49.             } finally {  
  50.                 JDBCConAndClo.closeStatement(stm);  
  51.                 JDBCConAndClo.closeConnection(con);  
  52.             }  
  53.         }  
  54.     }  
  55. }  
  56. PreparedStatement批量处理和事务代码如下:  
  57. package com.ambow.day20.jdbc.JDBCTestCommitAndRollback;  
  58. import java.sql.Connection;  
  59. import java.sql.PreparedStatement;  
  60. import java.sql.SQLException;  
  61. import com.ambow.day19.jdbc.util.JDBCConAndClo;  
  62.   
  63. /* 
  64.  * PreparedStatement: 
  65.  1.addBatch() 将一组参数添加到 PreparedStatement对象内部 
  66.  2.executeBatch() 将一批参数提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。 
  67.  *  
  68.  */  
  69. public class PreparedStatementCommitAndRollbackTest {  
  70.     public static void main(String args[]) {  
  71.         Connection con = null;  
  72.         PreparedStatement pstm = null;  
  73.   
  74.         try {  
  75.             // 1. 建立与数据库的连接  
  76.             con = JDBCConAndClo.getConnectionBao();  
  77.             // 2. 执行sql语句  
  78.             // 1).先创建PreparedStatement语句(发送slq请求):  
  79.             pstm = con.prepareStatement("insert into student values(?,?,?,?)");  
  80.             con.setAutoCommit(false);//1,首先把Auto commit设置为false,不让它自动提交  
  81.             // 2) 设置sql语句1  
  82.             pstm.setInt(133);  
  83.             pstm.setString(2,"wangqin");  
  84.             pstm.setString(3"c++");  
  85.             pstm.setDouble(478.5);  
  86.             // 3) 将一组参数添加到此 PreparedStatement 对象的批处理命令中。  
  87.             pstm.addBatch();  
  88.             // 2) 设置sql语句2  
  89.             pstm.setInt(134);  
  90.             pstm.setString(2,"wuytun");  
  91.             pstm.setString(3"c");  
  92.             pstm.setDouble(477);  
  93.             // 3) 将一组参数添加到此 PreparedStatement 对象的批处理命令中。  
  94.             pstm.addBatch();  
  95.             // 2) 设置sql语句3  
  96.             pstm.setInt(131);  
  97.             pstm.setString(2,"tetet");  
  98.             pstm.setString(3"c++");  
  99.             pstm.setDouble(490);  
  100.             // 3) 将一组参数添加到此 PreparedStatement 对象的批处理命令中。  
  101.             pstm.addBatch();  
  102.             // 2) 设置sql语句4  
  103.             pstm.setInt(132);  
  104.             pstm.setString(2,"liug");  
  105.             pstm.setString(3"c");  
  106.             pstm.setDouble(450);  
  107.             // 3) 将一组参数添加到此 PreparedStatement 对象的批处理命令中。  
  108.             pstm.addBatch();  
  109.             // 4) 将一批参数提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。  
  110.             pstm.executeBatch();  
  111.             System.out.println("插入成功!");  
  112.             // 若成功执行完所有的插入操作,则正常结束  
  113.             con.commit();//2,进行手动提交(commit)  
  114.             System.out.println("提交成功!");  
  115.             con.setAutoCommit(true);//3,提交完成后回复现场将Auto commit,还原为true,  
  116.   
  117.         } catch (SQLException e) {  
  118.             e.printStackTrace();  
  119.             try {  
  120.                 // 若出现异常,对数据库中所有已完成的操作全部撤销,则回滚到事务开始状态  
  121.                 if(!con.isClosed()){  
  122.                     con.rollback();//4,当异常发生执行catch中SQLException时,记得要rollback(回滚);  
  123.                     System.out.println("插入失败,回滚!");  
  124.                     con.setAutoCommit(true);  
  125.                 }  
  126.             } catch (SQLException e1) {  
  127.                 e1.printStackTrace();  
  128.             }  
  129.         }finally{  
  130.             JDBCConAndClo.closePreparedStatement(pstm);  
  131.             JDBCConAndClo.closeConnection(con);  
  132.         }  
  133.     }  
  134. }  


以下是我当时写的程序。


// 以下是MySQL的驱动连接
public static Connection MySQL_conn = null;
static PreparedStatement MySQL_statement = null;

public static String MySQL_URL = "jdbc:mysql://localhost:3306/test";
public static String MySQL_DRIVER = "com.mysql.jdbc.Driver";
public static String username = "root";
public static String password = "chaick1989";
//public Hashtable<String,String> province_code_name = new Hashtable<String, String>();   放到外面不可以使用!!!!!!!!!!?????
public static int sum = 0;
public static void main(String[] args) {
// TODO Auto-generated method stub
try {

Connect();// 打开mysql的数据库连接
ResultSet rs = selectSQL("select * from tb_data_2_copy");
String tmp_name = null;
String tmp_name_middle = null;
String tmp_name_rep = null;
int tmp_eid = 0;
String sql = null;
int i =0 ;
int i_tmp = 0 ; 
sql = "update tb_data_2_copy set name = ? where name = ? and eid = ? ";

MySQL_statement =  (PreparedStatement) MySQL_conn.prepareStatement(sql);
MySQL_conn.setAutoCommit(false);//把事物的自动提交设置为false,不自动提交
while (rs.next()){
tmp_name = rs.getString("name");
tmp_eid = rs.getInt("eid");
i++;
tmp_name_middle = tmp_name.replaceAll("\\([^)]*\\)", "");
tmp_name_rep = tmp_name_middle.replaceAll("\\([^)]*\\)", "");
if (!tmp_name.equals(tmp_name_rep)){
tmp_name_rep = Convert_Dan(tmp_name_rep);
tmp_name = Convert_Dan(tmp_name);
MySQL_statement.setString(1, tmp_name_rep);
MySQL_statement.setString(2, tmp_name);
MySQL_statement.setInt(3, tmp_eid);
MySQL_statement.addBatch();
i_tmp++;
if (i_tmp % 200 ==0){        //每预编译200个sql语句,提交一次。
MySQL_statement.executeBatch();//执行批处理
MySQL_conn.commit();//提交执行的事物
if (null==MySQL_conn) { //如果连接关闭了 就在创建一个 为什么要这样 原因是 conn.commit()后可能conn被关闭   
Connect();
MySQL_conn.setAutoCommit(false);   
}  
  MySQL_statement.clearBatch();把批处理队列清空
         
}
}
if (i % 2000 ==0){
System.out.println("执行了条数"+i );
}
}

if (MySQL_statement!=null){

    MySQL_statement.executeBatch();//执行

     MySQL_conn.commit();//提交

}


MySQL_conn.setAutoCommit(true); //重新还原自动提交事务


MySQL_statement.close(); //关闭statement

 Disconnect();



PreparedStatement接口继承Statement,并与之在两方面有所不同:

  PreparedStatement 实例包含已编译的 SQL 语句。这就是使语句“准备好”。包含于 PreparedStatement 对象中的 SQL 语句可具有一个或多个 IN 参数。IN参数的值在 SQL 语句创建时未被指定。相反的,该语句为每个 IN 参数保留一个问号(“?”)作为占位符。每个问号的值必须在该语句执行之前,通过适当的setXXX 方法来提供。

  由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象。因此,多次执行的 SQL 语句经常创建为 PreparedStatement 对象,以提高效率。


作为 Statement 的子类,PreparedStatement 继承了 Statement 的所有功能。另外它还添加了一整套方法,用于设置发送给数据库以取代 IN 参数占位符的值。同时,三种方法 execute、 executeQuery 和 executeUpdate 已被更改以使之不再需要参数。这些方法的 Statement 形式(接受 SQL 语句参数的形式)不应该用于 PreparedStatement 对象。
1、创建 PreparedStatement 对象

以下的代码段(其中 con 是 Connection 对象)创建包含带两个 IN 参数占位符的 SQL 语句的 PreparedStatement 对象:

PreparedStatement pstmt = con.prepareStatement("UPDATE table4 SET m = ? WHERE x = ?");

pstmt 对象包含语句 "UPDATE table4 SET m = ? WHERE x = ?",它已发送给DBMS,并为执行作好了准备。

2、传递 IN 参数

在执行 PreparedStatement 对象之前,必须设置每个 ? 参数的值。这可通过调用 setXXX 方法来完成,其中 XXX 是与该参数相应的类型。例如,如果参数具有Java 类型 long,则使用的方法就是 setLong。setXXX 方法的第一个参数是要设置的参数的序数位置,第二个参数是设置给该参数的值。例如,以下代码将第一个参数设为 123456789,第二个参数设为 100000000:

pstmt.setLong(1, 123456789);
pstmt.setLong(2, 100000000);

一旦设置了给定语句的参数值,就可用它多次执行该语句,直到调用clearParameters 方法清除它为止。在连接的缺省模式下(启用自动提交),当语句完成时将自动提交或还原该语句。

如果基本数据库和驱动程序在语句提交之后仍保持这些语句的打开状态,则同一个 PreparedStatement 可执行多次。如果这一点不成立,那么试图通过使用PreparedStatement 对象代替 Statement 对象来提高性能是没有意义的。

利用 pstmt(前面创建的 PreparedStatement 对象),以下代码例示了如何设置两个参数占位符的值并执行 pstmt 10 次。如上所述,为做到这一点,数据库不能关闭 pstmt。在该示例中,第一个参数被设置为 "Hi"并保持为常数。在 for 循环中,每次都将第二个参数设置为不同的值:从 0 开始,到 9 结束。


pstmt.setString(1, "Hi");

for (int i = 0; i < 10; i++) {

pstmt.setInt(2, i);

int rowCount = pstmt.executeUpdate();

}


3、IN 参数中数据类型的一致性

setXXX 方法中的 XXX 是 Java 类型。它是一种隐含的 JDBC 类型(一般 SQL 类型),因为驱动程序将把 Java 类型映射为相应的 JDBC 类型(遵循该 JDBCGuide中§8.6.2 “映射 Java 和 JDBC 类型”表中所指定的映射),并将该 JDBC 类型发送给数据库。例如,以下代码段将 PreparedStatement 对象 pstmt 的第二个参数设置为 44,Java 类型为 short:

pstmt.setShort(2, 44);

Wednesday, April 25, 2012

filezilla,425错误,cannot open data connection解决方案

返回: 425 Can't open data connection.
错误: 读取目录列表失败
状态: 已从服务器断开

参考官网的提示,说是防火墙没允许通过,配置,无效
发现说是a client configuration problem,按照其说的配置,无效
然后发现提示错误如下:
返回: 200 Type set to I.
命令: PASV
返回: 227 Entering Passive Mode (211,154,132,148,9,114)
命令: LIST
错误: 连接超时
错误: 读取目录列表失败

想到是PASV后出错的,前面登陆都可以,所以……
建立站点,填入地址,用户名,密码,设置连接方式始终为主动。OK

Sunday, April 22, 2012

word表格跨页问题-跨页断行,消除空白、紧凑

    一般情况下,word表格会默认为自动跨页断行的设置。但是跨页的效果是,如果一个单元格在本页最后一排,内容很多的话,就会整个单元格都跨到下一页去,页面显得不够紧凑。如果需要把整个表格按正常排满每一个页面的话,操作如下:

选中表格,右键菜单——表格属性——默认的是同时勾选了“允许跨页断行”和“行高”,我们要做的是,把行高取消掉。

OK。

Windows快捷键一览

一、常见用法: 
    F1           显示当前程序或者windows的帮助内容。 
    F2           当你选中一个文件的话,这意味着“重命名” 
    F3           当你在桌面上的时候是打开“查找:所有文件” 对话框 
    F10或ALT        激活当前程序的菜单栏 
    windows键或CTRL ESC   打开开始菜单 
    CTRL ALT Delete     在win9x中打开关闭程序对话框 
    Delete         删除被选择的选择项目,如果是文件,将被放入回收站 
    SHIFT Delete      删除被选择的选择项目,如果是文件,将被直接删除而不是放入回收站 
    CTRL N         新建一个新的文件 
    CTRL O         打开“打开文件”对话框 
    CTRL P         打开“打印”对话框 
    CTRL S         保存当前操作的文件 
    CTRL X         剪切被选择的项目到剪贴板 
    CTRL Insert 或 CTRL C  复制被选择的项目到剪贴板 
    SHIFT Insert 或 CTRL V 粘贴剪贴板中哪谌莸降鼻拔恢?
    ALT BACKSPACE 或 CTRL Z 撤销上一步的操作 
    ALT SHIFT BACKSPACE   重做上一步被撤销的操作 
      
    Windows键 M       最小化所有被打开的窗口。 
    Windows键 CTRL M    重新将恢复上一项操作前窗口的大小和位置 
    Windows键 E       打开资源管理器   www.2cto.com  
    Windows键 F       打开“查找:所有文件”对话框 
    Windows键 R       打开“运行”对话框 
    Windows键 BREAK     打开“系统属性”对话框 
    Windows键 CTRL F    打开“查找:计算机”对话框 
    SHIFT F10或鼠标右击   打开当前活动项目的快捷菜单 
    SHIFT          在放入CD的时候按下不放,可以跳过自动播放CD。在打开word的时候按下不放,可以跳过自启动的宏 
      
    ALT F4         关闭当前应用程序 
    ALT SPACEBAR      打开程序最左上角的菜单 
    ALT TAB         切换当前程序 
    ALT ESC         切换当前程序 
    ALT ENTER        将windows下运行的MSDOS窗口在窗口和全屏幕状态间切换 
    PRINT SCREEN      将当前屏幕以图象方式拷贝到剪贴板 
    ALT PRINT SCREEN    将当前活动程序窗口以图象方式拷贝到剪贴板 
    CTRL F4         关闭当前应用程序中的当前文本(如word中) 
    CTRL F6         切换到当前应用程序中的下一个文本(加shift 可以跳到前一个窗口) 
    
    在IE中: 
    
    ALT RIGHT ARROW     显示前一页(前进键) 
    ALT LEFT ARROW     显示后一页(后退键) 
    CTRL TAB        在页面上的各框架中切换(加shift反向) 
    F5           刷新 
    CTRL F5         强行刷新
    
    目的快捷键
  激活程序中的菜单栏 F10
  执行菜单上相应的命令 ALT 菜单上带下划线的字母
  关闭多文档界面程序中的当
  前窗口 CTRL F4  www.2cto.com  
  关闭当前窗口或退出程序 ALT F4
  复制 CTRL C
  剪切 CTRL X
  删除 Delete
  显示所选对话框项目的帮助 F1
  显示当前窗口的系统菜单 ALT 空格键
  显示所选项目的快捷菜单 SHIFT F10
  显示“开始”菜单 CTRL ESC
  显示多文档界面程序的系统
  菜单 ALT 连字号(-)
  粘贴 CTRL V
  切换到上次使用的窗口或者
  按住 ALT然后重复按TAB,
  切换到另一个窗口 ALT TAB
  撤消 CTRL Z
 
二、使用“Windows资源管理器”的快捷键
 
  目的快捷键
  如果当前选择展开了,要折
  叠或者选择父文件夹左箭头
  折叠所选的文件夹 NUM LOCK 负号(-)
  如果当前选择折叠了,要展开
  或者选择第一个子文件夹右箭头
  展开当前选择下的所有文件夹 NUM LOCK *
  展开所选的文件夹 NUM LOCK 加号( )
  在左右窗格间切换 F6
 
三、使用 WINDOWS键
 
  可以使用 Microsoft自然键盘或含有 Windows徽标键的其他任何兼容键盘的以下快捷键。
  目的快捷键
  在任务栏上的按钮间循环 WINDOWS TAB
  显示“查找:所有文件” WINDOWS F
  显示“查找:计算机” CTRL WINDOWS F
  显示“帮助” WINDOWS F1
  显示“运行”命令 WINDOWS R
  显示“开始”菜单 WINDOWS
  显示“系统属性”对话框 WINDOWS BREAK
  显示“Windows资源管理器” WINDOWS E
  最小化或还原所有窗口 WINDOWS D
  撤消最小化所有窗口 SHIFT WINDOWS M
 
四、使用“我的电脑”和“Windows资源管理器”的快捷键
 
  目的快捷键
  关闭所选文件夹及其所有父
  文件夹按住 SHIFT键再单击“关闭按钮(仅适用于“我的电脑”)
  向后移动到上一个视图 ALT 左箭头
  向前移动到上一个视图 ALT 右箭头
  查看上一级文件夹 BACKSPACE
 
五、使用对话框中的快捷键
 
  目的快捷键
  取消当前任务 ESC
  如果当前控件是个按钮,要
  单击该按钮或者如果当前控
  件是个复选框,要选择或清
  除该复选框或者如果当前控
  件是个选项按钮,要单击该
  选项空格键  www.2cto.com  
  单击相应的命令 ALT 带下划线的字母
  单击所选按钮 ENTER
  在选项上向后移动 SHIFT TAB
  在选项卡上向后移动 CTRL SHIFT TAB
  在选项上向前移动 TAB
  在选项卡上向前移动 CTRL TAB
  如果在“另存为”或“打开”
  对话框中选择了某文件夹,
  要打开上一级文件夹 BACKSPACE
  在“另存为”或“打开”对
  话框中打开“保存到”或
  “查阅” F4
  刷新“另存为”或“打开”
  对话框 F5
 
六、使用“桌面”、“我的电脑”和“Windows资源管理器”快捷键
 
  选择项目时,可以使用以下快捷键。
  目的快捷键
  插入光盘时不用“自动播放”
  功能按住 SHIFT插入 CD-ROM
  复制文件按住 CTRL拖动文件
  创建快捷方式按住 CTRL SHIFT拖动文件
  立即删除某项目而不将其放入 SHIFT Delete
  “回收站”
  显示“查找:所有文件” F3
  显示项目的快捷菜单 APPLICATION键
  刷新窗口的内容 F5
  重命名项目 F2  www.2cto.com  
  选择所有项目 CTRL A
  查看项目的属性 ALT ENTER或 ALT 双击
  可将 APPLICATION键用于 Microsoft自然键盘或含有 APPLICATION键的其他兼容键
 
七、Microsoft放大程序的快捷键
 
  这里运用Windows徽标键和其他键的组合。
  快捷键目的
  Windows徽标 PRINT SCREEN将屏幕复制到剪贴板(包括鼠标光标)
  Windows徽标 SCROLL LOCK将屏幕复制到剪贴板(不包括鼠标光标)
  Windows徽标 PAGE UP切换反色。
  Windows徽标 PAGE DOWN切换跟随鼠标光标
  Windows徽标 向上箭头增加放大率
  Windows徽标 向下箭头减小放大率
 
八、使用辅助选项快捷键
 
  目的快捷键
  切换筛选键开关右SHIFT八秒
  切换高对比度开关左ALT 左SHIFT PRINT SCREEN
  切换鼠标键开关左ALT 左SHIFT NUM LOCK
  切换粘滞键开关 SHIFT键五次
  切换切换键开关 NUM LOCK五秒

Linux下如何知道某个端口在运行什么程序

当我们用netstat -an的时候,我们有时候可以看到类似的输出:
udp 0 0 0.0.0.0:32768 0.0.0.0:*
但是查找/etc/services又没有这个端口的相关说明,怎么办呢?这个是不是黑客程序?有没有办法查看究竟什么程序监听在这个端口?
使用lsof -i :32768就可以看到:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
            rpc.statd 603 root 4u IPv4 953 UDP *:32768
            rpc.statd 603 root 6u IPv4 956 TCP *:32768 (LISTEN)
原来是rpc的程序。
使用lsof -i :port就能看见所指定端口运行的程序,同时还有当前连接。