2008年9月27日星期六

找到google的chrome的配置文件

C:\Documents and Settings\用户名\Local Settings\Application Data\Google\Chrome\User Data\Default\Preferences

好像搜索栏不能改。

LFS各包之间的依赖关系图

写给刚刚开始LFS的朋友们的一些建议(youbest)

首先我想先说明的是,下面的内容全部都是我个人的一些经验,不能算是指导性的内容,只是希望能够给刚刚开始制作LFS系统的朋友们的一些建议。有一点需要说明的是我不是什么资深的LFS用户,从接触LFS到现在也才1年半不到,所以如果你不同意我的观点可以提出来大家讨论一下。
  LFS很“烦琐”,但它也非常的高效,他可能让你很郁闷,也可能让你很兴奋,如果你想彻底的了解Linux的世界,LFS非常的有用,虽然它不是唯一的路线,但它绝对是非常有效用的路线,所以是否选择LFS看你目的了,因为用LFS做成和其它一些发行版本的最基础的状态也可能花去你数个月的时间,但同时你将得到对Linux前所未有的清晰感。
  如果你是刚刚开始LFS的“新手”,你有可能曾经用过多年的其它发行版本,或者从来没有接触过LFS,那么首先应该弄清楚的就是LFS从严格的意义上来说根本不是什么Linux的发行版本,它没有发行版需要的任何重要的要素,它可以说纯粹就是一篇指导性的参考手册,所有的源代码包都是从网上下的,当然LFS的安装LiveCD中包含手册中提到的源码包和补丁,但当你渐渐进入LFS的世界后是不能跳过下载源码包的过程的。
  LFS是个烦琐的系统,如果你没有足够的耐性可能很难继续下去,所以如果你只是想随便用用Linux或者只是为了用Linux架设一个普通的服务器那么建议你不要使用LFS,因为它不适合你,你可能花了大量的编译时间也可能完全达不到你的要求,选择一个适合的发行版本来的更直接有效。
  如果你是一个从来都没碰过Linux的人,那么也建议你先不要制作LFS,因为LFS手册默认是对有一定的Linux使用经验的人更加容易理解,但并不是说没接触过LFS的人都不能做LFS,只是如果想少点郁闷,还是先装一个流行的发行版用一下可能效果会好些。
  耐心+细心是对每一个安装LFS的人都需要的,我为了做LFS,在一两个月中前前后后编译LFS十几次,几乎每2、3天就会从头开始编译一次,而且是按照手册上的命令一条一条的输入,在前几个月的安装中从来没有用粘贴复制的方式进行编译,而且在最初的几次是输入完一条命令要核对一下后才回车的,虽然我知道有ALFS这样的东西,但我觉得既然选择了LFS,那么就要彻彻底底的手工来几次,否则用Gentoo就好了(不过说实话,我当时只是看到过有Gentoo这个东西,还真不知道它是怎么安装的),其它人编写的脚本我觉得对于一个刚开始LFS的人是有害无益的,当你靠脚本完成安装的时候你什么也没得到,不要指望看LFS手册就能学到东西,计算机是一个动手实践的学科,没有实际的操作是很难真正掌握关键的知识的。当你有一定的安装经验后基本上你也能自己动手写一个自动安装脚本了(我相信基本上有一定的LFS制作经历的人都有自己的LFS脚本,只是这些脚本更适合他个人),这时候别人的脚本对你来说也没有什么作用,不过看看人家的脚本倒是可以学习一下SHELL编程了,不过这已经到了另外一个专题中了。
  关于LFS手册,手册的开头几章看上去没有什么实际的内容,但这些内容对后面的内容却非常的重要,主要是指出了一些默认的状况,所以很多朋友在编译的时候会出现一些问题主要都是跟没仔细了解这几章内容有一定的关系。
  主系统的选择和你将要制作的LFS很有关系,总的来说LFS LiveCD是最适合做Host系统的,但也不排除LFS的LiveCD会不能驱动某些磁盘而导致无法制作。如果你不想下LiveCD来做,那么你就要选择一个合适的发行版本来完成,其关键就是要制作的目标系统的内核版本于Host的内核版本比较接近,如果你想制作一个基于2.4内核的LFS5来说RedHat 9.0的默认状态就可以胜任,但如果你要制作的是基于2.6内核的LFS6.x的话,就绝对不能在RedHat 9.0的初始状态下完成的,这时候你可以选择升级RedHat9.0的内核,不过用FC的版本可能更好些。
  关于FC4,有些人在上面编译无法进行,我特地在FC4上进行了一次,我自己都没想到的是十分的顺利完全正常的进行到了编译工具链中binutils和GCC4的第二编结束,没有出现错误,所以我分析是binutils版本的问题,建议大家在制作LFS的时候使用binutils-2.16.1这个版本不要再使用binutils-2.15.94.0.x.x这样的版本。
  LFS的手册虽然是一篇指导性的文章,你可以按照上面的顺序和软件来安装,也可以不按照上面的顺序和软件安装,但对于一个“新手”来讲,完全按照上面的内容制作一两遍是完全必要的,在对LFS的方法和手段有了一定理解的基础上在按照自己的要求定制系统才会比较顺利。
  感觉和理解,这两点对深入LFS有很大的帮助,不要以为输入命令是浪费时间,如果你一边输入一边对输入的内容进行理解那么这对你理解LFS是很有用处的,即使是机械的输入同样能够带来你对LFS的感觉,这种感觉非常微妙,平时也很难察觉,但当积累到一定程度的时候你会发现有一种豁然开朗的微妙感觉,所以正确对待输入命令上是非常重要的。
  关于虚拟机,对于刚刚开始接触LFS,特别是对Linux没什么了解的朋友在制作LFS的时候其实使用虚拟机是非常方便的,即使把系统搞的乱七八糟也不会对你实际使用的机器造成影响,但也有一个算大也不算大的问题就是速度比较慢,一般是非虚拟机一半不到的速度,所以一台性能不错的机器对刚开始学习LFS是有很大的帮助的。
  Linux下的各种应用软件包的更新都非常的快,你可以使用最新的版本来编译LFS,但如果你是一个新手我建议你不要这样做,在没按照LFS上的对应的包完整的编译一两次系统的情况下,可能会出现你一些摸不着头脑的问题,但如果确实在LFS上的包在编译过程中无法编译通过也不要死抱着不放,毅然使用比较新的版本来进行,比如上面提到的binutils的问题,可能在一些特定的情况下会有问题,使用最新的版本问题就有可能得到解决。等熟悉了后都用最新的也没问题。
  说了不少,也都是想到哪说到哪,可能没什么上下的逻辑关系,不过不打紧,只要看的人理解就成,基本上可以概括成三句话:LFS手册仔细看决不是浪费时间,效果远比出了问题胡思乱想来的有用;细心+耐性是成功实现LFS的不可缺少的因素;LFS决不是免费的现成的大餐,只有有心制作LFS的人才能真正享受到它与众不同的滋味。

