Linux利器 strace[转]

Linux利器 strace

strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。

strace使用参数

-p 跟踪指定的进程
-f 跟踪由fork子进程系统调用
-F 尝试跟踪vfork子进程系统调吸入,与-f同时出现时, vfork不被跟踪
-o filename 默认strace将结果输出到stdout。通过-o可以将输出写入到filename文件中
-ff 常与-o选项一起使用,不同进程(子进程)产生的系统调用输出到filename.PID文件
-r 打印每一个系统调用的相对时间
-t 在输出中的每一行前加上时间信息。 -tt 时间确定到微秒级。还可以使用-ttt打印相对时间
-v 输出所有系统调用。默认情况下,一些频繁调用的系统调用不会输出
-s 指定每一行输出字符串的长度,默认是32。文件名一直全部输出
-c 统计每种系统调用所执行的时间,调用次数,出错次数。
-e expr 输出过滤器,通过表达式,可以过滤出掉你不想要输出

Continue reading “Linux利器 strace[转]”

多出口认证上网代理服务器[原创]

已经授权给了51cto,http://os.51cto.com/art/201104/256479.htm,请注意版权问题。

最近帮朋友接了个小项目,客户在他们的美国机房租了几台服务器,然后想在上面做上网用的代理服务器,供客户在国内使用。具体需求如下

1,客户的这台服务器具有多个出口ip地址

2,客户希望使用认证的方式使用代理服务器上网

3,客户希望通过不同的认证用户实现从不同的出口ip访问网络

4,隐藏代理信息,隐藏真实上网ip

Continue reading “多出口认证上网代理服务器[原创]”

自动语法高亮 google-code-prettify

转自:http://www.21andy.com/blog/20100920/1955.html

地址:http://code.google.com/p/google-code-prettify/

特点是无须指定语言!

安装使用

1、在你的文件中包含这儿的脚本和样式表(你要保证这儿的 css 和 js 文件按在你的服务器上, 并且调整在 scriptlink标签中的路径)

2、添加onload="prettyPrint()" 到你的文件的 body 标签中.

3、修改样式表,使用你自己喜欢的颜色. Continue reading “自动语法高亮 google-code-prettify”

ssh ftp故障两例

蚊子最近用perl写了个sftp的脚本用来从远端服务器上每小时获取网络ping测试数据。昨天又拿到了一个机房的测试服务器,按照正常的流程配置了相应的脚本,数据已经都开始收集了,不过从昨天下午,sftp就不能用,看打出的日志,居然报错,报错的内容如下

Request for subsystem ‘sftp’ failed on channel ‘1’ at /usr/lib/perl5/vendor_perl/5.8.8/Net/SFTP.pm line 92

Continue reading “ssh ftp故障两例”

linux下安装php的扩展包pear[更新]

PEAR是PHP的官方开源类库, PHP Extension and Application Repository的缩写。Pear在英文中是梨子的意思。PEAR将PHP程序开发过程中常用的功能编写成类库,涵盖了页面呈面、数据库访问、文件操作、数据结构、缓存操作、网络协议等许多方面,用户可以很方便地使用。

今天在我的测试机上还使用之前介绍的安装方法:

lynx –source http://pear.php.net/go-pear |/usr/local/php/bin/php

Continue reading “linux下安装php的扩展包pear[更新]”

分布式缓存清除系统 v2.1发布[原创]

这两天观察了一下nginx的缓存文件,从而对server端程序代码进行了调整,调整不大。

在原有v2.0版本的基础上增加了对nginx的指定文件缓存的清除,提交请求的写法是一样的。

关于nginx支持purge的http头的方法请参考《web版清除缓存程序V1.2.3[原创] 》这篇文档的设置。这里我不在赘述

本篇文档主要讲解一下支持nginx指定内容缓存的原理,及nginx上关键的设置。 Continue reading “分布式缓存清除系统 v2.1发布[原创]”

SVN自助更新:运维利器Puppet实例讲解(一)[原创]

http://os.51cto.com/art/201012/240992.htm,已授权给51cto.com,请注意版权问题

一直想写点关于puppet的文章,但通过学习发现,puppet更多的是参数配置上的东西,写理论性的内容无非就是翻译一下官方文档,不利于新人对于puppet的理解上手。于是觉得,还是应该结合实际应用写些关于puppet使用方面的东西更贴近大众。

首先简单介绍一下puppet。puppet是一种Linux、Unix平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,其设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。 Continue reading “SVN自助更新:运维利器Puppet实例讲解(一)[原创]”

分布式缓存清除系统2.0[原创]

在2010年的最后一天,蚊子我为这最后一天画上了一个圆满的句号。发布了这套《分布式缓存清除系统2.0》版,他的前身是《web版清除squid缓存》,从1.0到1.2.3共有6个版本。在这6个版本中只是实现了多台squid,nginx的完整url缓存清除功能。

而今天发布的分布式缓存清除系统2.0,蚊子采用了C/S架构模式,由于squid和nginx的缓存文件内容结构不同,所以此版本在前身版本功能的基础上,实现了对squid指定内容进行批量缓存清除的功能,不过遗憾的是暂时还不能支持nginx的指定内容的批量清除。后续的开发中,会增加对nginx的支持。 Continue reading “分布式缓存清除系统2.0[原创]”