iostat安装

作者 : admin 于 2010年05月10日, 10:42:30
2010
05-10

原来一直以为iostat跟iftop一样是独立的安装包,后google发现是一个工具包中的工具,叫systat。

下载地址:http://pagesperso-orange.fr/sebastien.godard/download.html

使用说明书 http://pagesperso-orange.fr/sebastien.godard/man_iostat.html

samba配置小结

作者 : admin 于 2010年05月06日, 13:18:07
2010
05-6

最近想把本本彻底改成linux,前期准备就是要适应一切能想到的应用。跟台式的文件交互,ftp、ssh都可以,但还是觉得共享会方便,于是配置了一下samba。

本子上的系统用的是centos5.4 X64,samba软件是使用命令 yum install samba 进行安装。

首先,启动关闭samba命令

  1. service smb start
  2. service smb restart
  3. service smb stop

首先配置一个公共的读写目录

  1. mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
  2. touch /etc/samba/smb.conf
  3. #smb.conf 内容为
  4. [global]
  5. workgroup = home
  6. netbios name = notebook
  7. server string = Samba Server
  8. security = share
  9. [public]
  10. path = /home/public
  11. browseable = yes
  12. writeable = yes
  13. guest ok = yes
  14. public = yes
  15. force user = nobody
  16. force group = nobody

重启samba后,在windows中运行(局域网互联) 敲入 \\ip 则可以看到public共享目录

如果增加权限验证,则需要增加用户信息:samba用以下两个命令来增加用户信息

  1. smbadduser   //增加用户
  2. mbpasswd     //增加密码

配置文件如下

  1. [global]
  2. workgroup = ksgdfa
  3. netbios name = ksgfdsa
  4. server string = Samba Server
  5. security = share
  6. encrypt passwords = yes
  7. smb passwd file = /etc/samba/smbpasswd
  8.  
  9.  
  10. [public]
  11. path = /home/public
  12. browseable = yes
  13. writeable = yes
  14. guest ok = yes
  15. public = yes
  16. force user = nobody
  17. force group = nobody
  18.  
  19. [sunboyu]
  20. path = /opt/samba/sunboyu
  21. browseable = yes
  22. writeable = yes

补充:其中,公共目录的权限,用配置成 nobody:nobody 777
而 sunboyu 目录的权限,则配置成 sunboyu:sunboyu 777

tips:如果配置成功后,一直无法写入文件,则检查是否关闭selinux,如果没关闭,关闭即可。

rsync使用小结

作者 : admin 于 2010年04月17日, 22:28:51
2010
04-17

多台服务器使用,难免用到同步,工作中大量接触的是rsync,简单测试了一下其命令和应用。

rsync官方主页: http://samba.anu.edu.au/rsync/ 下载地址为:http://samba.anu.edu.au/ftp/rsync/rsync-3.0.7.tar.gz

安装:

  1. ./configure --prefix=/opt/rsync-3.0.7
  2. make
  3. make install

默认好像没有生成配置文件,创建

  1. vi /etc/rsync.conf
  2. //填入以下内容
  3. uid=nobody
  4. gid=nobody
  5. max connections=3
  6. use chroot=no
  7. log file=/var/log/rsyncd.log
  8. pid file=/var/run/rsyncd.pid
  9. lock file=/var/run/rsyncd.lock

测试的两台主机:192.168.0.20 192.168.0.30

在192.168.0.30的/etc/rsync.conf下增加以下代码

  1. [test]       //定义一个域
  2. path=/root/test
  3. comment=test folder
  4. uid=root
  5. ignore errors
  6. read only=no
  7. list=no

然后测试两个命令
1、把192.168.0.20上的 /root/source 目录同步到 192.168.0.30 的 /root/test上
/opt/rsync-3.0.7/bin/rsync -vazu –progress /root/source 192.168.0.30::test
2、从192.168.0.30 的 /root/test 同步到 192.168.0.20上的/root/test
/opt/rsync-3.0.7/bin/rsync -vzrtopg –progress 192.168.0.30::test /root/test