2008年9月23日星期二

ubuntu安装KDE4.0

编辑Source.list文件以添加软件源.打开终端,输入:
sudo gedit /etc/apt/sources.list
系统会提示输入管理员密码,输入后继续.
在弹出的源列表中添加: deb http://ppa.launchpad.net/-members-kde4/ gutsy main. 保存退出.
升级软件源.回到终端输入 sudo apt-get update
安装.在终端输入 sudo apt-get install kde4-core

2008年9月22日星期一

Ratproxy -- Google 的 XSS 检测工具

跨站脚本攻击(XSS, Cross Site Scripting) 可能是目前所有网站都比较头疼的问题,Google 也不例外。这次 Google 又做了一次雷锋,把内部用来审计 XSS 的工具开源了:ratproxy。

Ratproxy 工作流程:
1) 运行脚本后,会在本地启动一个代理服务器,默认端口是 8080 ;
2) 浏览器设置这个地址 (http://localhost:8080)为 代理地址 ;
3) 浏览要测试的 Web 页面,进行实际登录,填写表单等操作(这些动作会被代理服务器捕捉并做点"手脚"发给待检测的页面),ratproxy 会在后台记录相关的 Log ;
4) 用 ratproxy 提供的工具解析 Log 并输出 HTML 进行分析;
5) 修正比较严重的问题后,跳回到第一步,直到评估通过为止。
在我的 Ubuntu 下测试了一下,需要说一下的是,本地系统需要安装 libssl-dev 与 openssl 。
$ sudo apt-get install libssl-dev openssl
$ cd ratproxy ; make
然后就可以提交类似:
$ ./ratproxy -v . -w foo.log -d foo.com -lfscm
然后,人肉点击相关的页面进行测试了。这个工具的设计思路还是很值得借鉴的,推荐对安全感兴趣的同学读一下源代码。
ratproxy 的作者是 MIchal Zalewski,一个波兰的白帽子黑客。他的个人主页上能找到更多有趣的工具。
--EOF--
另参见另一份试用报告

