May 23, 2009
FreeBSD 挂载U盘
"\u003cp\u003e确保内核中有如下项\ndevice scbus\ndevice da\ndevice cd\u003c/p\u003e\n\u003cp\u003e在GENERIC中默认都有,如果没有,请编译内核。\u003c/p\u003e\n\u003cp\u003e大多数U盘用的是FAT 文件系统,所以用\nmount -t msdos /dev/da0 /mnt\u003c/p\u003e\n\u003ch1 id=\"freebsd-umount-devda0\"\u003eFreeBSD# mount -t msdos /dev/da0 /mnt/Mp4/\nFreeBSD# cd /mnt/Mp4/\nFreeBSD# ls\n??.mp3 My love.mp3\n????.mp3 boulevard of broken dreams.mp3\n?????.mp3 data\n?????.mp3 someday.mp3\nBE-Girls Hold the line .mp3 take me to your heart.mp3\nBeautiful World.mp3 thats why you go away.mp3\nBlue Bird.mp3 you took my heart away.mp3\nI lay my love on you.mp3\nFreeBSD# cp *.mp3 /home/music/\nFreeBSD# …\u003c/h1\u003e"
May 22, 2009
FreeBSD常用命令110条
"\u003cp\u003e\u003cstrong\u003e01.查看网络流量\u003c/strong\u003e\na.systat -if 1 (1表示1s刷新屏幕一次)\nb.netstat 1\n# Traffic 流量 peak 峰值 average 平均值\n\u003cstrong\u003e02.查看硬盘信息\u003c/strong\u003e\ndiskinfo -vt /dev/ad0\ndisklable /dev/ad0 (分区信息)\ndisklable /dev/ad0s2\n\u003cstrong\u003e03.查看核心信息\u003c/strong\u003e\nvmstat 1\n**04.查看进程\n** top ps auxww ps -ef |grep xxx\n\u003cstrong\u003e05.查看硬盘详细分区信息&读写状况\u003c/strong\u003e\ngstat\n\u003cstrong\u003e06.sysctl sysctl -a 查看所有变量(/etc/sysctl.conf)\u003c/strong\u003e\nsysctl kern.maxproc 查看特定变量\nsysctl kern.maxfiles=5000 设置变量\n\u003cstrong\u003e07.查看磁盘空间使用情形 df 和 du\u003c/strong\u003e\n指令df用来查看整个档案系统的使用情形,\n如果您需要知道某个目录的使用情形用指令du。\ndf -h\ndu -h /etc\ndu -sh /etc\n-s 参数来省略指定目录下的子目录\n-h 表示使用GB、MB等易读的格式\n\u003cstrong\u003e08. …\u003c/strong\u003e\u003c/p\u003e"
May 22, 2009
FreeBSD中使用QUOTA(磁盘配额)来限制用户空间
"\u003cp\u003e虚拟主机中经常要限制用户空间的大小和文件的数量。这些限制在linux和FreeBSD中都是用QUOTA来实现的。这里我说下在FreeBSD下实现的方法;\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e开启\u003c/strong\u003e \u003cstrong\u003eQUOTA\u003c/strong\u003e \u003cstrong\u003e支持\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e首先需要修改内核加入对quota的支持\u003c/p\u003e\n\u003cp\u003emachine i386\u003c/p\u003e\n\u003cp\u003ecpu I686_CPU\u003c/p\u003e\n\u003cp\u003e#ident GENERIC\u003c/p\u003e\n\u003cp\u003eident CNOSvhost\u003c/p\u003e\n\u003cp\u003emaxusers 0\u003c/p\u003e\n\u003cp\u003eoptions QUOTA #就是这行了。\u003c/p\u003e\n\u003cp\u003e修改好后重新编译内核。\u003c/p\u003e\n\u003cp\u003e然后在/etc/rc.conf里加入:\u003c/p\u003e\n\u003cp\u003eenable_quotas=”YES”\u003c/p\u003e\n\u003cp\u003echeck_quotas=”YES”\u003c/p\u003e\n\u003cp\u003e这样你的系统就起用QUOTA了,你应当通过编辑/etc/fstab的某个文件系统的属性,加入QUOTA的支持。\u003c/p\u003e\n\u003cp\u003e下面的fstab文件就设置了在/pub文件系统上起用用户配额和组配额\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e# See the fstab(5) manual page for important information on automatic mounts\n\u003c/code\u003e\u003c/pre\u003e\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e# of network filesystems before modifying this file.\n\u003c/code\u003e\u003c/pre\u003e\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e# Device …\u003c/code\u003e\u003c/pre\u003e"
May 21, 2009
FireFox 3.5+ 已不再支持 -moz-opacity
"\u003cp\u003e安装了FireFox3.5之后,发现以前项目网页中有透明属性的一些DIV都不透明了。于是猜想,FireFox3.5难道不支持它自家的CSS透明属性-moz-opacity了?上网一查,果真如此。\n在 \u003ca href=\"https://developer.mozilla.org/En/CSS:-moz-opacity\"\u003ehttps://developer.mozilla.org/En/CSS:-moz-opacity\u003c/a\u003e 里说得很清楚了:\nNote: Firefox 3.5 and later do not support -moz-opacity. By now, you should be using simply opacity.\n现在都要改用opacity这个属性。\u003c/p\u003e\n\u003cp\u003e于是要设置一下透明度为60%的DIV就应该这样写了:\ndiv.transp { /* make the div translucent */\nopacity: 0.6; /* Firefox, Safari(WebKit), Opera)\nfilter: “alpha(opacity=60)”; /* IE 8 */\nfilter: alpha(opacity=60); /* IE 4-7 */ …\u003c/p\u003e"
May 21, 2009
addEventListener的参数说明
"\u003cp\u003e我想大家对这个函数的前两个参数已经很了解了吧,主要是第三个参数不很好理解。我查了一些资料,弄明白了这个问题,所以记录下来了。下面的内容,基本上是参考别人的。\u003c/p\u003e\n\u003cp\u003e第三个参数叫做useCapture,是一个boolean值,就是true or false,如果是rue的话就是浏览器会使用Capture方式,false的话是Bubbling,只有在特定状况下才会有影响,通常建议是false,而会有影响的情形是目标元素(target element)有父元素(ancestor element),而且也有同样的事件对应函数,我想,看图比较清楚。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/wp-content/uploads/2009/05/f781ff0f5563e6386159f31f.jpg\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2009/05/f781ff0f5563e6386159f31f.jpg\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e像這張圖所顯示的,我的範例有兩層div元素,而且都設定有click事件,一般來說,如果我在內層藍色的元素上click不只會觸發藍色元素的click事件,還會同時觸發紅色元素的click事件,而useCapture這個參數就是在控制這時候兩個click事件的先後順序。如果是false,那就會使用bubbling,他是從內而外的流程,所以會先執行藍色元素的click事件再執行紅色元素的click事件,如果是true,那就是capture,和bubbling相 …\u003c/p\u003e"
May 21, 2009
attachEvent与addEventListener区别
"\u003cp\u003e适应的浏览器版本不同,同时在使用的过程中要注意\nattachEvent方法 按钮onclick\naddEventListener方法 按钮click\u003c/p\u003e\n\u003cp\u003e有关addEventListener函数的相关参数 \u003ca href=\"/index.php/archives/1429\"\u003e请点击这里查看\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e两者使用的原理:可对执行的优先级不一样,下面实例讲解如下:\nattachEvent方法,为某一事件附加其它的处理事件。(不支持Mozilla系列)\u003c/p\u003e\n\u003cp\u003eaddEventListener方法 用于 Mozilla系列\u003c/p\u003e\n\u003cp\u003e举例: document.getElementById(“btn”).onclick = method1;\ndocument.getElementById(“btn”).onclick = method2;\ndocument.getElementById(“btn”).onclick = method3;如果这样写,那么将会只有medhot3被执行\u003c/p\u003e\n\u003cp\u003e写成这样:\nvar btn1Obj = document.getElementById(“btn1”); //object.attachEvent(event,function); …\u003c/p\u003e"
May 20, 2009
如何记录mysql慢查询sql日志
"\u003cp\u003e修改my.cnf的mysqld部分:\nlong_query_time = 1 //定义慢查询的时间1表示1秒\n–log-slow-queries[=file_name] //记录慢查询到日志文件\n–log-queries-not-using-indexes //将没使用索引的sql记录到日志文件\n实例:\n[mysqld]\nlong_query_time = 1\nlog-slow-queries = /usr/local/mysql5.0.40/var/slow_query.log\nlog-queries-not-using-indexes = true\u003c/p\u003e\n\u003cp\u003e“too many connections”找不到问题所在,后来发现打开mysql的慢查询会有很大的帮助就搞了一个.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e打开MySQL慢查询\u003c/strong\u003e\nMySQL慢查询记录日志对于跟踪PHP+MySQL体系下的MySQL负载调优问题很有用处,比如安装了很多Discuz!插件的用户,这样可以大概排查出那些插件有代码问题。其实启用MySQL的慢查询日志很简单,只需要在MySQL的配置文件里添 …\u003c/p\u003e"
May 20, 2009
mysql优化-缓存篇
"\u003cp\u003e在整体的系统运行过程中,数据库服务器 MySQL 的压力是最大的,不仅占用很多的内存和 cpu 资源,而且占用着大部分的磁盘 io 资源,连 PHP 的官方都在声称,说 PHP 脚本 80% 的时间都在等待 MySQL 查询返回的结果。由此可见,提高系统的负载能力,降低 MySQL 的资源消耗迫在眉睫。\n**1、页面缓存功能:\n** 页面缓存功能降低MySQL的资源消耗的(系统本身就已经考虑,采用生成HTML页面,大大降低了数据库的压力)。\n\u003cstrong\u003e2、mysql服务器的优化\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e2.1、修改全站搜索\n修改my.ini(my.cnf) ,在 [mysqld] 后面加入一行“ft_min_word_len=1”,然后重启Mysql,再登录网站后台(模块管理-\u0026gt;全站搜索)重建全文索引。\n2.2、记录慢查询sql语句,修改my.ini(my.cnf),添加如下代码:\u003c/p\u003e\n\u003cp\u003e#log-slow-queries\nlong_query_time = 1 #是指执行超过多久的 sql 会被 log 下来\nlog-slow-queries = E:/wamp/logs/slow.log #设置把日志写在那里,可以 …\u003c/p\u003e"
May 19, 2009
Apache 的信息查看模块——Server-Status
"\u003cp\u003e前提:启用httpd.conf配置文件里的两个模块:|\n\u003cstrong\u003eLoadModule status_module modules/mod_status.so\nLoadModule info_module modules/mod_info.so\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e本文我们将讨论使用 mod_status 和 mod_info to 来告诉你目前服务器的工作情况\n\u003cstrong\u003e我可以得到什么样的信息?\u003c/strong\u003e\n使用 mod_status,你可以知道谁在你的服务器上看些什么东西,以及有多少人连在Web 服务器上。还有其他可能你的客户不关心的信息,但是对于你,一个站点管理员来说,却是十分有用的信息。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e客户喜欢这些资料\u003c/strong\u003e\n我不知道你的客户都是怎样的人物,但是我的客户喜欢我提供的信息。每天一次的信息还不够,因为到一天结束时才知道就太晚了。所以他们喜欢知道现在正在发生的事情。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003emod_info 和 mod_status\u003c/strong\u003e\n这两个模块可以提供十分有用的信息,而且十分方便。\nmod_status 能准确地告诉你,你的服务器正在“想”什么。你可以知道有哪些人在浏览您的网站,有多少子进程在运行,以及这些进程在干吗。\u003c/p\u003e\n\u003cp\u003e如果你使用缺省方法安装的 Apache 的 …\u003c/p\u003e"
May 19, 2009
解决win环境下Apache占用大量内存的问题
"\u003cp\u003e我有个服务是在windows下的Apache2提供的。访问量不是很大,隔4、5天竟然停止服务,调查发现Apache2的进程httpd.exe占用内存达到了1.5G。在网上找到如下解决办法。\u003c/p\u003e\n\u003cp\u003e用记事本打开apache2\\conf\\httpd.conf,查找MaxRequestsPerChild,将MaxRequestsPerChild 0改成MaxRequestsPerChild 50即可。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e原因是:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e 通常在“Windows任务管理器-进程”中可以看到两个apache.exe进程,一个是父进程、一个是子进程,父进程接到访问请求后,将请 求交由子进程处理。MaxRequestsPerChild这个指令设定一个独立的子进程将能处理的请求数量。在处理 “MaxRequestsPerChild 数字”个请求之后,子进程将会被父进程终止,这时候子进程占用的内存就会释放,如果再有访问请求,父进程会重新产生子进程进行处理。\u003c/p\u003e\n\u003cp\u003e 如果MaxRequestsPerChild缺省设为0(无限)或较大的数字(例如10000以上)可以使每个子进程处理更多的请求,不会因为 不断终止、启动子进程降低访问效率, …\u003c/p\u003e"
May 19, 2009
windows下nginx-0.7.10+php-5.2.6+fastcgi安装日志
"\u003cp\u003e最近心里有点痒,打算怀下旧,搞个php玩玩。找了几台服务器想装个php,虽然是举手之劳,但是总觉得有点不方便。另外家里的宽带总被占线,所以在服务器上做测试那也比较痛苦。\u003c/p\u003e\n\u003cp\u003e所以就想在本机弄个,记得以前有个apache php mysql的整合安装版,这可是个好东西,如果有人问我怎么在windows装php啊,我顺口就告诉他找这个,的确可以省不少力气。\u003c/p\u003e\n\u003cp\u003e不过今天我就不想用这古老的玩意装机了,虽然这东西装得是快,不过我已经不怎么记得起apache的配置怎么写,甚至有点厌恶写那配置。\u003c/p\u003e\n\u003cp\u003e于是我下了个nginx的windows版,然后再找个php的windows版,在http://www.kevinworthington.com/category/computers/nginx/,下完后先装nginx,没什么复杂,启动,在浏览器输入http://127.0.0.1,没有反应,看一下netstat -an,发现貌似80端口存在,估计这个端口不是nginx占用的,于是关掉所有开启的程序,再启动,再刷新,就可以看到有一个测试页出现了。\u003c/p\u003e\n\u003cp\u003e这样算是弄完了一个东西,接下来装php吧,先把它解压到d盘,放 …\u003c/p\u003e"
May 16, 2009
如何根据rowid获取extent_id
"\u003cp\u003e我们知道,rowid是由四部分组成的,分别是data_object_id,file_id,block_number和row_number,通过oracle提供的dbms_rowid包可以很方便的将一串rowid解析出上述四部分的内容。然后根据这些信息,则可以获取其extent_id。\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eSYS@datac\u0026gt;declare\n 2 v_block_id number;\n 3 v_file_id number;\n 4 v_object_id number;\n 5 v_extent_id number;\n 6 v_object_name varchar2(30);\n 7 v_owner varchar2(30);\n 8 v_rowid varchar2(20):=\u0026#39;AAACrKAAXAAAAzUAAH\u0026#39;;\n 9 begin\n 10 select dbms_rowid.ROWID_BLOCK_NUMBER(v_rowid),\n 11 dbms_rowid.ROWID_RELATIVE_FNO(v_rowid),\n 12 …\u003c/code\u003e\u003c/pre\u003e"
May 16, 2009
使用MySQL Proxy和MySQL Replication实现读写分离
"\u003cp\u003e\u003ca href=\"http://www.ningoo.net/html/2007/mysql_replication_configuration.html\"\u003eMySQL Replication\u003c/a\u003e 可以将master的数据复制分布到多个slave上,然后可以利用slave来分担master的读压力。那么对于前台应用来说,就要考虑如何将读的压力分布到多个slave上。如果每个应用都需要来实现读写分离的算法,一则成本太高,二来如果slave增加更多的机器,应用就要随之修改。明显的,如果在应用和数据库间加一个专门用于实现读写分离的中间层,则整个系统的架构拥有更好的扩展性。\u003c/p\u003e\n\u003cp\u003eMySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用 \u003ca href=\"http://www.lua.org/\"\u003elua脚本\u003c/a\u003e,可以实现复杂的连接控制和过滤,从而实现读写分离和负载平衡。对于应用来说,MySQL Proxy是完全透明的,应用则只需要连接到MySQL Proxy的监听端口即可。当然,这样proxy机器可能成为单点失效,但完全可以使用多个proxy机器做为冗余,在应用服务器的连接池配置中配置到多个proxy的连接参数即可。\u003c/p\u003e\n\u003cp\u003e安装教程请参考: \u003ca href=\"http://blog.haohtml.com/archives/9465\"\u003ehttp://blog.haohtml.com/archives/9465\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/wp-content/uploads/2009/05/lim98ihh.png\"\u003e\u003cimg src=\"https://blogstatic.haohtml.com//uploads/2023/09/lim98ihh.png\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://forge.mysql.com/wiki/MySQL_Proxy\"\u003eMySQL …\u003c/a\u003e\u003c/p\u003e"
May 16, 2009
MySQL Proxy工作机制浅析
"\u003cp\u003eMySQL Proxy处于客户端应用程序和MySQL服务器之间,通过截断、改变并转发客户端和后端数据库之间的通信来实现其功能,这和\u003cstrong\u003eWinGate\u003c/strong\u003e之类的网络代理服务器的基本思想是一样的。代理服务器是和TCP/IP协议打交道,而要理解MySQL Proxy的工作机制,同样要清楚MySQL客户端和服务器之间的通信协议,\u003cstrong\u003eMySQL Protocol\u003c/strong\u003e包括认证和查询两个基本过程:\u003c/p\u003e\n\u003cp\u003e认证过程包括:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e客户端向服务器发起连接请求\u003c/li\u003e\n\u003cli\u003e服务器向客户端发送握手信息\u003c/li\u003e\n\u003cli\u003e客户端向服务器发送认证请求\u003c/li\u003e\n\u003cli\u003e服务器向客户端发送认证结果\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e如果认证通过,则进入查询过程:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e客户端向服务器发起查询请求\u003c/li\u003e\n\u003cli\u003e服务器向客户端返回查询结果\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e当然,这只是一个粗略的描述,每个过程中发送的包都是有固定格式的,想详细了解MySQL Protocol的同学,可以去 \u003ca href=\"http://forge.mysql.com/wiki/MySQL_Internals_ClientServer_Protocol\"\u003e这里\u003c/a\u003e 看看。MySQL Proxy要做的,就是介入协议的各个过程。首先MySQL Proxy以服务器的身份接受客户端请求,根据配置对这些请求进行分析处理,然后以客户端的身份转发给相应的后端数据库服务器,再接受服务器的信息,返回给客户端。所以MySQL Proxy需要同时实现客户端和服务 …\u003c/p\u003e"
May 16, 2009
MySQL DBA 管理 常用 命令
"\u003cp\u003e虽然自己不是DBA,但是作为一个程序员,多多少少,应该了解一些数据库方面的东西,并不能只关心程序,不考虑数据库,看到一篇文章,就先转过来,也许以后自己哪天会用到。\u003c/p\u003e\n\u003cp\u003e查看mysql的某个选项\nshow variables like ‘%VAR_NAME%’;\u003c/p\u003e\n\u003cp\u003eselect @@VAR_NAME;\u003c/p\u003e\n\u003cp\u003e 在Linux下管理MySQL数据库的时候总有一些很紧急的情况,发现数据库突然变得压力很大了,那么作为一个DBA,也许需要一些常用的手段或者说命令去分析问题出现在哪里,然后解决:\u003c/p\u003e\n\u003cp\u003e数据库突然产生压力时查看正在查询的SQL:(如果这里内容太多表示并发执行的SQL过多,或许数据库堵塞了,会越来越慢,正常情况下这里应该很少有东西的,也就是连接都在Sleep状态)\n/usr/local/mysql/bin/mysql -uroot -ppassword databaseName -e “show full processlist” | grep -v Sleep\u003c/p\u003e\n\u003cp\u003e正在运行的SQL太多了,看不过来,那需要排序了,看持续执行时间最长的那些SQL:\n/usr/local/mysql/bin/mysql …\u003c/p\u003e"