!!

When I woke up in the morning, I looked at my iPad, she sent me some messages answering the last question I asked last night. I tried to examine the environment to see if I was in a dream, because I thought she would no longer send me any message. Soon, I fell asleep again. And then I did the same thing again. I woke up and saw her messages again. That time I thought that was real. But unfortunately I ended up waking up without any message, and right now, I am writing this article and this is the reality. I think I was thinking too much while I was sleeping.

!

Finally, I decided to send her a message. But I didn’t handle that well. I totally screwed it up. She thinks I am a strange man now. And I probably won’t talk to her in the near future as I am becoming annoying. ☹

We just met 5 days. And she gone away. From now, it’s been 2 months. I was preparing for what to say for days. I was afraid of losing her – as a friend or whatever. Well, to ask her out is the thing I wanted most, but she said she’s not here. I was thinking about her for weeks and now I failed, I think I can’t sleep tonight. FUCK!!!

Every time I am telling myself is OK somebody does not like you. I admit, I was thinking too much about her, too much beautiful things. And I don’t know if I should let these thoughts go away. I was also preparing to tell her all my thoughts. But I was so afraid of losing her that I didn’t say anything.

I wish some one could tell me what to do.

流量矿石hosts

最近流量矿石速度不行,曾经尝试修改hosts,不过作用不大。要知道矿石软件用到了那些域名进行通信,可以:

strings Miner.exe > strings

for domain in $(grep -Eo '[a-z0-9-]+(\.[a-z0-9-]+)*\.(com|net|org|cn)' strings | sort -u); do
  IPv4=$(dig +short $domain | grep -Eo '[0-9\.]{7,15}' | head -1)
  printf "${IPv4} %*s ${domain}\n" $((15 - ${#IPv4}))
done

这样,将得出的结果复制到C:\WINDOWS\system32\drivers\etc\hosts,当然你也可以用BAT文件一键生成添加。

60.55.32.68      agent.daddymami.net
61.130.9.245     agent.vlogin4.yunfan.com
121.201.99.4     client.jiaoyi.yunfan.com
222.186.3.147    cloud.daddymami.net
60.55.34.215     cloudcfg.daddymami.net
23.5.5.163       crl.thawte.com
23.5.5.163       crl.verisign.com
23.5.5.163       csc3-2010-aia.verisign.com
23.5.5.163       csc3-2010-crl.verisign.com
23.5.5.163       logo.verisign.com
183.60.41.76     mtracker.yunfan.com
23.5.11.27       ocsp.thawte.com
23.5.11.27       ocsp.verisign.com
65.52.103.126    schemas.xmlsoap.org
175.6.0.42       statis.daddymami.net
110.34.226.140   stun.daddymami.net
110.34.226.140   stun1.daddymami.net
222.186.3.165    track.qvod.com
23.5.5.163       ts-aia.ws.symantec.com
23.5.5.163       ts-crl.ws.symantec.com
23.5.11.27       ts-ocsp.ws.symantec.com
222.186.3.156    tspeed.yunfan.com
222.186.3.154    update.daddymami.net
60.55.34.183     upload.tfs.kbimg.cn
183.60.41.199    vlogin4.yunfan.com
175.6.0.106      www.qvod.com
69.58.181.89     www.verisign.com

大规模服务器和流量矿石软件监控

这段时间在和人合作挖矿,很多人会认为流量矿石前景黯淡或者是徒劳,但我至少系这个项目上学会了XenServer,和监控这些一百几十台服务器的技术。

监测每部VM的网卡速度比较容易,因为XenServer是Linux,读取 /proc/net/dev 就可以了。我也参照了部分官方的代码,自己用C编写了监控读数的软件。

因为最初没有设计太多,没有安装很多软件,通常我是只利用一台服务器用来编译软件,然后打包这些软件,放到其他服务器直接使用,其他服务器就无需安装任何软件即可使用,这个就会比较方便,唯一的缺点就是开发C会比较耗费时间,但是可靠性、方便性和运行速度上会有保证。当然也可以选择 Python 或者 Node.JS 。

Windows下的流量矿石软件比较“不寻常”,我利用各种获取窗口文字的软件,尝试获取矿石软件的流量读数,但是没有结果。

之后我尝试用监控每个进程的网络流量进行记录,之后汇总。不过我发现矿石连接数很多,处理起上来可能十分无效率,而且有部分可能是无用的。

montage

最终还是用图像识别的方法,截图,然后识别文字。这里要用到 Capture2Text 。唯一缺点是要处理很多情况,因为读出来的读数不是 100% 正确,要进行各种测试。

循环每隔几秒,利用 XenStore 储存读取读数,然后主机读取,然后主机集中发送到网站上,网站推送数据给用户浏览器,即时看到速度。

不过这个方法也有一个缺陷——就是关掉远程后或者远程窗口最小化后,屏幕变成黑色,所以截图也是黑色,无法读取数值。

最小化的问题可以通过利用注册表解决。但是关掉远程这个问题,网上有很多人提出不同的解决方法,但是都无用。

我最后找到了解决方法,就是当用户退出远程后,通知主机通过 VNC 登录 Windows ,当然这一步要输入密码,你可以通过 vncdotool 等工具,利用命令,模拟输入用户名和密码的过程,不过这里也有很多不确定的情况。只要主机登录到 Windows,读数就会继续。当然你不能设置任何屏保或者覆盖矿石软件读数的东西。当然,如果你设置了透明度,背景也是会影响读数的。

当然你要使用和了解 Windows 2003 下的 Session 0 ,否则会给你很多问题。

大致就是这样的过程。

因为是 Linux ,你可以做很多东西,比如截图,也可以将全部 VM 的截图合并,也可以在图片加入文字,另外可以利用 nginx ,这样截图就可以在浏览器定期刷新而获取最新的截图。

Ubuntu 无法登录的解决办法

如果你某次重启后发现怎样登录自己的账户都无法启动自己的桌面,即使密码正确,而登入其他账户如root就正常,这是因为Ubuntu执行自己的.bashrc或.profile等文件时出错,可能是因为权限或者不存在的原因,这次我安装了nvm,nvm在.profile插了一段,重启后发现登录不到,删了后正常登录,将该段命令转到了.bashrc。

你可以在登录界面按ctrl-alt-f1进入命令行界面,或者用root账户登录图形界面。

WINDOWS下的终端(Terminal)

如果迫不得已要在Windows下开发软件,使用类似终端的东西,而又觉得Windows的命令行工具很渣,可以考虑:

1. 安装包含git bash的msysgit

因为msysgit用的是Windows的命令行工具,所以要下载个比较好看的终端:

2. 下载mintty的msys版

3. 把mintty.exe移到msysgit的安装目录,如C:\Program Files\Git\bin。

4. 创建mintty.exe的快捷方式,放到桌面或者你想要的地方,然后右击编辑属性,目标一栏填写:

"C:\Program Files\Git\bin\mintty.exe" -c "C:\.minttyrc" "C:\Program Files\Git\bin\sh.exe" --login

其中C:\.minttyrc是配置文件存放位置,如果是Windows 7,因为权限问题,可以存放在自己的用户目录下,或者其他磁盘。如果不指定这个,诸如界面编码等设置都不会被保存。

后面的"C:\Program Files\Git\bin\sh.exe" --login其实跟Git Bash自己的快捷方式类似,启动带Git的Bash。

安装完软件后记得要往环境变量的Path添加exe或者库的所在路径。