解决MySQL堵塞问题INSERT DELAYED

由于对MySQL的并发插入数据能力没有一个很好的评估,因此在些多进程并发程序时,忽略了MySQL的堵塞问题以至程序时不时因为MySQL的堵塞,导致子进程一直在等待MySQL释放堵塞,完成INSERT 指令。
故障现象:
堵塞的子进程都是 sbwait 状态
父进程,一直在等待子进程结束,是wait状态
如果不手工kill掉堵塞的子进程,这些进程一直存在
原因排查:
  开始怀疑是socket部分的问题。以为是由于连接服务器时,在等待对方关闭连接而引起的堵塞。
  花了很长一段时间来检查和调试socket部分的代码,几次以为已经解决了的时候,又出现故障,都是以失败告终。
  这个周末,重新将整个socket连接,数据库连接逐一检查。发现,sbwait 状态时,是由于MySQL的堵塞引起的。多进程并发的情况下,同时抢占MySQL的资源。而MySQL默认表类型,是表锁定的。当A子进程锁定进行插入时,B子进程只能等待。以至并发时,发生堵塞现象。
解决办法:
优化表结构和数据结构
更改INSERT INTO为 INSERT DELAYED INTO
更改程序结构,让每个子进程各自打开一个MySQL连接
说明: INSERT DELAYED INTO,是客户端提交数据给MySQL,MySQL返回OK状态给客户端。而这是并不是已经将数据插入表,而是存储在内存里面等待排队。当mysql有空余时,再插入。
  这样的好处是,提高插入的速度,客户端不需要等待太长时间。坏处是,不能返回自动递增的ID,以及系统崩溃时,MySQL还没有来得及插入数据的话,这些数据将会丢失。
观测:
  做这些调整后,运行了一天,没有出现堵塞情况。并且运行时间也缩短了。
通过phpMyAdmin观测MySQL的进程,提交后,会有一些用户为DELAYED,状态为Waiting for INSERT的进程。过一会,数据完全插入后就消失了。

总结:
  一个系统的东西,就要系统的去考虑存在的问题和可能将要发生的问题。不能过于片面的自以为是。

方便查看网卡信息的一个命令lspci

lspci | grep 'Eth'

2008年9月21日星期日

apache自带负载均衡的集群功能实战录(mod_proxy模块的应用)

下面以在apache mod_proxy下做的反向代理负载均衡为配置实例:在站点www.test.com,我们按提供的内容进行分类,不同的服务器 用于提供不同的内容服务,将http://www.test.com/news的访问转到IP地址为192.168.1.1的内部服务器上处理,对 http: //www.test.com/it的访问转到服务器192.168.1.2上,http://www.test.com/life的访问转 到服务器 192.168.1.3上,http://www.test.com/love的访问转到合作站http://www.love.com上,从 而减轻本apache服务器的负担,达到负载均衡的目的。
首先要确定域名www.test.com在DNS上的记录对应apache服务器接口上具有internet合法注册的IP地址,这样才能使internet上对www.test.com的所有连接请求发送给本台apache服务器。
在本台服务器的apache配置文件httpd.conf中添加如下设置:
proxypass /news http://192.168.1.1
proxypass /it http://192.168.1.2
proxypass /life http://192.168.1.3
proxypass /live http://www.live.com
注意,此项设置最好添加在httpd.conf文件“Section 2”以后的位置,服务器192.168.1.1-3也应是具有相应功能的www服务器,在重启服务时,最好用apachectl configtest命令检查一下配置是否有误。

