Category: Linux

Linux下apache以root身份运行

最近在某个项目需求中需要在 Linux 下使 apache 以 root 身份运行(默认使用的是 apache 用户),直接修改 apache 配置文件 httpd.conf 中的运行身份为 User root 和 Group root 后启动 apache 结果会报下面的错误: Error: Apache has not been designed to serve pages while running as root. There are known race conditions that will allow any local user to read any file on th […]

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 挂 […]

使用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 客户端程序,因此只能另想办法。 这里就要 […]

解决chroot Linux中Upstart无法工作的问题

本文同步自(最佳显示效果请点击):https://zohead.com/archives/chroot-linux-upstart/ Upstart 是比较新的 Linux 中使用的 init 进程,用于替换原始的通过 /etc/inittab 控制的 /sbin/init 进程。原始的 /sbin/init 进程在系统启动时启动服务,在系统重启或关闭时关闭服务。而 Ubuntu 从 6.10 开始已经不再使用老的 init 进程方式,改为新的 Upstart 方式。Upstart 完全可以替代原始 init 进程(实际上 Upstart 就是新的 init 进程),而且还可以做到特定事件触发 […]