配置权限:
在192.168.0.30上vi /etc/rsycnpass 然后 echo test:123456 >> /etc/rsycnpass
配置文件修改为

  1. secrets file = /etc/rsyncpass
  2. [test]       //定义一个域
  3. path=/root/test
  4. comment=test folder
  5. uid=root
  6. ignore errors
  7. read only=no
  8. list=no
  9. auth users=test

则上边命令1修改为 /opt/rsync-3.0.7/bin/rsync -vazu –progress /root/source test@192.168.0.30::test
命令2改为 /opt/rsync-3.0.7/bin/rsync -vzrtopg –progress test@192.168.0.30::test /root/test

2010
03-30

最近论坛发生了一些问题,某用户A登录后变成了某用户B。此事在某阶段频繁发生。在排除了账号服务器的问题、程序自身问题后,在网上又发现类似现象:
淘宝账号诡异事件:
http://diybbs.it168.com/viewthread.php?tid=593134&extra=&page=1

我点到我自己的淘宝里面,进入了一个陌生女子的界面
不过这个bug只出现了一次
这个人我已经加上了,是个卖魔方的

卡巴斯基中文官网论坛账号诡异事件:
http://bbs.kaspersky.com.cn/viewthread.php?tid=15891

有登录论坛出现别人信息的会员请进这个问题,论坛上已经有不少会员碰到。管理员正在设法解决这个问题。凡是出现这种情况的,请在下面回帖,向管理员详细说明以下情况,帮助管理员更快解决问题
1、出现问题的频率和条件
2、进入论坛的方式(例如是收藏夹进入、直接输入网址进入……)
3、论坛登录名和密码的保存方式(每次输入,不保存;按照多少时间保存)
4、有无别人和你共用电脑
5、使用的浏览器,及其版本
6、有无采取清除缓存文件,清除Cookies的措施,效果如何?
7、除以上措施外,有没有采取过其他措施,效果如何?

GMAIL账号诡异事件:
http://www.gseeker.com/50226711/aecceaecgmaileaeieie_139265.php

看到这个标题,你可能会认为这是天方夜谭。但事实上,这是完全有可能发生的。某天,你在登录Gmail时,尽管你100%正确地输入了自己的用户名及密码,但出现在你眼前的却是别人的Gmail邮箱。如果你第一时间怀疑自己的眼睛,那你就冤枉它了。因为至少在科威特,部分Gmail用户本周就经历了这样的怪事。

通过这些事件的观察,和对一些论坛账号发生错误的账户主人的询问,基本确定了以下几个可能点:

1、缓存的错误。因为discuz使用cookie进行身份认证,而一些代理缓存了cookie头,造成一个cache多人使用造成的问题。http://bbs.chinaunix.net/viewthread.php?tid=837214

2、依然是缓存的问题。只不过这个缓存可以存在于cn大局域网,或者某些ISP,比如google的例子,或者某些地区的服务商,抑或……

您是通过什么网络上的淘宝,据我所知,移动的浙江固网宽带出现过类似的严重安全隐患。宽带网络运营商的问题很大(强制建立缓存代理服务器,缓存不该缓存的网页),网站的问题是其次的。或者说,在那种情况下,绝大多数网站用户都会出现“穿越”现象。
如果被你穿越的人和你斗处在同一城市,基本上就是这个原因了。

解决方法,且听下次分解。

如果您的网站出现类似问题,欢迎加我qq176300676一起收集数据样本进行分析

亦可加入msn讨论群 lampper@live.cn

django|python中图形验证码的实现

作者 : admin 于 2010年03月23日, 14:01:08
2010
03-23

python自己并没有带图型库,需要借助第三方的图形库来实现。原来习惯的就是php下的gd库,但网上搜索后普遍说gd的python接口不好用,又考虑php也即将抛弃dg,就选择了很多人推荐的 PIL(python image library) 库。

