Main

非技术

夜得瑟

新闻里百分之八十都是坏消息
再看看周围  大家好像又都很快乐
哥看上去也很快乐
这个社会怎么了?
每天躺在被窝里听三国成了一天中最淡然的时光
每天听不到20分钟就睡着了,是哥累了,还是这时候太放松了,或者是这两者的共同作用
哥承认哥被现实磨的有点软了,但是哥依然会屹立着
首先哥就没有什么伟大的梦想,只是一些世俗的东西,可以理解为有车有房,白天累点没事,晚上回家抱着媳妇看电影,偶尔出去玩一圈
对,哥就这么点理想,相比理想是拯救中国,让老百姓过上幸福日子,大力发展中国体育事业,合理控制中国房价这些理想的主人比起来来,哥还真是没出息
但是当哥发现哥的这点理想实现起来都这么困难的时候并且发现好多哥认识的人一毕业就全都有了,而且不费吹灰之力之时,哥并没有嫉妒
哥只是在在想,哥怎么就这么贱,过个20年哥实现了这些理想时,那些人得成啥样?
还好这个问题通过每天的交通得到了缓释,因为每当哥骑车的时候一天都能看见N个傻逼。
另外哥还是懂的知足的,感谢哥拥有的一切。
同时FUCK那个偷哥铃铛的人,你让哥失去了哥的足球铃铛,诅咒你家孩子或者孩子的孩子没屁眼。
玉树人,逝者安息,生者好好感悟人生吧,或许你们能理解出哥暂时理解不出的东西。
OneWorld OneDream,这是扯鸡巴蛋,这就是哥最近感悟出来的
哥并没有喷,哥是在潮喷
————————-
当哥潮喷完的时候,把这些液体粘帖到Notepad++里,进行ctrl+H ,把“我”字全班替换成“哥”字时,哥发现了这个哥心中的神器好像对编码处理还是有问题,出现了好多乱码。这个事情更证明了,所谓的完美,是因为不了解。

120W的房子新旧政策下不同的贷款还款情况

总价为120万、评估价为100万的房产首套、二套房新旧政策对比
贷款年限 购房情况 政策执行 首付 首付款(万元) 贷款额
(万元)
利率 月供(元) 总还款利息(元)
20 首套房 旧政策 20% 40 80 4.158% 4914.71 379529.30
新政策 30% 50 70 4.158% 4300.37 332088.14
首套房新旧政策差额 10% 10 -10 -614.34 -47441.16
二套房 旧政策 40% 60 60 6.53% 4484.04 476170.14
新政策 50% 70 50 6.53% 3736.7 396808.45
二套房新旧政策差额 10% 10 -10 -747.34 -79361.69
说明:以一套总价为120万,评估价为100的房产为例:
1、首套房:
新政实施后,购房人要多支付10万元首付,由于贷款额降低,借款人每月可少还614.34元月供,总还款利息节省47441.16元;
2、二套房:新政实施后,购房人要多支付10万元首付。由于贷款额降低,贷款每月可少还747.34元,总还款利息节省79361.69元。

8点出门8点45到

今天终于骑车来上班了,用了45分钟,好久没这么骑了,腿居然有点打软,希望能坚持下去。

事实证明本站刚刚抽风了

IXWEBHOSTING的站,在国内访问真的质量不咋地。。。

三思啊。。 我茶几了。

哎 老百姓tm的上个网都上不踏实

真他妈的操蛋!!

上个网都上的这么不爽,google首页能打开。却搜不了东西,这个猛的一看以为是google出了问题,其实呢,天朝II至尊GFW又在起作用啦。

哎 俺本来网速就不快,还得翻着墙看。。

真烦人啊。

还有最近培训,部署的部分,我TM电脑都没有 学个P啊。

这周算浪费了。

又见黄沙

已经4年的这个时候没有在北京待着了。

烟雨变为黄沙。

出去了四年,我长大了么?好像也没有

大家都成大人了,时间也越来越不够用了,游戏也玩不起来了。

运动量也越来越少,尤其是最近老是心惶惶的,连看电影的心情都没有。

更别说看书了,得赶紧调节好。

静心静心!那个窦性心律不齐绝对是扯淡!

终于入手milestone了!

看到真机后,冲动了一把。昨天又配了了3G号。总算圆满了。

买到的机器啥都刷好了,还是不错的。就是UC有时候会异常,忍了,现在是没工夫捣鼓。2.1也不刷了。