接下来也是我真正想要介绍的2.2版本后在mod_proxy中新添加的mod_proxy_balancer模块给我们带来的新功能。

首先将在主配置文件http.conf以下Module的注释去掉
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so

再并增加以下元素
ProxyRequests Off
ProxyPass /test balancer://xuanfei stickysession=jsessionid nofailover=On

BalancerMemberhttp://192.168.28.131 loadfactor=1
BalancerMemberhttp://192.168.28.130 loadfactor=1

ProxyPass为代理转发的Url,即将所有访问/test的请求转发到群集balancer://xuanfei
loadfactor为各主机间的负载比例参数,可是设置不同指数
BalancerMember为群集的成员,即群集服务器A或B,负载均衡服务器会根据均衡规则来将请求转发给BalancerMember。

配置好后,启动Apahce服务
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from all

器,访问xuanfei/test就会看到群集服务器中应用返回的结果。恭喜你,负载均衡和群集已经配置成功了!

而且还可以同样在http.conf主配置文件主添如下元素:

SetHandler balancer-manager
Order Deny,Allow
Deny from all
Allow from all

如果配置成功后你可以可以在地址栏输入 xuanfei/balancer-manager,将可以清楚的看到各节点的工作运行状态:)

同样还可以同样在http.conf主配置文件主添如下元素:

SetHandler server-status
Order Deny,Allow
Deny from all
Allow from all

便可以方便的观测到主服务器的当前运行状态,只要在地址栏输入 xuanfei/server-status

用ab对apache负载均衡集群的性能测试对比报告
用ab对apache负载均衡集群的性能测试对比报告
小结:apache 自带mod_proxy功能模块中目前可以实现两种不同的负载均衡集群实现方式,第一种是分工合作的的形式,通过各台主机负 责不同的任务而实现任务分工。第二种是不同的机器在担任同样的任务,某台机器出现故障主机可以自动检测到将不会影响到客户端,而第一种却不能实现但第一种 实现方式的优点在于他是主服务器负担相应没第二种大因为台只是提供跳转指路功能,形象的说他不给你带路只是告诉你有条路可以到,但到了那是否可以看到你见 的人他已经不会去管你了:)。相比之下第二种性能要比第一种会好很多;但他们都有个共同点都是一托N形式来完成任务的所以你的主机性能一定要好.

mysql压力测试工具:mysqlslap

