Author: Uranus Zhou

使用libc封装库修改程序绑定端口

本文同步自(最佳显示效果请点击):https://zohead.com/archives/libc-bind-wrapper/ 最近在使用一个第三方程序的时候发现程序绑定的 UDP 端口和现有 Linux 系统中的程序有冲突,系统自带的程序又不好修改端口,而第三方程序更没有源码或者配置文件来指定端口。 这种情况下想到可以用 libc 的封装库自己实现 bind 之类的函数来修改端口号,而网上也找到了 Daniel Ryde 类似的实现: http://www.ryde.net/code/bind.c.txt 编译这个 bind 库可以通过环境变量指定绑定的本地 IP 地址,但不支持端口号修改, […]

NFS和64位inode的问题

本文同步自(最佳显示效果请点击):https://zohead.com/archives/nfs-64bitinode/ 最近在 XFS 文件系统上使用 NFS 时发现一些比较老的 Linux 客户端在挂载时会提示 stale file handle 错误,这似乎是服务器端的 NFS 共享文件夹信息不正确了,比较奇怪为什么新的 Linux 系统又是可以挂载使用的,准备一探究竟。 首先登录到服务器端(也是 Linux 系统,RHEL6 x86_64 服务器),查看 NFS 共享文件夹的状态(NFS 共享路径为 /nfs/share2): 上面的 ls 命令特别增加了 -i 参数用于显示文件的 i […]

NFS读写块大小问题分析

本文同步自(最佳显示效果请点击):https://zohead.com/archives/nfs-rwsize/ Linux NFS 客户端在挂载服务器的 NFS 共享时可以使用 rsize 和 wsize 参数指定 NFS 读写的块大小,但实际使用时发现并不完全凑效,下面简单分析一下。 我先在一台 RHEL6 客户端上挂载另一台 RHEL6 服务器上的 NFS 共享: 从上面可以看到不指定 rsize 和 wsize 参数时,默认的读写块大小都是 256KB(rsize=262144),而且使用的是 TCP 协议(proto=tcp)。 下面使用 UDP 协议挂载 NFS 共享: 从结果可以 […]

Linux运行dd时得到进度和速度

本文同步自(最佳显示效果请点击):https://zohead.com/archives/dd-progress-speed/ 我们常在 Linux 系统中使用 dd 命令做文件或设备的读取和写入操作,只是 dd 对读写进度和速度显示不是实时的,下面以两个磁盘设备之间的备份为例说明两种如何在 dd 命令运行过程中得到进度和速度的方法。 1、通过 dd 的信号得到进度和速度: 新的 Linux 系统中的 dd 命令支持在运行过程中接收 SIGUSR1 用户信号并显示当前实际读写了多少数据以及统计的平均速度是多少。 假设测试的是从 /dev/sdc 设备拷贝 360GB 的数据到 /dev/sdb […]

Linux下直接修改LiveCD系统

本文同步自(最佳显示效果请点击):https://zohead.com/archives/livecd-mod-linux/ 最近需要使用一个 LiveCD Linux 系统时发现原来的 root 密码忘了,无法进入系统,因此想到在另外一个 Linux 系统直接修改 LiveCD 系统里的 root 密码。 经过分析下 LiveCD 里 squashfs 文件系统的处理脚本中的流程,下面以 在 CentOS 6.1 Linux 系统中修改 RHEL 6.3 64位 USB LiveCD 为例介绍实际流程。 1、首先挂载 LiveCD 设备分区(假设为 sdb1 设备): 然后查看 /mnt 挂 […]

使用AutoIt导出QQ群漫游聊天记录

本文同步自(最佳显示效果请点击):https://zohead.com/archives/autoit-export-qqmsg/ 近日需要将某个QQ群的聊天记录导出来查找需要的东西,但发现本地保存的聊天记录比较少,很多日志都在漫游的聊天记录里,QQ本身又没有提供直接导出漫游聊天记录的功能,因此就想到写一个 AutoIt 自动脚本来模拟鼠标和键盘动作自动导出日志了。 首先安装 AutoIt v3,然后打开需要导出的QQ群聊天窗口,点击 “消息记录” 按钮(消息会显示在右边窗口),然后切换到 “漫游消息” 标签;接着再开启一个空的 EditPlus 文档: 然后运行我写的这个简单的 copy_q […]

使用libexslt库将XML转换为JSON

本文同步自(最佳显示效果请点击):https://zohead.com/archives/libexslt-xml-json/ 最近在一个 C 程序中碰到需要将 XML 数据转换为 JSON 数据的问题,多番查找几种方法,觉得此程序刚好用到了 Linux 下的 libexslt XSLT 库,因此想直接通过 XSLT 将 XML 转为 JSON 数据。 网上已经有了现成的 XML 转 JSON 的 XSLT 程序: http://code.google.com/p/xml2json-xslt/ 下载下来的 xml2json.xslt 程序可以很方便的将标准的 XML 文件转换为 JavaScr […]

LHA和RHCS类型fencing agent

本文同步自(最佳显示效果请点击):https://zohead.com/archives/lha-rchs-fence-agent/ 在使用 CRM/Pacemaker 双机的时候,有时需要用到 Fencing/STONITH 技术来保证 I/O 数据的安全性。Fencing 分为资源级别和节点级别两种,资源级别的 Fencing 用于组织某个节点访问具体的资源,节点级别的 Fencing 用于确保某个节点不运行任何资源。关于 Fencing/STONITH 的详细介绍请参考 [这里]。 在实际使用 Pacemaker 的 Fencing 支持时会碰到两种常用的 fencing agent:L […]

强制重启Linux系统的几种方法

实际生产环境中某些情况下 Linux 服务器系统在出现致命错误需要远程进行重启,通过常规的 reboot、init 6 等方法无法正常重启(例如重启时卡在驱动程序里等情况),这时就需要通过下面介绍的几种特殊的方法进行强制重启。 注意 下面这些强制重启 Linux 的方法都是直接跳过 umount 文件系统及 sync 等操作,可能导致数据损坏,不在特殊情况下请勿使用。另外当然这些都是需要 root 超级用户权限的哦。 reboot 命令 直接通过运行 reboot -nf 命令,这样重启时可以指定跳过 init 的处理和 sync 操作,这样可以避免大多数情况下的问题。 magic SysRq […]

Raspberry Pi上观看Sopcast视频

本文同步自(最佳显示效果请点击):https://zohead.com/archives/raspberry-pi-sopcast/ Sopcast 是一种国外比较受欢迎的 P2P 流媒体直播软件,可以运行在 Windows、Linux、Android 等平台,近日想在 Raspberry Pi 树莓派板子上看 Sopcast 直播视频看球赛,经过搜索之后终于找到一种曲线解决的办法。 目前树莓派上的 Android 还基本处于不能用的阶段,Raspberry Pi 由于是 ARM 架构的嵌入式板子,也无法运行 x86 版本的 Sopcast Linux 客户端程序,因此只能另想办法。 这里就要 […]