这些天一直是稀里糊涂,赶紧离职吧。到新单位,有个新的开始。

这里玩够了。

CCTV与西方媒体的区别!句句发人深思

1、连续发生假货泛滥、食物中毒等事件后──
西方媒体:政府应当反省,加大整治、监管力度,不能推诿责任!
CCTV:公民应该加强防范意识,提高识别假货的能力,不要购买过期变质食品。

2、贫困山区的孩子上不起学,要靠乡村教师拼了老命捐助──
西方媒体:这是教育部门和社会保障部门的失职和耻辱。
CCTV:号召大家学习乡村教师,这是时代的光荣和国家的骄傲!

3、抓了一个大贪官,追回了XX万元巨额赃款──
西方媒体:这说明监督机制有漏洞,应该反思。
CCTV:监督部门及时发现问题,为国家挽回了巨额损失,成绩斐然。

4、煤矿屡屡塌方、爆炸──
西方媒体:政府安全监管部门的官员引咎辞职。
CCTV:事故引起了安全监管部门领导的高度重视,他怒斥下级、亲笔批示,一定要追究相关人员的法律责任!

5、遇到穷凶极恶的亡命徒──
西方媒体:提醒广大公民及时报警,避免与歹徒发生冲突。
CCTV:呼吁广大公民见义勇为、冲上去与歹徒玩命,只有大家一起上、社会治安才能根本好转。

6、辖区一贫如洗,村民们饥寒交迫、看不起病──
西方媒体:主管官员的支持率严重下降,民众强烈不满。
CCTV:主管官员政绩卓著,亲自下乡给农民”送温暖”,农民们感激涕零、山呼万岁,亲切地把这些官员称作好公仆、领路人、贴心者、父母官。

7、西方媒体节目都是什么事儿大、什么事儿新鲜什么就排前面;
CCTV则是谁官大谁就排前面,某些领导说句大话回回都排在当日头条。

8、西方媒体节目里有好事也有坏事,
CCTV里则都是好事;如果有坏事,那一定是在最后几分钟的国际要闻里。

9、西方媒体节目里的环境问题总是很严峻,尽管他们国家的河流看上去很清澈;
CCTV里的环境治理总是捷报频传、再上一个新台阶,尽管他们国家的河流又黑又臭。

10、西方媒体节目里没有整天强调教育、医疗的重要性,却也没多少人上不起学、看不起病;
CCTV里重视教育、医疗改革、取缔乱收费天天结硕果,但还是有那么多人上不起学、看不起病。

11、西方媒体节目里的官员没有把为纳税人着想挂在嘴边,但他们的数量从不膨胀、办公楼也非常简易;
CCTV里的官员总在强调一切为了人民,但他们的队伍越来越臃肿、公车和办公楼也越来越奢侈。

中国金融系统的境况

1、ATM取出假钱—>银行无责

2、网上银行被盗—>储户责任

3、银行多给了钱—>储户义务归还

4、银行少给了钱—>离开柜台概不负责

5、ATM机出现故障少给钱—>用户负责

6、ATM机出现故障多给钱—>用户盗窃

7、广东开平银行行长贪污4亿—>判12年

8、ATM多吐17万给老百姓许霆—>判无期

9、你给银行假钱,盖章没收,情节严重负刑事责任!

10、银行给你假钱,离柜概不负责,谁叫你不长眼睛看清楚,自认倒霉!

新年了

   有过年了,虽然过年越来越没有感觉了。

   新的一年,对自己有些新的期待,希望减少一些浮躁,多些实干的精神。

   如果有合适的机会考虑考虑换个工作,多接触些知识与人。

   美好的生活要靠自己的双手。

  新年愿父母身体健康,悠悠找个不累的工作。

  虎年大吉!

Python ssh中输入密码and模拟键盘输入

最近写一个脚本,需要SSH到一个设备上,基于linux的,并在该设备上进入特权模式,这里用这样一样例子来演示,普通用户登录到ssh,然后切换root用户,这是会提示再次输入密码,就是这样一个效果。折腾半天,总算搞定了,把试过的各种方法给大家分享下。主要尝试了paramiko 以及 pexpect这两个库。

Paramiko之SSHClient()

起初用的Paramiko中的SSHClient()类来实现,连接到SSH并执行操作很简单:


