php读写内存

WEB2.0 jackxiang 2010-8-25 19:30
windows下,php.ini中取消 ;extension=php_shmop.dll 这行的行首分号,加载shmop扩展。
Linux下得加上编译参数。

测试代码如下:


<?php
//定义全局变量
$super = "hello world";

//申请100字节共享内存空间
$shm_id = shmop_open(0xff3, "c", 0644, 100);
if (!$shm_id)
{
echo "申请空间失败<br>";
}

//内容写入共享内存空间
if (shmop_write($shm_id, $super, 0))
{
echo "全局变量已经写入共享内存<br>";
}
else
{
echo "写入共享内存失败<br>";
}

//关闭共享内存空间
shmop_close($shm_id);
?>


<?php
//读100字节共享内存空间
$shm_id = shmop_open(0xff3, "a", 0644, 100);

//获取共享内存空间中的前11个字节的内容
//create.php中 $super 变量长度为11
$share = shmop_read($shm_id, 0, 11);

echo $share;

//关闭
shmop_close($shm_id);
?>


来源:http://ymsomix.blog.sohu.com/148799230.html
       Apache中 RewriteCond语句对于我来说一直是个难点,多次试图去把它搞明白,都没有结构,这次我终于算大概知道它的意思了。
   RewriteCond就像我们程序中的if语句一样,表示如果符合某个或某几个条件则执行RewriteCond下面紧邻的RewriteRule语句,这就是RewriteCond最原始、基础的功能,为了方便理解,下面来看看几个例子。
   RewriteEngine on
   RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla\/5\.0.*
   RewriteRule  index.php            index.m.php

   RewriteCond  %{HTTP_USER_AGENT}  ^Lynx.*
   RewriteRule  index.php            index.L.php

   RewriteRule  index.php            index.b.php
上面语句的作用是当你是用FF浏览器访问index.php这个文件的时候,会自动让你访问到index.m.php这个文件,当你是用一些移动终端访问的时候,会让你对index.php这个文件的访问实际访问的是index.L.php去,如果你是用其它的浏览器访问的时候,会让你跳到 index.b.php。在说形象一点,上面的语句就等同于程序里面的下面语句(依PHP语句为例):
        if($_SERVER['HTTP_USER_AGENT'] == 'Mozilla/5.0')
        {
              //跳转到对index.m.php的访问
        }
        else if($_SERVER['HTTP_USER_AGENT'] == 'Lynx')
        {
              //跳转到对index.L.php的访问
        }
        else
              //跳转到对index.b.php的访问

在看例2:
        RewriteCond %{HTTP_REFERER} (www.test.cn)
        RewriteRule (.*)$ test.php
上面语句的作用是如果你访问的上一个页面的主机地址是www.test.cn,则无论你当前访问的是哪个页面,都会跳转到对test.php的访问。

在看例三:
       RewriteCond %{REMOTE_HOST} ^host1.* [OR]
       RewriteCond %{REMOTE_HOST} ^host2.* [OR]
       RewriteCond %{REMOTE_HOST} ^host3.*
       RewriteRule (.*)$ test.php
上面语句的作用是如果你的地址是host1或host2或host3的时候,则就跳到对test.php。从这里可以看出,RewriteCond语句之间默认的是AND,如果想要OR,则要明确的写出来。

下面是自己收藏的一些有用的重写规则:
RewriteCond %{REQUEST_FILENAME} !-f   //如果文件存在,就直接访问文件,不进行下面的RewriteRule.(不是文件或文件不存在就执行重写)

RewriteCond %{REQUEST_FILENAME} !-d   //#如果目录存在就直接访问目录不进行RewriteRule

RewriteCond %{REQUEST_URI} !^.*(\.css|\.js|\.gif|\.png|\.jpg|\.jpeg)$ //#如果是这些后缀的文件,就直接访问文件,不进行Rewrite

来源:http://www.mx111.com/Article_View.asp?id=1347
Linux下把GBK编码的文件转化为utf-8编码的命令

iconv -f gbk -t utf8 in_file > out_file



conv -f gbk -t utf8 phone_samsung.php > phone_samsung2.php




find default -type d -exec mkdir -p utf/{} \;
find default -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} \;


