备份蒲公英X3的固件(以及其他类似mtd类型的固件的一键备份)

评测拿了2台蒲公英路由器,第一件事情当然是先备份固件。编程器到手了,电烙铁还没买。

mkdir -p /tmp/bin/
cd /tmp/bin/
grep mtd /proc/mtd |sed -e 's/://g' -e 's/"//g' |awk '{print "dd if=/dev/"$1" of="$4".bin"}' |sh

反向编译OpenWrt的Lua字节码 (Decompile Lua bytecode of OpenWRT)

  1. Lua有一种预编译机制,能够把文本代码预编译成Bytecode/Opcode 提高解析、执行速度,降低内存占用
  2. 原版Lua(Vanilla Lua)默认的Bytecode的字节结构和OpenWrt的并不相同,因为OpenWrt为了一系列需要,在截止我写此文时候,在Lua5.1.5的版本主线上对原版的LUA引擎打了补丁导致其产生的字节码和原版的Lua产生的并不一样,( http://lua-users.org/lists/lua-l/2012-06/msg00065.html ),因此也不能使用原版的Lua引擎解释,会报类似 bad header in precompiled[......]

Read more

Nginx用rsyslog转发日志的一些小坑

我们从Nginx的代码中可以看到,给syslog发通知的时候,tag后面跟了2个字符 冒号+空格,所以阿里云这里的文档完全是坑爹

这里判断的是$syslogtag,也就是这种配置

这边配置tag为 nginx,而 $syslogtag 不会是 nginx,而是 nginx+冒号+空格

查了rsyslog文档,$syslogtag 行为本来就是程序自己定的,(),真正需要的是 这个 $programname

所以这样的配置是可以work的:[......]

Read more

说一说 Git Subtree

写组件代码写一半 ,感觉此组件在不同的项目之间的共性太多 ,该组件完全可以单独作为一个repo独立出来,思考了一下决定用Git Subtree来完成这种拆分。具体的拆分过程由于手册上都有讲,别人也写的比我好,我也就没有必要做搬运工了,点这里进入传送门 

但是该组件所在目录已经存在了,而且我的 PSR-4的命名空间也都写好了 ,现在改也不太方便,怎么弄呢?

也许你会搜索到各种各样的文章 有的会教你clone一个本地单独的repo 然后把原来的目录删掉,再以这个本地repo为桥梁重新保留历史方式进行add subtree ,有的会告诉你直接备份完整的那个目录 删掉以后,再add su[......]

Read more

观测到电信存在全国性的端口封禁

服务器上开了个4444端口想零时跑个东西,发现电信的网怎么都不行

改成4445一下就可以了 ,换了宽带通,也一下就可以了

才怀疑是电信的问题 ,找了几个电信的IDC的机房测试,家里的电信树莓测试,无锡电信 北京电信等都存在这个问题。

搜了一下,还真有人整理出了一份电信全国封禁的目的端口列表,发现和UC Cloud的全局封禁列表基本重合,这里就借用这个列表,给后来人避免踩坑了。

以下端口对于ucloud都是禁止的,不管防火墙是否设置开启

  • 使用ucloud的同学可以看下,当心踩到这些坑,仅供参考 来源 https://ruby-china.org/topics/1[......]

Read more

关于一些云服务商批量生成的系统镜像模板里面ssh密钥相同的问题

其实这些问题之前就和hev探讨过 具体见这里 https://hev.cc/2030.html

服务器端证书的用途是加密传输数据,当客户端连接服务器端时,服务器端会选择一种加密协议,如 rsa ,并将服务器端的 RSA 公钥(/etc/ssh/ssh_host_rsa_key.pub)发送给客户端,客户端使用这个公钥将要发送给服务器端的数据(例如认证密码)加密,再通过网络传输给服务器端。服务器端再使用服务器端 RSA 密钥解开被加密的数据,得到明文。只有拥有这个 RSA 密钥的用户可以解开这个加密数据。

客户端证书的用途是鉴定用户身份。

现在的问题是 VPS 服务商的系统都是预安[......]

Read more

古老的问题:SSH中粘贴的时候VIM自动缩进了很多空白

简单的方法:

然后插入的时候按下F2 切换到粘贴模式

根本的原因:

开启了自动缩进的各个选项

可以挨个关闭

noai=>noautoindent

或者找到 设置“indentation rules and plugins”的地方 关闭掉即可

MySql 加密 客户端使用的密码配置文件

 

正常情况下,一般数据库密码可以写在用户主目录的.my.cnf 然后设置chmod 600,一般来说是比较安全的。
但是如果不想给人知道用户名和实际的密码,但是又想给人用,可以使用mysql自己带的config edit。

这个时候,用户主目录下会出现一个加密了以后的.mylogin.cnf,权限600

直接查看会发现密码是加密的,调用:

可以看见摘要

直接调用mysql 就可以免密码登录mysql_config_edito[......]

Read more

dpkg的force-confmiss与UCF_FORCE_CONFFMISS

dkg安装一些软件的时候 如果某些文件被删除,可以使用 reinstall 的方式重新安装,只要带上 --force-confmiss 那么这些丢失的文件就会被补回来,但是有一种情况例外,那就是一些使用ucf 管理的文件,这些文件不是和deb包一起分发,而是通过ucf生成,表现为,即使使用

依然提示 Not replacing deleted config file /etc/xxx.conf

那么需要通过环境变量告诉ucf

参考链接

如何获取最新版的DELL定制版的vSphere/ESXi

直达链接 http://www.dell.com/support/home/us/en/19/product-support/product/poweredge-r630/drivers?os=xi60#driverList_EC

打开 http://support.dell.com/  选择浏览产品『Browse for a product』 附近的 『View products』->『Servers, Storage, & Networking』,任选一个支持的服务器型号 比如 poweredge-r630, 选『Drivers & downloads』驱动下载[......]

Read more