首先是安装此库,http://www.pythonware.com/products/pil/index.htm

选择自己相应版本和平台进行安装,安装文档写的还算清楚。

然后是代码实现:

  1. import Image, ImageDraw, ImageFont, md5, random,cStringIO,util
  2. def show(request):
  3.     im = Image.new('RGBA',(52,18),(50,50,50,50))
  4.     draw = ImageDraw.Draw(im)
  5.     rands = util.rand(4)  //自己写的一个取随机字符串的函数
  6.     draw.text((2,0), rands[0], font=ImageFont.truetype("tahomabd.TTF", random.randrange(12,18)), fill='white')
  7.     draw.text((14,0), rands[1], font=ImageFont.truetype("tahomabd.TTF", random.randrange(12,18)), fill='yellow')
  8.     draw.text((27,0), rands[2], font=ImageFont.truetype("tahomabd.TTF", random.randrange(12,18)), fill='yellow')
  9.     draw.text((40,0), rands[3], font=ImageFont.truetype("tahomabd.TTF", random.randrange(12,18)), fill='white') 
  10.     del draw
  11.     request.session['checkcode'] = rands
  12.     buf = cStringIO.StringIO()
  13.     im.save(buf, 'gif')
  14.     return HttpResponse(buf.getvalue(),'image/gif')

修改urls.py文件

  1. #check code
  2.     (r'^checkcode/','view.checkcode.show'),

再访问 http://127.0.0.1/checkcode/ 既可看到效果。

官方的手册写的比较惨,属于找什么没什么。顺便把网上找到的一个写的不错的文档传送来:http://nadiana.com/pil-tutorial-basic-advanced-drawing

django中关于静态文件那些事

作者 : admin 于 2010年03月20日, 17:10:12
2010
03-20

那个500错误快把我整死了,结果才分析可能django把静态文件当脚本处理了。

对于线上部署,完全可以用rewrite的方式进行解决。可本机调试,用的是自带的server,可搞死人了。

不过搜索后发现,django解决这个问题了,使用一个叫做 django.views.static.serve 的方法处理这些静态文件。