mysqlslap是一个mysql官方提供的压力测试工具。以下是比较重要的参数:
–defaults-file,配置文件存放位置
–concurrency,并发数
–engines,引擎
–iterations,迭代的实验次数
–socket,socket文件位置
自动测试:
–auto-generate-sql,自动产生测试SQL
–auto-generate-sql-load-type,测试SQL的类型。类型有mixed,update,write,key,read。
–number-of-queries,执行的SQL总数量
–number-int-cols,表内int列的数量
–number-char-cols,表内char列的数量
例如:
shell>mysqlslap –defaults-file=/u01/mysql1/mysql/my.cnf –concurrency=50,100 –iterations=1 –number-int-cols=4 –auto-generate-sql –auto-generate-sql-load-type=write –engine=myisam –number-of-queries=200 -S/tmp/mysql1.sock
Benchmark
Running for engine myisam
Average number of seconds to run all queries: 0.016 seconds
Minimum number of seconds to run all queries: 0.016 seconds
Maximum number of seconds to run all queries: 0.016 seconds
Number of clients running queries: 50
Average number of queries per client: 4
Benchmark
Running for engine myisam
Average number of seconds to run all queries: 0.265 seconds
Minimum number of seconds to run all queries: 0.265 seconds
Maximum number of seconds to run all queries: 0.265 seconds
Number of clients running queries: 100
Average number of queries per client: 2
指定数据库的测试:
–create-schema,指定数据库名称
–query,指定SQL语句,可以定位到某个包含SQL的文件
例如:
shell>mysqlslap –defaults-file=/u01/mysql1/mysql/my.cnf –concurrency=25,50 –iterations=1 –create-schema=test –query=/u01/test.sql -S/tmp/mysql1.sock
Benchmark
Average number of seconds to run all queries: 0.018 seconds
Minimum number of seconds to run all queries: 0.018 seconds
Maximum number of seconds to run all queries: 0.018 seconds
Number of clients running queries: 25
Average number of queries per client: 1
Benchmark
Average number of seconds to run all queries: 0.011 seconds
Minimum number of seconds to run all queries: 0.011 seconds
Maximum number of seconds to run all queries: 0.011 seconds
Number of clients running queries: 50
Average number of queries per client: 1

2008年9月10日星期三

进程最大文件描述符数目限制在那里修改?

进程最大文件描述符数目限制在那里修改?
/proc/sys/fs/file-max和ulimit -n的值不一样,各表示什么意思?

#cat /proc/sys/fs/file-max
26214
#ulimit -n
1024





#ulimit -n 4096
vi /etc/security/limits.conf
把这个填上:
* - nofile 65535
然后重启好了。

2008年9月8日星期一

一个网络工程师的简历(可借鉴)

教育:
XX, 男, 24岁
南京林业大学毕业,信息管理与信息系统专业,本科
四级524

技能:
精通Linux系统管理, 以及各种网络服务的安装维护和运行,有三年Linux操作系统使用经验,
精通Shell编程,
熟悉TCP/IP工作原理,
熟悉Linux集群架构, LVS,HA等技术,
熟练MySQL数据库的应用以及数据库复制,数据库HA等技术,
熟悉LAMP环境的架构和维护,
熟悉网络和系统监控,对基于Linux平台的服务器安全监控有深入的了解;

熟练Ruby, Ruby on Rails编程,
熟练CSS, JavaScript语言,
熟练PHP网络编程,
熟练Ajax应用, jQuery, Prototype, Scriptaculous Ajax框架的使用,

能够熟练阅读英文技术文档。

个人能力:
1.对系统整体环境的架构有一定规划能力,很据不同应用需求设计不同的方案,并付诸实施。
2.对服务器数据数据备份有深入的理解,可根据不同情况指定和开发不通的备份策略
3.对WEB架构有比较深入的学习,可指定不通的服务器端策略实现WEB的页面缓存,内存缓存,以及缓存集群。
4.管理任务自动化,擅长编写shell,ruby脚本进行系统管理;将管理和开发相结合。
5.能与客户进行很好的沟通;能够从最通俗的层面解释解释复杂的技术原理。

工作经历:
2006.7 – 2006.9 XX市医院机房 系统架构
构建LVS负载均衡,采用DR模式
构建Heartbeat高可用集群,实现业务持续不中断
制定集群环境监控方案
使用shell脚本实现LVS节点故障自动屏蔽

2006.9 - 2007 南京林业大学网络中心 系统架构
负责Linux服务器的构建,设置和维护
LAMP web环境的搭建,虚拟主机的设置管理

2007 - 2008 中国XX在线 系统管理员
负责内网和外网的服务器的架构和维护
开发shell脚本对各服务器日志进行监控
开发脚本对IDC机房中的服务器进行远程自动增量备份
开发脚本对系统文件完整性进行图形化监控和远程用户登录图形监控
相关技术,程序文档和手册的编写
对系统的架构,升级提供建议和方案

