Unix的Socket协议

PHP的官方文档中,对于mysql_connect函数的介绍中有这么一条信息:
Note:
只要将 server 指定为 “localhost” 或 “localhost:port”,MySQL 客户端库会越过此值并尝试连接到本地套接字(Windows 中的名字管道)。如果想用 TCP/IP,应该用 “127.0.0.1” 代替 “localhost”。如果 MySQL 客户端库试图连接到一个错误的本地套接字,则应该在 PHP 配置中设定的正确路径并把 server 留空。

看到这里,就捎带着说说Unix的Socket协议吧。

继续阅读“Unix的Socket协议”

posix的特性——fork

记得之前曾经在一段Python中介绍过python的mulitprocess模块在windows的不兼容。其中提及了linux/Unix特有的fork方式,而windows无法实现导致的死循环。当时只是提到了一下,重点不同的关系,没有深究。

fork,顾名思义就是一把叉子,或者专业一点叫做复制叉。作为sys/type.h的一个函数,系统在每次调用fork()之后,将会以此为分叉,对进程本身进行复制,新的进程和旧进程有近乎完全一致的cpu时间和内存寄存器。

继续阅读“posix的特性——fork”

分布式文件系统Moose FS的部署

近期随着云概念的热炒,什么都分布式。所谓分布式的文件系统就是把若干机器上的磁盘空间统一维护,成为一个逻辑上的独立空间,当然,还有对应的容错和压力分散解决方案。

这些天在研究分布式存储的东西,测试了比较出名的几个分布式文件系统。首先是淘宝的tfs,国人出品应该支持了,谁知TFS的支持库实在不敢恭维,换了几种操作系统,最终才在suse上安装成功。可作为一个绑死操作系统的应用,风险太大。接着是MogileFS,MogileFS是基于perl的,在安装了一系列的perl依赖包之后,MogileFS安装的很顺利,性能也能达到要求,问题就是在于我们实在不愿意去维护一个perl环境。最后剩下了MooseFS。

继续阅读“分布式文件系统Moose FS的部署”

通过motd信息简化巡检操作

作为一个Unix系统的管理员,手工巡检几乎成了工作中一个重要的部分。这里不放使用Linux的motd通告信息实现简单的信息通告,至少能省去了不少手工命令的时间。

motd即Message Of ToDay,每天的信息。大部分的固定文本信息放置在/etc/motd下,如果没有你可以直接创建一个,然后修改其中的内容制作一个主机登录Banner以便于区分多台主机。对于Ubuntu来说,特别是启用了server中“landscope管理系统”后,这里没有效果,你需要修改的文件为/etc/motd.tail。

继续阅读“通过motd信息简化巡检操作”

一个怪异的Cron问题

一个朋友向我咨询他遇到的一个问题。

Centos的操作系统,自然是主流应用的WWW。近期无缘无故的Cron失效,所有的任务都无法执行。多次重启主机,重启Cron服务均是如此。

起先我由于没有拿到控制台,怀疑是Cron经典的环境变量问题,修改了半天也是白忙。总算此兄开恩,将root的权限给了我。:)

继续阅读“一个怪异的Cron问题”

python multiprocessing的问题

multiprocessing的是Python2.6中新加入的模块,旨在用类似threading调用tread(线程)的方式使用process(进程)。

服务器中经常需要对大规模的数据进行压缩,传统使用单进程操作不足以体现8核CPU并发的威力。于是写了一个脚本用于多进程压缩。然而在windows的主机上进行调试,全都是死循环,以至于机器都无法进行响应。导入Linux主机,测试却通过。对脚本进行了精简如下:

继续阅读“python multiprocessing的问题”

再谈谈 Oracle+Sun=?

上次写过几篇东西,关于Oracle收购Sun的。Oracle+Sun=? , Sun的身前身后事

如今尘埃落定,www.sun.com 也已经被重定向到了www.oracle.com 。至少局外人看来,两家公司已经合并,而且至少不是失败的。

也就是在今天,得知oracle放出消息:今后Solaris不再免费提供,下载版本只提供90天的试用。如果使用,请买授权!

从个人角度上来说,我当然希望是提前一天庆祝了明天的节日。但事实上这并非是空穴来风。

继续阅读“再谈谈 Oracle+Sun=?”

Solaris连锁故障

公司有一台服务器,属于经常被冷落的那种。SunV245 + solaris 10 + Oracle 10G 。自从装好机之后uptime至少有2年了。

且说这天需要重启,重启后无法通过ssh连接,通过串口终端连上之后发觉由于之前习惯于ssh key登录,一直没有root密码。郁闷中。

继续阅读“Solaris连锁故障”

用SSH Tunnel穿越防火墙

这次接上篇

很多企业对互联网的访问进行了限制,如何突破防火墙的限制成了一个问题。本文就是利用了SSH tunnel搭建了socket5代理。

首先,申请一个外网的ssh帐户,个人建议使用http://www.unix-center.net/提供的免费资源,该网站还提供多种平台主机可供测试之用,非常不错!当然,如果可以使用密钥方式登录那就完美了。

继续阅读“用SSH Tunnel穿越防火墙”