实现代码如下:

  1. 在/urls.py 文件中
  2. from os import path
  3. 底下增加
  4. if settings.DEBUG:
  5.     urlpatterns += patterns('', (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': path.join(path.dirname(__file__),'static')}), )
  6. </path>

然后,把所有静态文件放到 static 目录下,即可。

不过这种方式只适合开发环境,在线上的时候还是需要把这个问题交给httpserver

mongodb windows平台下的安装和使用

作者 : admin 于 2010年03月18日, 13:47:36
2010
03-18

平时还是windows用的多,所以很多测试也习惯用windows。

首先下载mongodb的windows编译版本:

http://www.mongodb.org/display/DOCS/Downloads http://downloads.mongodb.org/win32/mongodb-win32-i386-1.2.4.zip

解压后存放于 D:\mongodb

创建数据存放目录 D:\data

启动数据库 D:\mongodb\bin\mongod –dbpath D:\data

然后测试连接情况 D:\mongodb\bin\mongo

因为都是使用默认配置,如果出现以下回显,则证明安装成功

  1. MongoDB shell version: 1.2.4
  2. url: test
  3. connecting to: test
  4. type "exit" to exit
  5. type "help" for help
  6. >

进阶:为了平时使用方便,把mongod注册为系统服务

D:\mongodb\bin\mongod –dbpath D:\data –install #注册为系统服务

修改服务的端口 D:\mongodb\bin\mongod –dbpath D:\data –port 10001

其他配置 敲 mongod -h 就会出来

新年新气象

作者 : admin 于 2010年03月02日, 23:25:05
2010
03-2

1、千万别碰网游,除非你靠网游吃饭
2、多看书总是有用的,包括闲书
3、多交朋友,多帮助别人。感情是个银行,利息很大
4、学习依然是最重要的
5、虽然很俗,虽然通货膨胀,但人民币是最可爱的东西

头绪与条理

作者 : admin 于 2010年01月30日, 11:57:45
2010
01-30

没想到这两个词具体是什么意思,但这肯定是我的缺陷了。

前几天培训,被指出这个毛病,其实仔细回想,工作中何尝不是没有头绪条理,很多事情忙的团团转,搞的一团糟。

改正这个毛病其实用了很长时间,从期初开始做简单的文件记录,到后来大量的纸质手稿,到现在详细的记录和思维软件(mindmanage)的应用,对做事有了很多提高。

昨天晚上加班,自愿加班,去完成一个我所认为半天就能完成的工作,其实用了将近一天,实际工作时间也算半天吧。时间浪费了一大半,是因为以前已经实现的一个冗杂的逻辑又去想了一遍,结果还没想明白。后把之前的逻辑拿来,20分钟顺利结束了战斗。

非常勤恳的工作不是啥好事,漂亮得完成工作并把时间留给自己才是王道。

discuz论坛sessions表最终优化方案

作者 : admin 于 2010年01月17日, 23:00:29
2010
01-17

最近一直在折腾dz的sessions表优化。经过某群好友的各种方法提示和一些高数据量用户论坛的鼎力支持,总结以下优化方案。部分方案是在某些论坛正在使用的,部分方案是我发散思维总结的,没有经过大数据量和大负载下的应用,只是作为一个备选的方案,当然欢迎朋友们拿去实践。

1、分库

这个方法至少两三个注册用户百万级至千万级的论坛在使用。实施也比较简单,只需要把sessions表放在其他的库中,跟论坛主库分离,这样,就可以用多台服务器来分担论坛压力。sessions表查询的地方,如果直接查询,则连sessions表所在的库,如果是联查,则分别查询后,合并插叙结果。

2、砍功能

这个方法虽然不实用,但的确有效。仔细看看dz的一些sql语句,就知道砍掉某些功能摆脱sessions表的约束,性能会有多大的提高。砍功能,最终还是为了提升性能。但如果不砍功能又提升性能,才是终极目的。此方法适用于对某些统计功能要求不高的论坛使用。

3、memcached存储sessions,异步统计用户的在线数据

此方法其实还是砍掉了论坛的用户在线统计功能而独立开发一套统计系统。此思路来源于我们的统计服务器。如果统计服务器已经统计了部分信息,就没必要再去耗费大量的sql效率去进行统计。当时我们负责统计的吴同学正好也要开发一套针对不同系统的统计代码,我可以直接把要统计的数据提交给统计服务器,再由统计服务器返回统计结果。以异步的方式来统计,化解dz sessions表的性能瓶颈。而统计信息的异步提交,可以提交到本地数据库,可以提交到第三方统计系统,当然也可以根据需要独立开发一套小型统计系统。

方案3是本人原创方案,方案的修改代码在以下附件中: 异步session统计信息同步,欢迎大家使用。

由于dz的开发考虑的是大众市场,功能冗余代码逻辑复杂。但优化dz并不是那么的困难,而优化的思路,也是跟其他系统优化相似:mysql瓶颈。一个即将崩溃的系统,或者频繁崩溃的系统,是进行优化的最好示例:减少sql查询,提高sql语句查询效率。dz考虑大众市场,为了提高产品兼容性,并没有引入太多的第三方软件:比如memcached,bdb,ttserver等,虽然内部已经为主从预留了接口,但未见很明显的文档支持。
第三个方案优化的思路也很明显,减少sessions表的慢查询而改为memcached高速的数据存储,把统计功能做接口留出,此功能给第三方来做。这样sessions表的瓶颈即可消除。

 Page 4 of 30  « First  ... « 2  3  4  5  6 » ...  Last »