#!/usr/bin/python
import paramiko
hostname= '192.168.73.137'
port = 22
username='man'
password='d-up.org'
if __name__=="__main__":
	paramiko.util.log_to_file('paramiko.log')
	s = paramiko.SSHClient()
	s.load_system_host_keys()
	s.connect(hostname,port,username,password)
        stdin,stdout,stderr=s.exec_command('whoami')
	ss=stdout.read()
	print ss
        stdin,stdout,stderr=s.exec_command('su root')
        stdin,stdout,stderr=s.exec_command('rootpass)   ##这里不能成功发送命令
         ……
         ……
	s.close()

这时是用exec_command来执行命令,起初我以为字符串+回车,因此认为当su root 后直接发送密码过去便可以成功登录,后来发现这里的执行命令不是简单的发送字符串+回车,这样写是无法成功的,于是我查看了下SSHClient类,没有发现可以执行此类操作的函数。多次研究后不成功,只好放弃。

Pexpect之pxssh

Pexpect是一个很强大的库,可以用来创建子进程并与其通信。我找到它是因为它也包含一个ssh对象:pxssh,而且他有一个函数sendline(),看到这个函数就觉得这次应该成功了,查了下,这个函数的工作方法如同上面我想的那样,发送”command + \n”。因此很轻松的就实现了我需求的功能。实现所用代码如下:


#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pxssh   #pxssh 位于pexpect中
try:
    # 调用构造函数,创建一个 pxssh 类的对象.
    s = pxssh.pxssh()
    hostname = '192.168.73.126'
    username = 'man'
    password = 'd-up.org'
    # 利用 pxssh 类的 login 方法进行 ssh 登录,原始 prompt 为'$' , '#'或'>',这个方法不用指定端口
    s.login (hostname, username, password, original_prompt='[$#>]')
    s.sendline ('whoami')
    # 匹配 prompt
    s.prompt()
    # 将 prompt 前所有内容打印出,即命令 'whoami' 的执行结果.
    print s.before
    # 发送命令 ' ls -l '
    p2='root_pass'
    s.sendline ('su root')   #此时不需要prompt,如果我们直接操作的话会看到提示输入密码
     x=s.expect(['口令: '])   # 关键expect期待后面数组中的内容,并进行匹配,这里由于我使用的中文GUN Linux,所以我希望他匹配 提示中的口令两个字

     if x==0:     #0是 expect匹配数组中“口令”的位置,这里只有一个,所以是0
       s.sendline(p2)   # 匹配成功后发送的命令
        s.prompt()
       print s.before       #这是就可以prompt了,因为su成功后有  #的提示符
        print 'su ok'
    s.sendline('whoami')
    s.prompt()
    print s.before     #应该可以看到身份是root  模拟键盘提交密码成功!
    # 退出 ssh session
    s.sendline('exit')
    s.logout()
except pxssh.ExceptionPxssh, e:
    print "pxssh failed on login."
    print str(e)

我开始测试代码的时候是用自己的系统做的测试,一切工作正常,但是后面发生意外了,当我去连接该设备的时候,出现了错误,pexpect库报错,现在我也没有找到原因,用多台设备进行测试均无法正常工作。E文不太好,最后没有解决。只好在回到paramiko身上,因为大家都说他很强大。

Paramiko之Transport

最后的实现方法,Transport类,这个类更加通用,说明是这样的(我就不翻译了,免得丢人):An SSH Transport attaches to a stream (usually a socket), negotiates an encrypted session, authenticates, and then creates stream tunnels, called Channels, across the session. Multiple channels can be multiplexed across a single session (and often are, in the case of port forwardings).
该类有send()方法,其工作原理更简单,直接发送字符串,回车还得自己补上,千万别忘记了,这个十分好用,代码很清晰,最终在那个设备上完成了任务。实现代码如下,大家看看应该也就明白了。


import paramiko
s = paramiko.Transport(('192.168.73.126', 22))    #创建对象
s.connect(username='man', password='d-up.org')   #连接
chan = s.open_session()     #得到session
chan.get_pty()                  #Request a pseudo-terminal from the server.    这两行实在翻译不好,大家自己看看吧
chan.invoke_shell()             #Request an interactive shell session on this channel.
chan.send('su root\n')         #逐行发送命令,如果进行的操作复杂,最好等上几秒,或者通过接受到的数据来进行判断,然后再执行后面的命令
chan.send('rootpass\n')       #换行别忘记发
chan.send('whoami\n')        #www.d-up.org/man python爱好者
print chan.recv(1024)    # 可以看到切换用户成功了,大功告成!