random tips on coding, ops, ...

Download Software for Apple Development

You can find the DMGs for Xcode and other development tools on here. Login with Apple ID is required before download.

......

Python 装饰器和 functools 模块

Python装饰器(decorator) 是很有用的一个语法特性。但在具体使用时,需要注意一些细节。例如, 被装饰后的函数其实已经是另外一个函数了(函数名等函数属性会发生改变)。 因此,Python 的 functools 包中提供了一个叫 wraps 的装饰器来消除这样的副作用。

......

OSX 上部署 Gentoo Prefix

Genttoo Prefix 在非 Linux 系统上提供类似 Gentoo Linux 的体验和软件安装。本文简要描述在 OSX 上的部署过程。

参考了 Gentoo Prefix Bootstrap ProcessGentoo Prefix Bootstrap Process for UNIX-like systems 这两个文档。

......

RAID 卡维护备忘

各种 RAID 卡的日常维护命令备忘。

......

通过 SMART 查看和跟踪硬盘健康状态

S.M.A.R.T. 的全称为 Self-Monitoring, Analysis and Reporting Technology,一般简写为 SMART。 这是硬盘(HDD 或 SSD)内置提供的状态监控系统,通过它可以及时了解硬盘驱动器的 可用性状态,提前预测可能的失败。不过,需要说明的是,在 SMART 没有报告任何异常 时硬盘也可能会失败。因此,在任何情况下数据备份都是非常重要的,不能省略。

......

iptables recent 模块配置

假设有如下需求,需要对来自每个 IP 的 SSH 连接尝试频率做限制, 例如 10 次/每分钟。netfilter 里 recent 模块正好可以实现该需求。 但在具体的实现过程中走过一些弯路,本文尝试做一个总结如下。

如下两种配置方式在命令行上的区别为顺序完全相反。 考虑如下两种配置方式的差别在哪?

......

kipmi0 占用 100% CPU 的问题

最近在某台设备上发现 kipmi0 这个内核线程会占用 100% CPU。

最快的临时解决办法是:

# rmmod ipmi_si

显然,该方法是以牺牲一定的功能为代价。根本解决办法需要清楚为什么 kipmi0 会占用 CPU 资源呢?摘录部分内核文档 Documentation/IPMI.txt 如下:

......

Linux reboot 的魔数

man 2 reboot 能看到 reboot 系统调用需要用到几个魔数,其定义在文件 “include/linux/reboot.h” 或 “include/uapi/linux/reboot.h” 中:

#define LINUX_REBOOT_MAGIC1  0xfee1dead
#define LINUX_REBOOT_MAGIC2  672274793
#define LINUX_REBOOT_MAGIC2A 85072278
#define LINUX_REBOOT_MAGIC2B 369367448
#define LINUX_REBOOT_MAGIC2C 537993216
......

银行/信用卡号码规则及验证算法

银行/信用卡卡号规则参考这里, 第一位是行业标识(Major Industry Identifier),前六位对应发行者标识,剩下的 位对应个人帐号。

卡号的合法性验证一般是采用 Luhn 算法

......

Linux 下的多 IP 地址配置方法

Linux 各种发行版本采用 iproute2 方法在一个网卡上分配多 ip 地址的配置方法如下。 需要注意的是,采用 iproute2 方法配置的多 ip 地址需要使用 ip addr 命令才能 正常看到,传统的 ifconfig 方法只能看到一个 ip 地址。如果需要 ifconfig 能看到 所有的地址,则需要使用网卡别名(如 eth0:1)的方式来进行配置。

......