这两行命令将default目录下的文件由GBK编码转换为UTF-8编码,目录结构不变,转码后的文件保存在utf/default目录下。

RewriteCond %{REQUEST_URI} !^/component.php$
RewriteRule /*.php  /component.php?key=jack


访问:component.php get变量会没有jack,而访问除开component.php的其他页面就有有Jack变量了。


这个也可以:
   RewriteCond %{REQUEST_URI} !^/component.php$
#   RewriteRule /*.php  /component.php?key=jack
   RewriteRule ^(.+?)\.php$  /component.php?key=jack


你可以把参数带上:


   RewriteCond %{REQUEST_URI} !^/component.php$
#   RewriteRule /*.php  /component.php?key=jack
   RewriteRule ^(.+?)\.php$  /component.php?key=$1


感谢:PHP高级编程组:我姓-->苏同学,呵呵!



备注:


<VirtualHost *:80>
ServerAdmin jackxiang@****.com
   DocumentRoot /usr/local/***/htdocs/***.act_view
   ServerName zzz.act.***.com
   AddDefaultCharset UTF-8

   RewriteEngine on
   RewriteCond %{REQUEST_URI} !^/component.php$
   RewriteRule /*.php  /component.php?key=jack
#   RewriteRule ^(.+?)\.php$  component.php?key=jack
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{QUERY_STRING} ^(.+)$
   RewriteRule ^/c/([a-zA-Z0-9]*)/([a-zA-Z0-9]*)$ /component.php
   RewriteRule ^/c/([a-zA-Z0-9]*)$ /component.php
   RewriteRule ^/c/(\w*)/(\w*) /component.php

   ErrorLog   /tmp/apache_****_act.log
   CustomLog /tmp/apache_****_act.clog common
   <Directory />
         Options Includes FollowSymLinks
         AllowOverride None
   </Directory>
</VirtualHost>



RewriteRule /*.php  /component.php?key=jack 可以,但是用:
RewriteRule ^(.+?)\.php$  /component.php?key=jack 后,没法访问:
domian.com/component/index.php/framemain  奇怪!!!

原来是少个斜杠,于是重新测试apache的urlrewrite正确的如下:


<VirtualHost *:80>
ServerAdmin jackxiang@***.com
   DocumentRoot /usr/local/tads/htdocs/****.act_view
   ServerName ****.act.**.com
   AddDefaultCharset UTF-8

   RewriteEngine on
   RewriteCond %{REQUEST_URI} !^/component.php$
   RewriteRule ^(.+?)\.php$  /component.php
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{QUERY_STRING} ^(.+)$
   RewriteRule ^/c/([a-zA-Z0-9]*)/([a-zA-Z0-9]*)$ /component.php
   RewriteRule ^/c/([a-zA-Z0-9]*)$ /component.php
   RewriteRule ^/c/(\w*)/(\w*) /component.php

   ErrorLog   /tmp/apache_****_act.log
   CustomLog /tmp/apache_****_act.clog common
   <Directory />
         Options Includes FollowSymLinks
         AllowOverride None
   </Directory>
</VirtualHost>


参考:http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mod_rewrite.html
必须参看:http://www.jackxiang.com/post/3439/


后面Bond:
RewriteCond %{REQUEST_URI} !^.*(\.css|\.js|\.gif|\.png|\.jpg|\.jpeg)$ //#如果是这些后缀的文件,就直接访问文件,不进行Rewrite
RewriteCond %{REQUEST_FILENAME} !-f   //如果文件存在,就直接访问文件,不进行下面的RewriteRule.(不是文件或文件不存在就执行重写)
RewriteEngine on
RewriteRule !\.(js|ico|txt|gif|jpg|png|css|html|xml)$ index.php
RewriteCond %{QUERY_STRING} ^(.+)$ 这个能解释一下吗?好几个,这个就是符合有query语句的情况。From:ianzhang(张文驰)


阅读全文
把2个串口用交叉线连起来,假设两个串口分别为/dev/ttyS0和/dev/ttyS1,则可以直接在一个shell执行cat /dev/ttyS0,然后在另外一个shell 执行echo "test." >/dev/ttyS1,如果两个串口都是好的,则执行cat /dev/ttyS0会输出'test."如果不行,则可用cat /proc/interrupts看一下是否产生了中断,也可用setserial查看串口设置

简单总结一些串口程序调试的方法
最近在做一个串口发送数据的程序,有时候在办公室写有时候在家里。在办公室都是用串口连接两台电脑来调试串口程序。因为电脑多,用一根线连起来,这边发那边收,收的一边xp里用串口调试助手,很方便。回到家就不那么方便了,以前只有一台笔记本,现在多了一台台式机。虽然机器多了,但是有时候又忘记把串口线带回来,也不方便。我的程序是linux qtembedded的,到现在用过几种其他方法调试串口数据发送,简单总结一下。

1.单机的时候。用ln -s output /dev/ttySAC2 把程序里用到的串口ttySAC2连到一个文件,写数据进去之后,再用xxd打开这个文件,看16进制输出。缺点是看结果慢一拍,好处是最简单。xxd是 linux命令行查看16进制的工具,可以在vi中调用,也可以直接在命令行使用。

2.两台机器连接,台式机向笔记本发送数据。那时候还不知道下面说的qtserialport-terminal。笔记本打开一个终端,用cat /dev/ttyUSB0|xxd输出接收到的数据,也是可以直接看到16进制输出的。但是似乎默认有缓存,不是每次发的数据都能及时显示出来。

3. 就是今天发现的方法。在virtualbox里装的xp,设置里enable serialport,选择host device,/dev/ttyS0。但是启动后找不到串口,自己手动添加一个,IRQ4,3F8,出来的是com3。(显示com1被使用,不知道原因)然后打开串口调试助手,在宿主机linux里运行程序,发送数据到/dev/ttyS0;xp里用串口调试助手就可以收到数据了。这样也不需要连线,一台机器就可以调试,马上可以看到接受的数据,也是个不错的办法。

另外,在Archlinux的aur里,有一个用qt和 qextserialport和多线程方式实现的qtserialport- terminal,和串口助手差不多。但是没有16进制显示,默认不能用ttyUSB,但是可以选择很多种字符编码。等有时间了,可以改一下,加上16进制和usb串口。 看看这个程序的源码,就可以很容易写出多线程的串口程序。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/alexxu_118/archive/2010/06/29/5701409.aspx
        人生不能光溜溜的来,再光溜溜的走,人的一生总要做点什么,才会实现更大的人生价值,在士兵突击里许三多的一句话,应该学会运用在生活中:不抛弃,不放弃,做有意义的事。什么叫爱自己,得有规划,如果你没有规划,每天虚度年华,那叫糟蹋自己。所以,一个真正爱自己的人是爱周围所有的人。学会爱自己,就能爱他人,因为爱他人,才能爱自己。
        当有一天你需要知道谁是最优秀的,你不要告诉别人你是最优秀的,你要学会告诉每一个人,他们是优秀的,你才能听到你才是优秀的。当你需要被人帮助的时候,你应该去帮助他人,当你需要被帮助,你
才会看到,有人去帮助你。这就是更高层次的哲学。
      练习好自己的文笔,练好讲话。改变自己的个性,不能太内向,无乱在什么情况下都能笑出来,人应该有一种抗压的能力,你不能太娇气,不能弱不禁风,你不能怕这怕那,
      你总应该有一种向上的力量。      在任何困难到来的时候告诉自己你能闯过去,你能做得到,你是一个优秀的人。弄清楚工具和玩具的本质区别。要役物而不是役于物。君子身非异也,善假于物也,学会使用好工具,吸收大量的知识,你才能成为成为一个有用的人,受人尊敬的人。贪恋否则就是玩物丧志,失去社会存在的意义和价值。
      一定要学会做计划,好好想想你最爱好什么,最喜欢什么,将来做什么,为自己的未来做一个计划,为未来的计划去努力,怎么样才能完成人生的目标,而不是随遇而安,在自己有限的时间里学一些自己不喜欢的事情,敢于重头再来,否则就是愧对自己后边更多的金色年华。。。让世界充满爱。
[eparator]
 webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便。

  1、适用系统:Linux

  2、编译安装:

引用wget http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz
tar zxvf webbench-1.5.tar.gz
cd webbench-1.5
make && make install

  3、使用:

引用webbench -c 500 -t 30 http://127.0.0.1/test.jpg
  参数说明:-c表示并发数,-t表示时间(秒)

  4、测试结果示例:

引用Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://127.0.0.1/test.jpg
500 clients, running 30 sec.

Speed=3230 pages/min, 11614212 bytes/sec.
Requests: 1615 susceed, 0 failed.

下面是用100个并发连接分别去压生产环境中同一负载均衡器VIP下、提供相同服务的两台服务器,一台为Nginx,另一台为Apache,Nginx每秒处理的请求数是Apache的两倍多,Nginx服务器的系统负载、CPU使用率远低于Apache:

  你可以将连接数开到10000~30000,去压Nginx和Apache上的phpinfo.php,这是用浏览器访问Nginx上的phpinfo.php一切正常,而访问Apache服务器的phpinfo.php,则是该页无法显示。4G内存的服务器,即使再优化,Apache也很难在“webbench -c 30000 -t 60 http://xxx.xxx.xxx.xxx/phpinfo.php”的压力情况下正常访问,而调整参数优化后的Nginx可以。

  webbench 下载地址:http://blog.s135.com/post/288/

  注意:webbench 做压力测试时,该软件自身也会消耗CPU和内存资源,为了测试准确,请将 webbench 安装在别的服务器上。

  测试结果:##### Nginx + PHP #####

引用[root@localhost webbench-1.5]# webbench -c 100 -t 30 http://192.168.1.21/phpinfo.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://192.168.1.21/phpinfo.php
100 clients, running 30 sec.

Speed=102450 pages/min, 16490596 bytes/sec.
Requests: 51225 susceed, 0 failed.

top - 14:06:13 up 27 days,   2:25,   2 users,   load average: 14.57, 9.89, 6.51
Tasks: 287 total,   4 running, 283 sleeping,   0 stopped,   0 zombie
Cpu(s): 49.9% us,   6.7% sy,   0.0% ni, 41.4% id,   1.1% wa,   0.1% hi,   0.8% si
Mem:   6230016k total,   2959468k used,   3270548k free,   635992k buffers
Swap:   2031608k total,     3696k used,   2027912k free,   1231444k cached

  测试结果:#####   Apache + PHP #####
引用[root@localhost webbench-1.5]# webbench -c 100 -t 30 http://192.168.1.27/phpinfo.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://192.168.1.27/phpinfo.php
100 clients, running 30 sec.

Speed=42184 pages/min, 31512914 bytes/sec.
Requests: 21092 susceed, 0 failed.

top - 14:06:20 up 27 days,   2:13,   2 users,   load average: 62.15, 26.36, 13.42
Tasks: 318 total,   7 running, 310 sleeping,   0 stopped,   1 zombie
Cpu(s): 80.4% us, 10.6% sy,   0.0% ni,   7.9% id,   0.1% wa,   0.1% hi,   0.9% si
Mem:   6230016k total,   3075948k used,   3154068k free,   379896k buffers
Swap:   2031608k total,     12592k used,   2019016k free,   1117868k cached


--------------------------------------------------------------------------------

  为什么Nginx的性能要比Apache高得多?这得益于Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(freebsd)网络I/O模型,而Apache则使用的是传统的select模型。目前Linux下能够承受高并发访问的Squid、Memcached都采用的是epoll网络I/O模型。

  处理大量的连接的读写,Apache所采用的select网络I/O模型非常低效。下面用一个比喻来解析Apache采用的select模型和Nginx采用的epoll模型进行之间的区别:

  假设你在大学读书,住的宿舍楼有很多间房间,你的朋友要来找你。select版宿管大妈就会带着你的朋友挨个房间去找,直到找到你为止。而epoll版宿管大妈会先记下每位同学的房间号,你的朋友来时,只需告诉你的朋友你住在哪个房间即可,不用亲自带着你的朋友满大楼找人。如果来了10000个人,都要找自己住这栋楼的同学时,select版和epoll版宿管大妈,谁的效率更高,不言自明。同理,在高并发服务器中,轮询I/O是最耗时间的操作之一,select和epoll的性能谁的性能更高,同样十分明了。

来源:http://hi.baidu.com/arongdy/blog/item/a7dab0511813c02c42a75b98.html

mysql非root启动解除文件句柄的1024限制的注意事项

问题描述:couldn't increase number of open files to more than 1024
/usr/sbin/mysqld: Can't open file: './xxxx/xxxx.frm' (errno: 24)

如果非root启动时不修改最大句柄数,启动日志就会出现:
: Can't open file: '.\database\certain_table.frm' (errno: 24)
查询原因:
[~]# perror 24
OS error code  24:  Too many open files
待到句柄数耗光时,就会出现:
导致mysql无法应答新连接。
规避方法:
在root下修改ulimit后(比如ulimit -HSn 16666 ),
不能"su -" 或者"exit"到普通用户, 需要用su 到普通用户,否则修改的ulimit无效,导致句柄还是会不够用。
关于修改可打开最大文件句柄数,针对不同的linux系统有不同的方案

阅读全文
Tags:
日常脚本习惯:

(1)所有字符串用引号引起来。比如grep abc> run.log,类似含有“>”等特殊符号的命令,如果不加引号,在执行时可能会带来不可预料的后果。 建议在输入参数时,先输入一对双引号,再返回来输入参数值,这样出错的可能性就小很多了。

    shell中各种引号的区别:

    1)双引号,也称为弱引号,如果参数是用双引号括起的话,Shell解释器会先扩展双引号里面元字符引导的变量,字符代表的意义。

        USER="selen";

        echo "$USER is my name."

        selen is my name.

    2)单引号,也称为强引号,在单引号里面的所有字符,包括元字符,都会当成没有特殊意义的字符。

        USER="selen";

        echo "$USER is my name."

        $USER is my name.

    3)反引号,将两个反引号之前的字符串作为命令执行,并在当前位置输出命令的标准输出。和 $()有相同的功能。

        lst=`pwd`

        echo $lst

        /usr/local/smsmt/sh

    4)一些例子

        #如何输出一个单引号

        echo ""

        echo \

        #如何输出一个双引号

        echo """

        echo "

        #单引号中如何输出变量的值,即单引号中如果还有一层单引号,可以开启变量的替换。

        USER="selen";

        echo $USER is my name.

        selen is my name.

(2)所有命令的参数数指定,尽量不要用默认,而是明确指出。比如使用ls -lrht想取到文件的修改时间,如果不指定时间格式的话,会使用本机默认的时间格式,在不同的机器,甚至不同的用户下不会不同的执行结果;最好加上如--time-style="full-iso"之类的格式限定参数。


关于rm操作的总结:
运维人员经常需要定期在后台删除一些东西,如日志、过期的数据等,这些都涉及到rm操作;
    进行rm操作有很强的风险,一定要慎之又慎,否则会造成很严重的后果,比如需要删除某个目录下的某些数据,
        你输入了rm /
        此时你手一抖或者无意识地敲到了回车,完了。。。
        更杯具的是,你是用root用户登陆的。。。


    为了降低风险,在rm操作时采用以下步骤:
    a、先用ls命令列出你所要删除的文件;
    b、再确认一遍所列文件是否全是需要删除的文件;
    c、确认完毕后,将命令的ls修改为rm,然后回车,完成删除操作;
    d、多输入几次ls命令,防止无意中按到向上箭头+回车,又一次杯具的上演;

    ps:在日常的运维工作中,一定不要先输入rm然后再输入路径,这样很容易造成误操作,切记;人不在,记得锁屏,并且主窗口

不要是O-secureCrt,否则也有出错的风险;能脚本例行化的,采用脚本例行化,以尽量规避认为操作的风险。

suse linux下没有eth0
ifconfig 看不到eth0
ifconfig -a 才能看到eth0
但是在/etc/sysconfig/network 里没有ifcfg-eth0!!!!!

你没启用eth0,
ifconfig -a eth0 up


也许你正在为SUSE Linux IP设置而发愁,也许你正在到处寻找SUSE Linux IP设置方法,来这里我来教你两种SUSE Linux IP设置方法。希望他会对你有所帮助。我们来一起交流,让我们SUSE Linux 的知识共同进步。

第一种SUSE Linux IP设置方法
ifconfig eth0 192.168.1.22 netmask 255.255.255.0 up
route add default gw 192.168.1.2

释义:
#IP配置,包括子网掩码,看情况修改eth0和192.168.1.22
#网关修改 ,看情况修改192.168.1.2


第二种SUSE Linux IP设置方法
在suse操作系统中每个网卡都有一个配置文件,在/etc/sysconfig/network/目录下。用root登录,编辑ifcfg-eth0-你的网卡的物理地址的那个文件:
把BOOTPROTO的赋值改成成static,也就是BOOTPROTO=static
然后增加如下内容:
IPADDR=192.168.1.110
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255


配置完后 要让它生效,就输入/etc/init.d/network restart就可以生效,注意suse9的网管配置是在/etc/sysconfig/network/目录下的 routes这个文件配置的。这样你就学会了SUSE Linux IP的两种设置方法了。


BOOTPROTO='dhcp'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR='192.168.1.110'
MTU=''
NAME='Realtek RTL8101E PCI Express Fast Ethernet controller'
NETMASK='255.255.255.0'
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='auto'
UNIQUE='rBUF.T0mVfVzGmv3'
USERCONTROL='no'
_nm_name='bus-pci-0000:02:00.0'


suse enterprise 10 kernel version:
Linux 2.6.16.60-0.21-smp i686

1.yast运行,启动网卡。

2.进入/etc/sysconfig/netwrok/,找对应网络文件。一般为ifcfg-eth*文件。

3.vi ifcfg-eth*

4.典型 ifcfg-eth0配置

BOOTPROTO='static'
BROADCAST='2.255.255.255'

IPADDR='2.2.2.123'
MTU=''
NETMASK='255.0.0.0'
NETWORK='2.0.0.0'
REMOTE_IPADDR=''
STARTMODE='onboot'
_nm_name='static-0'

5./etc/init.d/network start启动网络

6.临时ip: ifconfig eth0 2.2.2.123 up

7.终止和启动一个网卡:ifdown eth0 , ifup eth0

8.ifconfig -a 显示ip配置。



去大公司还是小公司工作?这个问题问大多数 IT 人都会选择前者。如果换一个问法,去大公司还是去初创公司(Startup)工作?或许有极小一部分人能改变一下决定。
阅读全文
   腾讯收购康盛创想有感作总结如下,可能倾注了些许的感情色彩,必定大学也玩过那个discuz的产品如uchome和那个论坛程序,但还是要不免写个三言两语,本Blog的文字内容仅代表个人观点,与其他任何组织、公司无关:

    

戴志康终于被Polyma给收编了,康盛创想终于纳入了Tencent军团。四位80后IT少年英豪因缘际会,走出了自己的阳关道,如今销声匿迹,IT江湖上将再无人提起高燃、茅侃侃、李想、戴志康,梦想遭现实消解些许悲伤的味道,抛弃感情的充分,回归商业的本质,或许这也是好事,识时务者为俊杰! --- Jackxiang  2010-08-24


技术,不是赚钱的决定条件



在中国的IT发展史上,在为自由、创新、挑战霸权而抗争的历程上,注定是一个悲剧,更多的是温文尔雅,含笑半步


Ps:老马可要小心啊,小马哥不出手则已,一出手就要人命,老沉了。。。

ab测试

WEB2.0 jackxiang 2010-8-24 16:05
D:\apmxe\apache22\bin>ab.exe -c 2 -n 4  -p emk_upload.request.txt -T multipart/form-data,boundary=---------------------------7da1cb115107c  -C Apache=1234 -H Accept-Encoding:gzip,deflate -v 2  http://appupload.qq.com/cgi-bin/emk_upload
背景:现在的notepad++保存文件时有时会存在这个问题,给PHP上传,有输出等,包括正则匹配等有一定影响,不可不防啊。
UTF-8(无BOM)和UTF-8这两个有什么区别呢?BOM是什么呀?
BOM: Byte Order Mark
UTF-8 BOM又叫UTF-8 签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支援UTF-16,UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行。
一般我用UTF-8无BOM格式
来自:http://tinypig.iteye.com/blog/557660

Notepad++的UTF-8无BOM格式什么意思:

膘哥在http://www.neatstudio.com/show-584-1.shtml 里面转载我的周报指点道,摘录如下:
最后它说的BOM问题,这就不太应该了。不过他的正则写得不错。我一直用editplus,文件选项里可是有一条:保存时始终去除BOM,就行了啦。用记事本,是会生成BOM的,微软的东西是差呀。。

我google了一下,其实可以使用EditPlus 将UTF-8 文件的BOM清除掉,打开EditPlus -> 工具 -> 配置用户工具 -> 文件,默认编码方式选择:UTF-8,UTF-8 标识选择:总是删除签名,最后保存参数设置。如图
点击在新窗口中浏览此图片
好像最新版本和上图不太一样,如下:
点击在新窗口中浏览此图片

如此,UTF-8 文件中令人讨厌的BOM 就可以被清除掉!

windows下查看:
windows用edit检查下
dos下cmd下输入命令 edit,然后拖动要查的文件到dos窗口里,再按下回车就能看到文件头里的bom了。
  看到据说是陈独秀写的《乳赋》,拿到现在按照审核标准来说,肯定是属于黄段子,是比超女、非诚、兽兽还要三俗,还要香艳的要封杀之列。


陈独秀不愧是北京大学的中文系教授和前朝秀才,能把色文写得如此优美,真是难为他老人家了。不象现在某些作家,用身体写作,还让人只看身体不看文字。陈之《乳赋》如下:

  
   乳者,奶也,妇人胸前之物。
  其数为二,左右称之。
  发于豆蔻,成于二八。
  白昼伏蛰,夜展光华。
  曰咪咪,曰波波,曰双峰,曰花房。
  从来美人必争地,自古英雄温柔乡。
  
  其色若何?深冬冰雪。
  其质若何?初夏新棉。
  其味若何?三春桃李。
  其态若何?秋波滟滟。
  
  动时,如兢兢玉兔。
  静时,如慵慵白鸽。
  高颠颠,肉颤颤,粉嫩嫩,水灵灵。
  夺男人魂魄,发女子骚情。
  
  俯我憔悴首,探你双玉峰。
  一如船入港,又如老还乡。
  除却一身寒风冷雨,投入万丈温暖海洋。
  深含,浅荡,沉醉,飞翔


点击在新窗口中浏览此图片



老陈确是性情中人,办<新青年>时听说很多激扬文字都是在八大胡同的床上完成的,北京当年的报纸上,曾刊登过陈独秀 “因争风抓伤某妓女下部”的消息。蔡元培的“进德会”曾为此处罚过陈独秀,陈独秀曾在风月场所因为一女子而与学生大打出手(因此失去了北大教习之位),1919年陈独秀因嫖娼被北大开除的,1920年却在上海创立了大家都知道的。这个诞生地,后来到了嘉兴南湖的游船上,这次会议,从上海转移到嘉兴的过程中,毛其实没有来嘉兴。


参加会务的人。每人五百大洋。这钱是共产国际出的,据说当时的五百大洋几乎可以在上海买别墅。当时的500大洋,值现在的很多很多了。所以,当年闹革命,很多人其实是不是冲着这钱去的?所以,后来一大代表有人投靠其他政党或者干脆投靠日本人,也在情理之中的。阿Q要求“同去”,还不是为了能与胡妈困觉?
来源:http://blog.sina.com.cn/s/blog_6226b91a0100l3ox.html?tj=1
AWK的字符串判断比较一定要用双引号,单引号不行,如下:


mysql -e "show processlist"|awk '/30207639/'
30207639        baige   192.168.111.61:5012     baige   Sleep   233             NULL


sub(/reg/,newsubstr,str)
只替换第一个匹配字符串

gsub(/reg/,newsubstr,str)
替换字符串str中所有的符合/reg/正则的子串替换为字符串newsubstr

index(str,substr);
返回子串substr在串str中的索引

length(str)
返回字符串的长度

match(str,/reg/)
如果在串str中找到正则/reg/匹配的串则返回出现的位置,未找到则返回0

split(str,array,sep)
使用分隔符sep把字符串分解成数组array

substr(str,position[,length])
返回str中从position开始的length个字符

tolower(str)
toupper(str)
把字符串进行大小写

来源:http://hi.baidu.com/tengteng2007/blog/item/6b4c1d089d4bcdd963d98664.html
如果是本地可以这样,新版本的会提示有安全问题,不让into outfile:
mysql -e  "select linkurl from jackxiang_mysql.boblog_links" > /tmp/linkurl.txt

mysql> select linkid,linkurl from boblog_links limit 12 into outfile "/tmp/bo-blog-url.txt";
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement


show variables like '%secure%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| require_secure_transport | OFF   |
| secure_auth              | ON    |
| secure_file_priv         | NULL  |
+--------------------------+-------+

mysql> set global secure_file_priv="/tmp";
ERROR 1238 (HY000): Variable 'secure_file_priv' is a read only variable

修改/etc/my.cnf里的变量:
[mysqld]
secure_file_priv = /data/backup/mysql

注意权限:
mkdir -p /data/backup/mysql
mysql> select linkid,linkurl from boblog_links limit 12 into outfile "/data/backup/mysql/bo-blog-url.txt";
ERROR 1 (HY000): Can't create/write to file '/data/backup/mysql/bo-blog-url.txt' (Errcode: 13 - Permission denied)
chown -R mysql:mysql /data/backup/mysql

重启Mysql:service mysqld restart

mysql> show variables like '%secure%';
+--------------------------+---------------------+
| Variable_name            | Value               |
+--------------------------+---------------------+
| require_secure_transport | OFF                 |
| secure_auth              | ON                  |
| secure_file_priv         | /data/backup/mysql/ |
+--------------------------+---------------------+
3 rows in set (0.00 sec)
#到对应的数据库里面执行导出命令:
mysql> select linkid,linkurl from boblog_links limit 12 into outfile "/data/backup/mysql/bo-blog-url.txt";
Query OK, 12 rows affected (0.00 sec)


今天有个网友问,在用mysqldump备份时候遇到1290的错误
下面是是我模拟他的报错信息
[root@potato Desktop]# mysqldump -uroot -proot -S /tmp/mysql.sock --tab=/data/mysql/mytest_3306/data/backup lala
Warning: Using a password on the command line interface can be insecure.
mysqldump: Got error: 1290: The MySQL server is running with the --secure-file-priv option so it cannot execute this statement when executing 'SELECT INTO OUTFILE'

可以很清楚地从提示看到是因为mysql服务启用了–secure-file-priv,所以才无法执行。
那么–secure-file-priv又是什么东东,应该如何解决才能是它可以备份呢?
--secure-file-priv=name :
Limit LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE() to files within specified directory

可以看到secure-file-priv参数是用来限制LOAD DATA, SELECT … OUTFILE, and LOAD_FILE()传到哪个指定目录的。

当secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出

当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下

当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制

查看数据库当前该参数的值
root@localhost:mysql.sock 00:14:52 [(none)]>show global variables like '%secure%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| secure_auth | ON |
| secure_file_priv | NULL |
+------------------+-------+
2 rows in set (0.00 sec)

清楚地看到secure_file_priv 的值是NULL,说明此时限制导入导出的
所以应该改变该参数
可是查看了mysql.cnf中居然没有对这个参数进行设定,就说明这个参数默认便是null
所以再mysql.cnf中的[mysqld]加入secure_file_priv =
再重启mysql服务
然后再查一下此时参数的值

root@localhost:mysql.sock 00:28:30 [(none)]>show global variables like '%secure%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| secure_auth | ON |
| secure_file_priv | |
+------------------+-------+
2 rows in set (0.00 sec)

已经是我们要的结果
开始进行导出
[root@potato Desktop]# mysqldump -uroot -proot -S /tmp/mysql.sock --tab=/data/mysql/mytest_3306/data/backup lala
Warning: Using a password on the command line interface can be insecure.
可以看到成功了

From:https://blog.csdn.net/qq_28921653/article/details/54174341
阅读全文
分页: 167/339 第一页 上页 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 下页 最后页 [ 显示模式: 摘要 | 列表 ]