lvs bug
lvs是网络负载均衡常用的一种方式,然而今天的重点并不是lvs,而是一个隐含的坑……
Error
打开网页报表页面,显示有问题。然后是(firefox+chrome)*2,四种模式访问都有问题!注:四种模式——乘2是使用隐私模式,no cache,no cookies …,这个是相对清空浏览器缓存一种优雅的方式,还有一种是不清空强制刷新Ctrl+F5方式。
Try VM again
一切正常,一切正常有没有。。。
add-ons
是插件作怪么,Firefox addons/chrome extensions,共同的插件没几个,晒图一张吧(仅Enable的插件):
既然说到了插件,说说优雅排查插件问题的方法(禁用插件重启),如图:
…
浏览器debug,日志错误之类,此处略过半小时…
lvs
时间刚好,wanglei5来上班了,王哥来瞅瞅:你的web有没有lvs…
先是堡垒机前置机远程桌面,分别访问了两个不同地址,果然问题在这里。然后堡垒机登录有问题那台机器后台,上代码:
1 | Last login: Mon Dec 28 17:57:45 2015 from 172.16.58.xx |
END
问题找到了,LVS后面两台机器一台出了点问题,奇葩问题给个奇葩解决方案吧。考虑到目前这个系统访问量使用量都很少,所以决定下来关闭lvs和一台web,外加一条转发规则,省点儿资源是点儿资源,何乐而不为。(本文晒了火狐浏览器积攒下的长的常用插件,和一些相对优雅的操作,需要自取。)最后感谢wanglei5,Best wishes!
ssh party
SSH你是不是每天都在用,ssh可是一大家,今天开派对,首先清点下:
1 | ssh # 双击Tab |
有没有惊呆,居然有这么多。。。
man
派对开场是man老师介绍了下出场的各位,这一大家果然各个身怀绝技啊。如果有什么不懂的,大家私下询问man老师吧,man老师为人好的没话说,除了讲一口地道的英语……
- ssh vs sshd 黄金组合
- ssh-keygen 私钥公钥对了,生成修改,不容小瞧
- ssh-agent 私钥认证
- ssh-add 添加私钥认证
- ssh-copy-id 添加自己的公钥到指定主机,需要开启密码登录(首次)
- ssh-import-id 在线批量添加公钥
- sshfs fisesystem,通过ssh挂载文件
- ssh-askpass 界面询问密码
例:首先生成公钥对,ssh-copy-id将公钥拷贝到某台机器上;ssh-add将私钥添加到agent,此处需要输入一次密码,然后再次使用私钥无需输入密码。在Linux下,私钥默认仅当前用户有读写权限,不符合这个权限的私钥是不被认可的。
添加同事公钥:$ cat ~/.ssh/pub/id.pub | ssh 10.7.14.39 'cat >> ~/.ssh/authorized_keys'
修改私钥密码:$ ssh-keygen -f .ssh/id_xxx -p
.ssh
- authorized_keys 默认认证公钥文件,可修改
- known_hosts 保存的hosts认证
- rc 登录ssh是,会自动执行这个脚本。
- config 如下:
1 | cat ~/.ssh/config |
首先是配置开启共享的长链接,默认设置4小时,好处是第二次连同一台设备基本秒连,还有scp已链接设备速度也会大大加快。支持通配符配置不同用户,不同端口,使用不同密钥,配置好后,只需要ssh ip 即可登录。
config 插曲
1 | cat .pip/pip.conf |
- pip 启用了cache,第二次装同样的包,virtualenv虚拟环境装包,能快多少快多少
- git 配置了默认用户,操作习惯,还有全局ignore,默认使用代理。
END
在这一家人的协助下,只要是网络可达的ip,只需要ssh ip 就可以登录,cssh 同时多个ip还可以一起登录,==为不折腾而战!== 注:对应配置windows下都有,xshell等工具密钥需要导出也是安全措施的一种。
chrome apk
chromeos-apk:Run Android APKs on Chrome OS, OS X, Linux and Windows. 把安卓应用放到PC玩,有没有心动呢?然后一个不好的消息是,越不标准的应用越容易崩溃,比如某信和某宝。
npm
Node.js 火了,npm和Node.js的关系,借用官方的话说:
“The npm command-line tool is bundled with Node.js. If you have it installed, then you already have npm too. If not, go download Node.js. ”
先装Node.js,这个不是不是本文重点,此处略过。
chromeos-apk
主角出场了:$ npm install chromeos-apk -g
,用法很简单,$ chromeos-apk /path/to/file.apk
,执行成功后会在当前目录生成一个文件夹,名字如com.app.android
,根据我的经验需要加上--name com.xxx.android
就是根据生成的文件夹名,我还习惯加上--scale
参数。
APK
下载APK当然选择Google Play,配合下载的网页APK Downloader 即可下载谷歌市场应用,有人要为什么这么挑,因为这里的应用更加标准。举个简单的例子,你的微信经常会提醒更新,后台下载APK文件,而我去微信里面点击检查更新,会打开应用市场,这是看得见的区别。(如果还有问题,可以参考我2015-12-18的盟盟汇文章)
ARChon runtime
Download the runtime根据你的系统下载对应的版本,解压到某个目录。
chrome
建议使用最新的稳定版,打开chrome扩展页。开启开发者模式,点击load unpackkd extension,先加载前面解压的运行环境整个文件夹,然后加载你转换的APK的文件夹,然后点击运行… 大家都有民生的银行卡,我用民生的手机银行客户端为例,如图:
END
跟大牛有肉吃,至于问我为什么要这么大费周章,没人喜欢折腾,真的…… 只是,以前手机内存小,庙太小,容不下大神,再加上安卓那令人发指的唤醒链,有些应用不想往手机装。最后还有个原因是我用Linux,Linux下出名的通讯问题大家都听过吧,可惜是鹅厂应用太不标准了!!!
android feast
我的设备我做主,我的地盘我是老大……
SDK
adb(Android Debug Bridge),Win下面一般装个驱动,下载exe就可以,稍微全一点的下载个androidSDK。Ubuntu下几条命名就可以$ apt-get install ubuntu-device-flash phablet-tools
注:我的识别稍有问题,连手机前后执行两次lsusb
,连手机后多出来的一行:”Bus 003 Device 008: ID 29a9:701a”,主要是找这个ID,还是上代码吧:
1 | cat ~/.android/adb_usb.ini |
adb
有了,fastboot
也有了,fastboot是标准的安卓刷机工具,然而你在中国,标准很多时候是标准不可用。
YunOS
我爸在家就看个电视,过分么? 广电总局敛财,YunOS作伥,然后仅以此部分献给我的两个周末。
后门是什么:我爸说,后门就是我看电视的应用默默的都被更新掉了。我要不要感谢下,让我爸都对后门理解的如此深刻。
闲话少叙,那个时候网上有个流传的压缩包,里面有个bat,我就下载打开瞅了瞅,GET新技能:
1 | adb connect 0.0.0.0:5555 |
原来电视盒子可以用adb远程连接,pm是package manage,我就adb连上盒子,然后把升级等乱七八糟的该block的block掉,用电脑直接adb install了几个apk应用。电视又可以正常看了…
GET OUT
看了大约5天吧,一点都不消停,真是的… 害我连着两礼拜回家。
这回是很多应用都没有了,但是当贝市场还在,先看电视。第二天习惯性的先去盒子的官网看了看,厂家在云盘放出了ROM和刷机工具,这下没什么顾虑的了……
直接root,然后统统给我滚出去,电视淘宝什么鬼,走了您勒,不送。我尝试装了第三方桌面,自带的也没放过,然后果然被玩坏了……
软件问题都不是问题,双公头USB线,懒的出去买,快递太慢,直接自己动手,旧的线找两根剪断按颜色接上,找来以前用的带指示灯的充电头两个,测试了下(一个插上家用电源,另一个充电头灯正常亮表示没有问题,USB线是四根,两根电源两根数据,灯亮表示电源的两根没有错)。
然后正常刷机,下载rom稍微久点,刷机不足五分钟。
ROOT–>UNINSTALL–>INSTALL 两个市场,两三点播,两三直播,找了找没有设计用来替换的桌面,作罢。该滚的都滚了,以后永不升级,我的地盘我做主。
结果是:电视猫转换成了系统应用,整个默认桌面都是空荡荡的,装了个第三方桌面,唯一不足是home键没绑定,止戈为武,鸣金收兵。
JianGuo
“第三方预装应用都能卸载”,我真的想相信这句话,结果大家都知道,我想多了。只好要得可口自己动手,毕竟最近学习了不少新技能。
开启开发者模式,常用的命令如下:
1 | adb shell ps |
local shell权限不够,需要连上电脑,开启USBDebug,可以成功hide不想要的拉圾,如搜狗广告输入法。锤子以前内置触宝输入法,后面升级到2.5.0后内置了与之匹配的250输入法,我为此升级付出的代价是使用省电模式一天多。
中立
我不粉也不黑,但我想说点啥。。。
安全中心不安全:锤子的安全中心,平心而论是下了功夫的,从短信联系人位置信息到联网,都可以直接管,然而有一条,锤子家的不管,锤子家的权限全开。锤子家定制的权限全开,搜狗输入法加个后缀变成定制的,权限全开,安全中心管不着。
我想说的是,三权独立有点大,但一个小小手机敢不敢不这样……清理好玩么:左手清理右手充电宝,好玩么?安卓的诱导安装和唤起链我不想说,搜狗输入法我确定取消了启用,然而一次又一次被活动在后台,清理是为了测试唤醒么?
农历是中文:中文外强制隐藏农历,多么鸡肋的设计… 要看农历的你还怕他看到地道的,谷歌英文日历农历就很地道,好的需求SE是多么的重要~
jar 甜点
最后给大餐加点料,View and control your android device on PC。 adb devices
显示连接到设备后,从github上下载上述jar,然后java -jar androidscreencast-0.0.5.1S.jar
除了慢点,功能都有了,看到的java大牛,让梦想飞起来吧~
END
手机慢,电池不够用么? 这年头电池很不错了,谁能告诉我,明明能作出好东西,为什么没有真正做出来几个好东西…
multi-system
中文名:《我把双系统放入vBox并行》
双系统同时运行:宿主机Ubuntu,虚拟机DELL9020原装“正版”Win7。
Linux
我用Linux办公,不喜盗版讨厌弹窗等等,不过我觉得用Linux是不需要理由的。领来新机直接U盘装Ubuntu 14.04 x64,看到大家用Windows居多,所以本着有备无患留下了Windows,grub直接引导就变成双系统,硬盘分区如下:
1 | ~$ lsblk |
可恶的Windows占用了两个主分区,一个是所谓的boot。我把Linux装到了逻辑分区,这个无所谓了,grub大叔能叫起床就OK了。(sda3是逻辑分区的标识,Linux我只分了两个,还预留了200G的空白分区,备用)
Win
我不用Windows系统,一直都是Ubuntu一个系统,最多考试什么需要IE的场合用下。然而有一天,小鬼(一个不支持Linux的所谓互联网大公司,不支持也就罢了,源里还有个不能用的软件拉嘲讽)作祟,Web版本也不让用了,开源大神一度辛苦抓包维护的pidgin插件lwqq不能用了。
最不折腾的方案是虚拟机了,然而我一个懒人,懒得下镜像,懒得装盗版系统,懒得下直接下不确定安全的vmdk/vdi文件用,就想用现成的系统。有句话叫:没有做不到,只有想不到。虚拟的磁盘文件都可以,然而我有真的,不用白不用。
折腾
我最不喜欢折腾,Linux下我不会在乎系统多起个服务进程的,但是Windows没用的开机启动,用不着的服务关一个少一个,少一个系统就少一份维护。我真的最不喜欢折腾,软件都是直接装源里的,除非有bug不想忍时才偶尔编译安装新版本。
开工
首先创建一个类似链接文件的虚拟机磁盘文件,命令如下:
1 | vboxmanage internalcommands createrawvmdk -filename /path/to/new/vmlink/file/Win7HD.vmdk -rawdisk /dev/sda -partitions 1,2 -mbr /path/to/mbr/win7.mbr -relative |
MBR
大家都知道MBR,我就不卖弄了,有真的最好,没有真的弄个假的先凑合下吧。安装完Linux后我的MBR默认引导GRUB,可以导出一份(dd/fdisk/gdisk等等),也可以先搞个假的512bytes 二进制文件。(虚拟机可以有自己的MBR,赞赞)
chmod
默认/dev/sda*
是没有写权限的,so (作为一个懒人,必须搞个自动的: update-rc.d
)
1 | sudo chmod o+rw /dev/sda1 /dev/sda2 |
建议用命令,也可以自己写个sh放到对应的/etc/rc?.d/下面(利用rc.d启动级别,密码可以跳过。)
VBox
含有自己mbr的虚拟机磁盘镜像文件建立好了,如下:
1 | $ ll Win7HD* |
下来当然创建虚拟机,同时添加磁盘文件(注:仅需要添加Win7HD.vmdk这一个文件就好)
FIX
如果你的mbr是真的,如我在装Ubuntu之前备份了mbr这步可以跳过。修复MBR对大家不是什么难题,最方便的是在虚拟机中挂载个iso镜像文件,启动顺序设置CD优先启动。
我挂载了个PE的iso文件,进入PE直接修复引导…
取消挂载的iso文件,或者改下顺序,然后,重启~ 双系统一起运行,竣工 吼吼!
Other
- 网络:虚拟机网络建议选择NAT模式,然后给虚拟机分配个IP。起初我的双系统是同样的IP,不会存在冲突,现在只好再申请一个IP分配上,使用NAT方便宿主机和虚拟机通信。
- 软件:Windows虚拟机下输入法我用小狼毫,通讯软件我用Lite版本。
- 操作:起初我尝试过用远程登录虚拟机的方式,因为虚拟机快捷键是系统级别的,远程桌面可以降到软件级,方便统一操作,但还是鸡肋。最后修改虚拟机设置“Auto Capture Keyboard”,结合工作空间Workspaces给虚拟机单用一个工作空间。
U:
虚拟机可以保存状态,而不需要每次开机,又一次效率提升。
END
本文介绍了借助vbox并行运行双系统的实践,提供了Linux下部分关键命令。我想做一款IM,一款立足Linux的IM,一款和世界共通的IM,然而在“鸡犬之声相闻(lǎo sǐ bù xiāng wǎng lái)”的中国(中:通假字),很难作出这样的IM,有很多做好的却又被不可用。最后的最后给无数开源贡献者点个赞…
wake on lan/wan
我是怎么远程开启我家电脑的WOL:远程登录后只要没有限制,大家都会关机,然而今天我们讨论的话题是远程开机——WakeOnLan…
APP
WOL这款应用是跨平台的,github上有个用perl写的,原先perl写的不支持域名,不过你可以找到我修改后支持域名的那款。
那次分享我使用的手机远程开启我家电脑,之所以选择手机是因为手机方便,选择的应用是:net.mafro.android.wakeonlan (Google Play 的应用id,搜WOL有好几款,我选这个的原因是小,需要权限少)
Let’s GO
在应用界面配上我家路由器的IP(我用DDNS有一个免费域名),Port还有需要开机的MAC,如下图:
填好表单,点击发送,会产生一个“Magic Packet”,并发出…
DDNS
TP-LINK路由器一般默认就有,注册账号,在路由器配置自动登录即可,我家宽带是拨号上网,没有固定IP(但庆幸的是是一个外网IP,电信曾 调整成内网映射IP,我投诉后又恢复成外网IP),DDNS负责登录后将路由器外网地址映射到一个域名上,如我的是xxx.oicp.net,通 过DNS查询就获得了路由器的真实地址,为了保证可用性,我将路由联网模式改成了:总是连接,而不是默认的按需连接(按需连接,只会在内部有网络 访问时才路由器才真正联网,我需要从外部连,所以改成总是)
Magic Packet
具体定义请参考维基百科,一个具有特殊头部的UDP包,主要信息是网卡MAC信息重复三次
UDP转发
发出的“Magic Packet”通过网络到达了路由器,如果你家路由器支持广播,那么恭喜你,你将该条消息直接在路由器内网广播即可,默认端口是9或者7…
如果不支持广播,先是设置端口转发,你家电脑需要设置静态IP,或者通过路由器绑定一个IP,同时你还需要ARP绑定,一切配置 OK,“Magic Packet”可以到达电脑网卡了…
Wake
问题成功从Wake On Wan 转化成 Wake On Lan,进入电脑BIOS设置下,允许网卡唤醒(只要你家的电脑不是古董,这个功能应该都有,还有就是网卡也需要支持),如图:
注:Windows 可能需要进系统,网卡设置允许“Magic Package”魔包唤醒,如下图:
安全&应用
Lan是相对安全的,路由器可以通过MAC过滤,不要泄漏你的MAC等信息。这个仅能开机和关机,对于几乎不会关机的服务器来说,开机没什么不安 全的。(确保你的PC像服务器那样安全)
最佳应用是用在托管机房的远程开机,我们机房的测试机等也可以采用……
总结
本文从手机发出UDP包,简述了远程开机原理及实现,如果你需要配置远程开机,可能需要将整个过程倒过来,先在局域网内广播唤醒,最后用手机数据 流量或其他电脑远程唤醒(开机或从待机欢迎)。