2008 - now 江苏XX系统集成有限公司 技术经理
负责公司各项技术的实施制定方案和标准
与客户沟通挖掘客户需求,制定实施方案
构建公司机房,包括firewall(iptables), mail, web, samba
管理基于apache,lighttpd的虚拟主机,以及对web服务器的优化设置
开发脚本实现虚拟主机空间,数据库空间使用监控
使用php结合iptables、ulogd和mysql开发图像化网络数据监控

项目
2006年
1.负责某市医院架构维护服务器;环境为LAMP,以及内网代理服务器squid的安装和维护。
2.独立开发校院教务管理系统,以及校社团网站,开发所采用的技术为PHP和MySQL,以及学校院服务器架构与维护,环境为LAMP。
3.参与南京XXXX网站的改版和升级项目。

2007年:
1.在中国XX在线公司工作,对其对外服务器实施从windows到linux迁移项目,并进行安全加固和进行长期维护。
2.独立开发过一大型在线上商城系统,系统采用PHP, MySQL,和AjAX技术,。
2008年:
1.参与开发一大型SNS网站,采用Ruby on Rails,Ajax和MySQL技术
2.独立开发一微博客网站,技术采用Ruby on Rails,Ajax和MySQL技术,后端采用memcached和文件缓存技术。
3.为江苏XX公司架构内网服务器,包括基于Linux的iptables防火墙,WEB服务器(lighttpd), 邮件服务器(postfix+anti-virus+anti-spam)和文件服务器(samba)。
4.独立开发苏州XX公司网站。
5.参与开发江苏张家港XX公司对外网站和对内政务管理系统,技术采用Ruby on Rails和MySQL,并制作项目方案。

自我评价:
本人有较强的自学能力,对Linux和开源技术有强烈的爱好和兴趣,热爱钻研新知识和新技术,不断克服困难。为人和善,有较强的沟通能力和语言表达能力,能与客户进行良好的沟通,注重团队的力量,曾带领过4人的团队共同学习和开发项目。立志为开源领域贡献自己的一份力量。


证书:
曾参加华为网络工程师(HCNE), 高级网络工程师(HCSE)培训,
拥有HCNE认证证书;

2008年9月7日星期日

用YUM升级CentOS系统中PHP和MySQL

用YUM升级CentOS系统中PHP和MySQL
用上umVPS后,很多时候在虚拟主机不用自己动手的事情都要自己搞定了,例如:PHP和MySQL的升级。因为不用自己动手,也动不了,所以冰古不太清楚虚拟主机的PHP和MySQL是不是会及时地更新。但用VPS,可以动手玩一下也保证安全,冰古是很乐意进行更新的。以下就是用YUM升级CentOS系统中PHP和MySQL的过程:

yum是CentOS系统自带的用于方便地添加/删除/更新RPM包的工具,它能自动解决包的倚赖性问题。

用yum更新PHP,只需用一条命令就可以搞定:

#yum update php

但问题来了,使用此命令后,系统告诉我,没有发现可更新的包。而当前的PHP版本只是5.2.1,PHP官方已经更新到5.2.6了。

经过一番询问,才知道原来CentOS系统的源里PHP仍旧是5.2.1,需要额外的源才能升级PHP。

根据外国网友的介绍,冰古添加了额外的源:

登录SSH后依次运行下列命令:

#rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

#vi /etc/yum.repos.d/utterramblings.repo #

文中这里是使用nano,但VPS不能启动nano,用vi代替也是可以的

在打开的文档中加入下面内容:

[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

保存。

再次运行下面的命令就可以完成php的升级了

#yum update php

同理,运行下面命令,升级mysql

#yum update mysql

2008年9月2日星期二

GOOGLE自家开发浏览器Chorme横空出世(下载)

GOOGLE自家开发浏览器Chorme横空出世(下载)
http://cache.pack.google.com/chrome/install/149.27/chrome_installer.exe


很漂亮的Chorme。官方下载地址如上。虽然还有点青涩,但是功能不少啦,相信后续会完善的。

有关google adsense与alimama在该浏览器下的测试结果和图见:
http://blog.sina.com.cn/s/blog_5524821f0100anjw.html