zoukankan      html  css  js  c++  java
  • 有用的linux操作命令

    ======================================================
    
    rdesktop 192.168.0.116 -u administrator  -g 800x576
    
    rdesktop 119.191.58.75 -u administrator  -g 800x576
    
    rdesktop gl.lt56.net -u administrator  -g 800x576
    =========================================================
    
    1.
    定时采集功能
    
    定时访问aaa_caiji_huoqu.php 他远程访问getdata_web.asp(此文件能够异步提交到aaa_caiji_put_notiaozhuan.php)
    
    screen -S dingshi
    cd /home/wwwroot/56.souwf.com/
    ./dingshi_getdata.sh
    
    
    2.
    定时合并功能
    
    screen -S hebing
    cd /home/wwwroot/56.souwf.com/
    ./shstart_hebing.sh
    或者
    ./suoyin_hebing.sh
    
    而suoyin_addwuliu.sh 不用 因为已经放到开机里头去了
    
    
    ! 注意 注意 注意 手动合并索引数据库
    
    cd /home/wwwroot/56.souwf.com/
    ./hebing_once.sh
    
    
    /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/lovelover.conf wuliu --rotate
    
    
    
    重启定时
    /etc/init.d/crond restart  
     
    /sbin/service crond restart
    ==================================================
    
    
    查看系统tcp连接中各个状态的连接数。
     
    netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
    查看和本机80端口建立连接并状态在established的所有ip
     
    
    netstat -an |grep 802 |grep ESTA |awk '{print$5 "\n"}' |awk 'BEGIN {FS=":"} {print $1 "\n"}' |sort |uniq
    
    
    输出每个ip的连接数,以及总的各个状态的连接数。
     
    
    netstat -n | awk '/^tcp/ {n=split($(NF-1),array,":");if(n<=2)++S[array[(1)]];else++S[array[(4)]];++s[$NF];++N} END {for(a in S){printf("%-20s %s\n", a, S[a]);++I}printf("%-20s %s\n","TOTAL_IP",I);for(a in s) printf("%-20s %s\n",a, s[a]);printf("%-20s %s\n","TOTAL_LINK",N);}' 
    
    
    netstat -nat|grep -i "802"|wc -l  查看IP
    
    netstat -nat|grep -i "801"|wc -l
    
    netstat -nat|grep -i "80"|wc -l
    
    每次开机后 需要运行的命令 
    
    ==================================================
    ==================================================
    
    
    ==================================================
    查看几根内存条 
    
    dmidecode |grep -A16 "Memory Device$"
    或
    dmidecode -t memory
    
    dmidecode -t 可以看到 可以显示的相关信息
    
    
    
    全选 删除
    
    dG
    
    wu423 4231192
     
    js 输出 
    
    <div id="test"></div>
    
    alert(document.getElementById("test").innerHTML);
    
    
    tar czvf aa.tar.gz aa
    
    
    vi /usr/local/nginx/conf/vhost/www.jbtxyq.com.conf                                                                                                                                                                                                                                                                                                                                                                        
    
    
    不让他关闭 显示屏 setterm -blank 0
    
    
    开机自动加载命令: vi /etc/rc.local
    
    
    vi /etc/sysconfig/iptables
    
    cd /usr/local/nginx/conf/vhost
    
    
    
    56.souwf.com.conf
    
    ./configure --with-php-config=/usr/local/php/bin/php-config
     
    dos2unix myshell.sh
     
    
    解决问题:
    
    首先,
    
    vi /usr/local/php/etc/php-fpm.conf
     
    ps -aux
     
    /home/wwwroot/56.souwf.com/sha.sh 
     
    killall php 杀死所有php的守护进程
    
    重新启动
    
    /etc/init.d/crond restart 
    
    定时操作 编写一个脚本:
    
    #!/bin/sh
    while [ 1 ]
    do
    echo "start index addwuliu!";
    /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/lovelover.conf addwuliu --rotate
    sleep 5
    done
    
    开机自动运行命令:
    
    vi /etc/rc.d/rc.local
    
    
    
    定时操作 用系统自带的方法:
    
    vi /etc/crontab
    */1 * * * * root sh  /home/wwwroot/56.souwf.com/sha.sh 
    
    
    需要执行命令:useradd -d / -s /sbin/nologin 321liang 添加上帐号指定好ftp帐号的根目录,再执行:passwd 321liang 设置上密码,登录就可以了。
    
    useradd -d /home/wwwroot/56.souwf.com/ftpzhongzhuan -s /sbin/nologin liulei
    
    
     启动 memcached
    
     
    5 启动
    # /usr/bin/memcached -d -m 64 -u root -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid 
    
    参数说明: 
    -d 启动为守护进程 
    -m <num> 分配给Memcached使用的内存数量,单位是MB,默认为64MB 
    -u <username> 运行Memcached的用户,仅当作为root运行时 
    -l <ip_addr> 监听的服务器IP地址,默认为环境变量INDRR_ANY的值 
    -p <num> 设置Memcached监听的端口,最好是1024以上的端口 
    -c <num> 设置最大并发连接数,默认为1024 
    -P <file> 设置保存Memcached的pid文件,与-d选择同时使用 
     
      
    
    phpmyadmin出错
    
    
    要把你安装的PHP目录的temp目录下的子文件全部删除即可
    
    
    curl "http://192.168.152.129:1218/?name=qiuxu&opt=put&data=lovelovelover qiuxuxiuqu&auth=mypass123"
    
    http://192.168.152.129:1218/?name=qiuxu&opt=put&data=lovelovelover qiuxuxiuqu&auth=mypass123
    
    http://192.168.152.129:1218/?name=qiuxu&opt=get&auth=mypass123
    
    
     
    
    
    查看进程为 ps 或者 ps-A
    
    
    =========== 本地的  =======
    
    chmod -R 777 /home/wwwroot/*
    
    cd /home/wwwroot/
    ulimit -SHn 65535 
    httpsqs -d -p 1218 -x /data0/queue
    
    nohup /usr/local/php/bin/php /home/wwwroot/aaa_select_shouhu.php 2>&1 > /dev/null &
    nohup /usr/local/php/bin/php /home/wwwroot/aaa_add_shouhu.php 2>&1 > /dev/null &
    
    
    nohup /usr/local/php/bin/php /home/wwwroot/aaa_edit_shouhu.php 2>&1 > /dev/null &
    nohup /usr/local/php/bin/php /home/wwwroot/aaa_delete_shouhu.php 2>&1 > /dev/null &
    
    ============== 56.souwf.com:801 网上的 ================= 
    
    chmod -R 777 /home/wwwroot/56.souwf.com/*
    cd /home/wwwroot/56.souwf.com/
    ulimit -SHn 65535 
    httpsqs -d -p 1218 -x /data0/queue
    
    
    chmod -R 755 /home/wwwroot/phpmyadmin
    
    *********** 开机启动 维护进程 ********************
    
    ./shstart.sh          
    ./shstart_add.sh
    ./shstart_dantiao.sh
    ./shstart_search.sh
    ./shstart_first.sh
    
    
    
    ./shstart_caiji.sh 采集来
    
    ./shstart_gyc.sh  送出去
    
    
    
    
    
    
    
    ./shstart_keywords.sh
    
    ./shstart_old.sh
    
    ./shstart_tj.sh
    
    ./shstart_tj_search.sh
    
    ./shstart_user.sh
    
    
    
    *********** 维护进程 ********************
    
    nohup /usr/local/php/bin/php /home/wwwroot/56.souwf.com/aaa_dantiao_shouhu.php 2>&1 > /dev/null &          //单条 只负责更新内存信息 保持显示为20条
    
    nohup /usr/local/php/bin/php /home/wwwroot/56.souwf.com/aaa_search_shouhu.php 2>&1 > /dev/null &           //搜索  
    
    nohup /usr/local/php/bin/php /home/wwwroot/56.souwf.com/aaa_first_shouhu.php 2>&1 > /dev/null &          //如果 重启机器后 出现内存为空 负责从数据库查出20条
    
     
    
    nohup /usr/local/php/bin/php /home/wwwroot/56.souwf.com/aaa_select_shouhu.php 2>&1 > /dev/null &           //显示 负责查询第几页的信息 
    
    nohup /usr/local/php/bin/php /home/wwwroot/56.souwf.com/aaa_add_shouhu.php 2>&1 > /dev/null &    //添加  将数据插入数据库,发送查询信息到dantiao 队列
    
    
    
    nohup /usr/local/php/bin/php /home/wwwroot/56.souwf.com/aaa_keywords_shouhu.php 2>&1 > /dev/null &    //添加  将常用关键词插入数据库
    
    nohup /usr/local/php/bin/php /home/wwwroot/56.souwf.com/aaa_old_shouhu.php 2>&1 > /dev/null &    //添加  将历史记录插入数据库
    
    
    nohup /usr/local/php/bin/php /home/wwwroot/56.souwf.com/aaa_caiji_shouhu.php 2>&1 > /dev/null &      //采集  将数据先处理查出城市ID 插入数据库,发送查询信息到dantiao 队列
    
    nohup /usr/local/php/bin/php /home/wwwroot/56.souwf.com/aaa_caiji.php 2>&1 > /dev/null &  定时刷采集页面 
    
    
    nohup /usr/local/php/bin/php /home/wwwroot/56.souwf.com/aaa_tj_shouhu.php 2>&1 > /dev/null &      //统计当前城市信息条数 
    
    
    nohup /usr/local/php/bin/php /home/wwwroot/56.souwf.com/aaa_tj_search_shouhu.php 2>&1 > /dev/null &      //统计当前城市 搜索结果 信息条数 
    
    nohup /usr/local/php/bin/php /home/wwwroot/56.souwf.com/aaa_user_shouhu.php 2>&1 > /dev/null &      //在线用户统计 
    
    
    nohup /usr/local/php/bin/php /home/wwwroot/56.souwf.com/aaa_gyc_shouhu.php 2>&1 > /dev/null &  把本系统用户发布的信息 送出去 
    
    
    -------------------------------------------------------------------------------------------------------
    
    【启动coreseek】
    
    /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/lovelover.conf --pidfile 
    
    
    【停止coreseek】
    
    /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/lovelover.conf --stop
    
    
    【启动httpcws】
    
    
    
    cd /usr/local/httpcws-1.0.0-i386-bin/
    
    
    ulimit -SHn 65535
    
    /usr/local/httpcws-1.0.0-i386-bin/httpcws -d -x /usr/local/httpcws-1.0.0-i386-bin/dict/
    
    
    
    【索引coreseek】
    
    注意 索引的时候把配置文件改成127.0.0.1
    
    /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/lovelover.conf --all    ##--all表示全部索引 开始时索引
     
    /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/lovelover.conf --rotate --all  ##如要已启动服务,要更新索引,请使用
     
    /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/lovelover.conf hnld --rotate
    
    
    
    
    
    /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/lovelover.conf addwuliu --rotate #只更新addwuliu
    
    /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/lovelover.conf wuliu --rotate #只更新wuliu
    
    
    /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/lovelover.conf --merge wuliu addwuliu --rotate   #合并 wuliu addwuliu 这两个
    
     
    ---------------------------------------------------------------------------------------------------------
    /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/lovelover.conf --merge baddown addwuliu --rotate 
    
    /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/lovelover.conf baddown --rotate
    
    
    每分钟执行一次:*/1 * * * * (加可执行脚本)
    
    每10秒执行一次:*:10 * * * * (加可执行脚本)
    
    看明白了,每分钟执行和每10秒执行的格式区别。
    
    
    
    */1 * * * * root sh /home/wwwroot/56.souwf.com/build_addwuliu_index.sh
    
    */1 * * * * echo `date`" ljn" >> /home/wwwroot/56.souwf.com/ceshi_shuchu.txt
    
    1-59 * * * * echo `date`" ljn" >> /opt/lijie/lj.txt
    
    1-59 * * * * root sh /home/wwwroot/56.souwf.com/build_addwuliu_index.sh
    
    
    
     
    
    
    
    
    (2)crontab
    
      cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
    
      /sbin/service crond start //启动服务
    
      /sbin/service crond stop //关闭服务
    
      /sbin/service crond restart //重启服务
    
      /sbin/service crond reload //重新载入配置
    
      /sbin/service crond status //查看服务状态
    
      你也可以将这个服务在系统启 动的时候自动启动:
    
      在/etc/rc.d/rc.local这个脚本的末尾加上:
    
      /sbin/service crond start
    
      现在Cron这个服务已经在进程里面了,我们就可以用这个服务了,Cron服务提供以下几种接口供大家使用:
    
      1、直接用crontab命 令编辑
    
      cron服务提供 crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
    
      crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
    
      crontab -l //列出某个用户cron服务的详细内容
    
      crontab -r //删除某个用户的cron服务
    
      crontab -e //编辑某个用户的cron服务
    
      比如说root查看自己的cron设置:crontab -u root -l
    
      再例 如,root想删除fred的cron设置:crontab -u fred -r
    
      基本格式 : 
    
      *  *  *  *  *  command
    
    
      分  时  日  月  周  命令
    
      第1列表示分钟1~59 每分钟用*或者 */1表示
    
      第2列表示小时1~23(0表示0点)
    
      第3列表示日期1~31
    
      第4列表示月份1~12
    
      第5列标识号星期0~6(0表示星期天)
    
      第6列要运行的命令
    
      crontab文件的一些例子:
    
      #每晚的21:30重启apache。
    
      30 21 * * * /usr/local/etc/rc.d/lighttpd restart
    
      #每月1、10、22日
    
      45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
    
      #每天早上6点10分
    
      10 6 * * * date
    
      #每两个小时
    
      0 */2 * * * date
    
      #晚上11点到早上8点之间每两个小时,早上8点
    
      0 23-7/2,8 * * * date
    
      #每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
    
      0 11 4 * mon-wed date
    
      #1月份日早上4点
    
      0 4 1 jan * date
    
    
    
    =============================================
    
    /usr/local/mysql/bin/mysql -localhost -root -262400 -wuliu -e 'REPLACE INTO sph_counter SELECT 1, MAX(max_doc_id) FROM msg'
    
    
    
    
    
    
    
    下面整个的贴一下代码。
    
    1、首先是建立索引
    /usr/local/coreseek/bin/indexer --all --config /data/coreseek/conf/post.conf
    
    2、启动守护进程
    /usr/local/coreseek/bin/searchd --config /data/coreseek/conf/post.conf
    
    3、+记录
    
    4、更新增量索引,这个写在脚本里,因为需要每分钟更新。
    
    文件名:/data/coreseek/sh/build_delta_index.sh
    内容:/usr/local/coreseek/bin/indexer post_delta --config /data/coreseek/conf/post.conf --rotate
    
    5、合并索引,这个也要写在脚本里,每天合并一次
    文件名:/data/coreseek/sh/build_main_index.sh
    内容:/usr/local/coreseek/bin/indexer --merge post_main post_delta --rotate --config /data/coreseek/conf/post.conf  //合并索引
    /usr/local/mysql/bin/mysql -hhostname -uusername -ppassword -Ddbname -e 'REPLACE INTO sph_counter SELECT 1, MAX(PostId) FROM Post' //更改maxid
    /usr/local/coreseek/bin/indexer post_delta --config /data/coreseek/conf/post.conf --rotate >>/var/log/coreseek/deltaindexlog //重建增量索引
    
    再贴下crontab规则
    */1 * * * * /bin/sh /data/coreseek/sh/build_delta_index.sh
    30 1 * * * /bin/sh /data/coreseek/sh/build_main_index.sh
    这个基本上是没有问题了,冏,要是再有问题,我真不想碰了。
    
    昨天跟今天的其他时间应该是在写demo吧,= =,不想自己写页面,直接从coreseek.cn上扒下来的,居然是table,现在基本实现的功能,高亮这块还要做一下,真想说,sphinx真是个BT!搜索结果只返回id,BuildExcerpts这个用来产生文档片段的方法,我就更不说啥了。刚看文档看到UpdateAttributes,我居然还没处理,冏啊冏。
    
    这两天差不多都干这些了。文档还木有写,木时间了,分词的话,只能用词库了。
    
    
    ===========================================================
    
     mount -t xfs /dev/sdb /home1
    
    
    /dev/sdb        /home1     xfs       defaults 0 0
    
    
    
    
    查看占用空间大小  du -sh /home1/wwwroot
    
    显示行号::set nu
    
    调到制定行::200
    
    
    要自当前光标位置向上搜索,请使用以下命令:
    
    /pattern Enter 
    
    其中,pattern 表示要搜索的特定字符序列。
    
    要自当前光标位置向下搜索,请使用以下命令:
    
    ?pattern Enter 
    
     
    wget -c
    
     
    
        free -m          #查看内存占用
    
      free -m -t       #看内存占用并统计
    
      free -n -t -s 2  #看内存占用并统计,每两秒刷新一次
    
    查看版本 lsb_release -a 2
    
    
    yum install screen
    =============================================
    http://192.168.194.129
    ===============
    Linux 关闭mysql日志 删除mysql-bin.0000*
    添加评论 2011年6月10日 枫子 
    安装完lnmpa 慢慢注重优化了,首先就是要删除mysql日志,删除mysql-bin.0000*类似的文件 看着烦躁。
    
    查看源代码打印帮助 登录  
    
       
    
    /usr/local/mysql/bin/mysql -u root -p  
    
       
    
    输入密码  
    
       
    
    reset master;  
    
       
    
    http://61.67.209.168:8080/wwwroot/souqg-from-bq12/souqg-from-bq12-20111017.rar 
    
        
    
    mysql日志满了导致LNMP启动失败
    
    
    记得vps重启是两个月之前,今天服务商发邮件来说母机今天下午维护,然后问题出现了,维护完全之后,博客访问不了了。
    
    我到shell里面去/root/lnmp restart,显示错误,nginx不在运行!我觉得会不会是删错文件导致的,于是升级nginx.。
    
    升级完成之后,再次restart,这次显示php、mysql启动不了。
    
    因为之前看过mysql日志满了会导致lnmp启动失败的文章,于是到/usr/local/mysql/var/里面看日志,吓了一跳,有1个日志文件1G多,mysql-bin.0000* 类似的文件有19个。立即删除了,lnmp可以正常启动了。
    
    为了避免再次这样杯具,决定关闭mysql日志。
    
    修改/etc/my.cnf 文件,找到
    
    log-bin=mysql-bin
    binlog_format=mixed
    
    再这两行前面加上#,将其注释掉(大概在第49行和第56行),再执行/etc/init.d/mysql restart即可。
    
    
       
    
    即可。 
    
    Linux Linux, mysql 
    
    
    
    
    ==========================
    
    ./configure --prefix=/usr/local/coreseek  --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql --without-iconv
    
    查了半天,改Makefile,configure都不可靠。最后在官站上查到:
    
    ./configure –without-iconv,就好了。NND,那干嘛还要这个iconv嘛。
    
    看出错代码里,是在xmlunknowencode时才用到。我们都用utf-8,很多时候可能压根用不着这个功能!如若需要的话,可以加上这个lib
    
    ---------------------
    
    ifconfig 查看IP
    
    =============================
    rar for linux 下载3.6.0
    
    下载地址: http://www.rarsoft.com/rar/rarlinux-3.6.0.tar.gz
    下载后就是用tar zxvf  命令解压,然后make install安装下。
    如果要解压直接用unrar x  *.rar就可以了。会按安装目录来解压。
    
    ===================================================
    
    
    
    查看当前路径:pwd
    
    chmod -R 755 phpMyAdmin
    
    查看磁盘大小:df -lh
    
    
    更改权限:chmod -R 777 /home/admin
    
    删除文件夹:rm -rf /home/wwwroot/s
    
    删除文件:rm -f sss.html
    
    
    删除某个目录下 所有文件:
    
    cd aaa
    
    rm -rf *
    
    
    
    mv 移动
    cp 复制r
    
    如何修改安装LNMP时输入的域名?
    修改方法:编辑/usr/local/nginx/conf/nginx.conf 查找安装时输入的域名,修改为你想设置的域名,保存,执行:/usr/local/nginx/sbin/nginx -s reload 重启即可。 
    
    unrar x sss.rar 
    
    
    hillwood@hillwood-opensuse:~/Desktop> locale
    LANG=zh_CN.utf8
    LC_CTYPE=zh_CN.utf8
    LC_NUMERIC="zh_CN.utf8"
    LC_TIME="zh_CN.utf8"
    LC_COLLATE="zh_CN.utf8"
    LC_MONETARY="zh_CN.utf8"
    LC_MESSAGES="zh_CN.utf8"
    LC_PAPER="zh_CN.utf8"
    LC_NAME="zh_CN.utf8"
    LC_ADDRESS="zh_CN.utf8"
    LC_TELEPHONE="zh_CN.utf8"
    LC_MEASUREMENT="zh_CN.utf8"
    LC_IDENTIFICATION="zh_CN.utf8"
    LC_ALL=
    
    批量替换
    find -name '*.php' | xargs perl -pi -e 's|搜1|2|g'
    
    
    
    
    
    kloxo apache 安装在:/etc/httpd
    
    /etc/httpd/conf
    
    网站安装在:
    
    /home/admin/baddown.com
    
    
    
    
    cd /usr/local/
    wget http://httpcws.googlecode.com/files/httpcws-1.0.0-i386-bin.tar.gz
    tar zxvf httpcws-1.0.0-i386-bin.tar.gz
    rm -f httpcws-1.0.0-i386-bin.tar.gz
    cd httpcws-1.0.0-i386-bin/
    ulimit -SHn 65535
    /usr/local/httpcws-1.0.0-i386-bin/httpcws -d -x /usr/local/httpcws-1.0.0-i386-bin/dict/
    
    
    
    
    ----------------coreseek----------==========================================================================
    
    以下使用MySQL数据源进行说明,其他系统可以参考配置。关于MySQL数据源的具体配置,可以查看:MySQL数据源配置说明
    
    
    
    第一步:安装
    
      安装coreseek请参考:BSD、Linux、Windows系统安装测试说明文档;
    
      安装后,请确保安装测试说明文档中的各项测试都可以通过,以便coreseek做好准备,为你服务!
    
    
    
    第二步:配置:
    
      在BSD/Linux安装包的testpack/etc目录下,放置了演示的配置文件;
    
      在Windows安装包的etc目录下,也放置了演示的配置文件;
    
    
    
      如果是mysql数据库,可以将csft_mysql.conf拷贝为自己的配置文件,然后进行修改!其他数据库可以参考python数据源;
    
    
    
      要查看配置的细节,可以访问Coreseek/Sphinx(0.9)中文手册了解详情和具体的配置参数。
    
    
    
      配置文件的核心,为source和index配置,两者是成对出现的;如果需要设置针对多种情况或者多个数据表的索引,则可针对每一个编写对应的source和index配置;
    
      source表示从何处取得原始数据,也就是数据源;index表示取得数据后如何索引; 
    
      source配置中,请确保可以使用给出的数据库服务器地址、用户、密码连接到对应的数据库,执行获取数据的SQL语句可以得到数据;否则coreseek无法得到数据,也就无法提供服务了。
    
      一般情况下,sql_query给出读取数据的SQL语句,第一列为自增的ID字段,然后可以包括字符串字段,整数数值字段;整数数值字段需要在后面使用sql_attr_uint明确标注,有多个则分别标注即可。 
    
      index配置中,需要注意修改path参数,确保不与其他的搜索服务发生冲突;最后的search的配置中,也要修改对应的路径参数和端口参数,以防止冲突发生;
    
    
    
    
    
    
    url.rewrite-once = (
    "^(.*)/search-list/(.*)-1.html$" => "$1/tag.php?q=$2",
    "^(.*)/search-list/(.*)-([0-9]+).html$" => "$1/tag.php?q=$2&page=$3",
    "^(.*)/search-list/(.*)_p1.html$" => "$1/search-list/class.php?w=$2",
    "^(.*)/search-list/(.*)_p([0-9]+).html$" => "$1/search-list/class.php?w=$2&page=$3",
    )
    
    
    
    第三步:测试
    
      首先,索引:使用bin目录下的indexer,执行:indexer -c 配置文件的路径 index名称
    
    
    # /usr/local/coreseek/bin/indexer -c etc/csft.conf --all    ##--all表示全部索引
    
    
    /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/mysql_csft.conf --all
    
    
    
    ##Windows下面为bin\indexer -c etc\csft.conf --all
    ##以下为正常索引全部数据时的提示信息:部分数据信息根据实际数据情况变化
        Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release (r2117)]
        Copyright (c) 2007-2010,
        Beijing Choice Software Technologies Inc (http://www.coreseek.com)
    
         using config file 'etc/csft.conf'...
        indexing index '索引名称'...
        collected 3 docs, 0.0 MB
        sorted 0.0 Mhits, 100.0% done
        total 3 docs, 7585 bytes
        total 0.075 sec, 101043 bytes/sec, 39.96 docs/sec
        total 2 reads, 0.000 sec, 5.6 kb/call avg, 0.0 msec/call avg
        total 7 writes, 0.000 sec, 3.9 kb/call avg, 0.0 msec/call avg
      如果出现以上对应的提示,则表示配置正确,可以正常索引;
    
    
    
      随后,启动搜索:使用bin目录下的searchd,执行:searchd -c 配置文件的路径 --console
    
    
    # /usr/local/coreseek/bin/searchd -c etc/csft.conf --console
    
    /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/mysql_csft.conf --console 
    
    
    
    
    /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/mysql_csft.conf --pidfile 
    
    
    
    ##Windows下面为bin\searchd -c etc\csft.conf --console
    
    ##以下为正常开启搜索服务时的提示信息:其中的port可以在配置文件中修改
    
    
    
        Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release (r2117)]
        Copyright (c) 2007-2010,
        Beijing Choice Software Technologies Inc (http://www.coreseek.com)
    
        using config file 'etc/csft.conf'...
        listening on all interfaces, port=9312
    
    
    
      如要继续测试搜索功能,请不要停止searchd,否则其他程序将无法连接到搜索服务端
    
      BSD/Linux环境下,测试成功后:
    
        如要后台运行服务,则使用:searchd -c 配置文件的路径,将searchd作为后台服务运行;
    
        如果要停止后台服务,则使用:searchd -c 配置文件的路径 --stop;
    
        如果要更新后台服务的索引,则使用:indexer -c 配置文件的路径 index名称 
    
    
    
      然后,可以参考安装测试说明文档使用bin目录下的search进行测试,检查搜索是否可以正常进行;
    
    ------------------------------------
    
    
    
    
    
    
    coreseek在windows下的配置、运行与实时更新(sphinx)  2010-11-09 17:22:53|  分类: 服务器管理 |  标签: |字号大中小 订阅 .
    
    官方文档有很多疏漏,故此多方尝试,将正确的贴出来:
    
    1、bin/csft_mysql.conf:
    
    #源定义
    source mysql
    {
    type = mysql
    
    sql_host = localhost
    sql_user = root
    sql_pass = merry05
    sql_db = test
    sql_port = 3306
    sql_query_pre = SET NAMES utf8
    sql_query = SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title,content FROM documents
    #sql_query第一列id需为整数
    #title、content作为字符串/文本字段,被全文索引
    sql_attr_uint = group_id #从SQL读取到的值必须为整数
    sql_attr_timestamp = date_added #从SQL读取到的值必须为整数,作为时间属性
    
    sql_query_info = SELECT * FROM documents WHERE id=$id #命令行查询时,从数据库读取原始数据信息
    sql_query_post_index = REPLACE INTO counter (uid,maxid) VALUES (1,$maxid)
    }
    
    #index定义
    index mysql
    {
    source = mysql #对应的source名称
    path = var/data/mysql
    docinfo = extern
    mlock = 0
    morphology = none
    min_word_len = 1
    html_strip = 0
    charset_dictpath = etc/ #Windows环境下设置,/符号结尾
    charset_type = zh_cn.utf-8
    #charset_table=……
    ngram_len=0
    }
    
    source delta:mysql
    {
        sql_query_pre = SET NAMES utf8
        sql_query = SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title,content FROM documents WHERE id>(SELECT maxid FROM counter WHERE uid=1)
    }
    
    #增量索引
    index delta:mysql
    {
        source = delta #对应的source名称
        path = var/data/mysql_delta #这里的path要与mysql不一样,不然会运行时错误,进程强制退出
    }
    
    
    #全局index定义
    indexer
    {
    mem_limit = 128M
    }
    
    #searchd服务定义
    searchd
    {
    listen = 9312
    read_timeout = 5
    max_children = 30
    max_matches = 1000
    seamless_rotate = 0
    preopen_indexes = 0
    unlink_old = 1
    pid_file = var/log/searchd_mysql.pid
    log = var/log/searchd_mysql.log
    query_log = var/log/query_mysql.log
    }
    
    注解:mysql为主索引,delta为增量索引
    
    2、进行索引
    
    bin/indexer --config etccsft_mysql.conf mysql
    
    3、启动searchd进程
    
    bin/searchd --config etccsft_mysql.conf –-pidfile
    
    注解:–pidfile这个选项一定要添加,强制生成pid,不然在合并索引时会报pid文件无法打开错误(这项非常重要)
    
    4、生成增量索引
    
    bin/indexer –-config etccsft_mysql.conf delta -–rotate
    
    5、主索引和增量索引合并
    
    bin/indexer –-config etccsft_mysql.conf -–merge mysql delta -–rotate
    
    在searchd进程运行时–-rotate选项一定要添加,详见文档
    
    如果要在合并,将某些文档移出索引时,需要:
    
    bin/indexer –-config etccsft_mysql.conf -–merge mysql delta -–rotate -–merge-dst-range group_id 2 2
    
    注解:-–merge-dst-range是合并生成主索引的范围开关;这句的意思是只有主索引的group_id属性为2,并且子索引的group_id属性为2,才能被合并生成;否则会被过滤掉,移出主索引。
    过滤器可以多个,并且全部满足时才能在最终合并的索引出现
    
    
    
    ==============================================================
    
    
    
    建立开机启动sphinx服务,此处一定要加入–pidfile文件,以免shell自启动找不到进程pid。
    view source
    print?
     vi /etc/rc.local
    /usr/local/coreseek/bin/searchd --config /usr/local/coreseek/etc/csft.conf --pidfile /usr/local/coreseek/var/log/searchd.pid
    
    每半小时重建索引
    
     vi /usr/local/coreseek/bin/build_index.sh
    /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.conf --rotate --all --quiet
    
     #修改文件执行权限
    chmod +x /usr/local/coreseek/bin/build_index.sh
    
     #修改crontab
    crontab -e
    */30 * * * * /bin/bash /usr/local/coreseek/bin/build_index.sh
    
    
    =====================================
    
    
    select top 6 a1.s2,a1.s22,a2.shiname as shiname1,a3.shiname as shiname2 from shop_hymsg as a1 left join shop_szshi as a2  on a1.s2=a2.id 
    left join shop_szshi as a3 on a1.s22=a3.id 
    
    -
    
    
    
    
    tar 解压缩命令 
    tar
    
    -c: 建立压缩档案
    -x:解压
    -t:查看内容
    -r:向压缩归档文件末尾追加文件
    -u:更新原压缩包中的文件
    
    这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
    
    -z:有gzip属性的
    -j:有bz2属性的
    -Z:有compress属性的
    -v:显示所有过程
    -O:将文件解开到标准输出
    
    下面的参数-f是必须的
    
    -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
    
    # tar -cf all.tar *.jpg 
    这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。 
    
    # tar -rf all.tar *.gif 
    这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。 
    
    # tar -uf all.tar logo.gif 
    这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。 
    
    # tar -tf all.tar 
    这条命令是列出all.tar包中所有文件,-t是列出文件的意思 
    
    # tar -xf all.tar 
    这条命令是解出all.tar包中所有文件,-x是解开的意思 
    
     
    
    
    压缩
    
    
    tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
    
    
    tar –czf jpg.tar.gz *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
    
    
    tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
    
    
    tar –cZf jpg.tar.Z *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
    
    
    rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux
    
    
    zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux
    
     
    
    解压
    
    
    tar –xvf file.tar //解压 tar包
    
    
    tar -xzvf file.tar.gz //解压tar.gz
    
    
    tar -xjvf file.tar.bz2   //解压 tar.bz2
    
    
    tar –xZvf file.tar.Z   //解压tar.Z
    
    unrar e file.rar //解压rar
    
    unzip file.zip //解压zip
    
    
    总结
    
    
    1、*.tar 用 tar –xvf 解压
    
    2、*.gz 用 gzip -d或者gunzip 解压
    
    3、*.tar.gz和*.tgz 用 tar –xzf 解压
    
    4、*.bz2 用 bzip2 -d或者用bunzip2 解压
    
    5、*.tar.bz2用tar –xjf 解压
    
    6、*.Z 用 uncompress 解压
    
    7、*.tar.Z 用tar –xZf 解压
    
    8、*.rar 用 unrar e解压
    
    9、*.zip 用 unzip 解压
    
    
    
    --------------------mysql 获取随机数--------------------
    
    SELECT * 
    FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`))+(SELECT MIN(id) FROM `table`)) AS id) AS t2 
    WHERE t1.id >= t2.id 
    ORDER BY t1.id LIMIT 1;
    
    
    php 缓冲解决方案:
    
    php.ini
    
    output_buffering= Off;
    
    
    nginx.conf:
    
                    fastcgi_buffer_size 1k;
                    fastcgi_buffers 4 1k;
                    fastcgi_busy_buffers_size 1k;
                    fastcgi_temp_file_write_size 1k;
                    fastcgi_intercept_errors on;
    
                    gzip off;
    
    ============================================================================================================
    
    【安装Memcache的PHP扩展】
    Memcache 就是在服务器监听端口,通过一定的协议交互来写入数据到服务器内存中,或者获取一些值。如果你了解Memcache的交互协议,完全可以自己构建 Memcache的客户端,目前网上也有很多构建好的Memcache客户端的PHPClass,可以直接用,不过我这里为了效率,还是决定使用PECL 中Memcache的专用扩展,因为毕竟是用C写的,效率比较高,而且安装部署比较方便。
    下载PECL中的Memcache,因为我的客户端是Windows XP,所以需要下载dll版,我的PHP版本是PHP 5.1.4,必须下载PHP 5.1专用的扩展。
    PECL官网:http://pecl.php.net (For Linux)
                           http://pecl4win.php.net(For Windows)
    扩展下载: http://pecl4win.php.net/download ... .2/php_memcache.dll
    如果你的PHP是其他版本,请到 http://pecl4win.php.net/ext.php/php_memcache.dll 选择你相应的版本,如果是Linux下的PHP,请到 http://pecl.php.net/package/memcache 选择相应想要下载的版本。
    下载完了以后,我把php_memcache.dll 拷贝到 c:\php5\ext 目录下,如果你的扩展目录是在是缺省路径,(就是没有修改过php.ini中的扩展路径) 请拷贝到 c:\windows\ 目录下,如果是Linux平台,请自己编译安装,可以在程序中使用dl()函数加载,或者在编译php的时候加载进去。最后重启Web服务器,IIS/Apache。
    我的网站目录是在:d:\mysite 目录下,现在建立一个 phpinfo.php 文件在网站根目录下,代码是:
    <?phpinfo()?>
    看有没有成功加载 php_memcache.dll 扩展。如果显示了 Memcache 选项和相应的版本信息,则说明成功加载了,否则请仔细检查上面的步骤。
    如果一切正确无误,那么说明安装成功。
    
    【Memcache初试】
    [ 接口介绍 ]
    服务器端和客户端都安装配置好了,现在我们就来测试以下我们的成果。Memcache客户端包含两组接口,一组是面向过程的接口,一组是面向对象的接口,具体可以参考PHP手册 “LXXV. Memcache Functions”这章。我们为了简单方便,就使用面向对象的方式,也便于维护和编写代码。Memcache面向对象的常用接口包括:
    Memcache::connect -- 打开一个到Memcache的连接
    Memcache::pconnect -- 打开一个到Memcache的长连接
    Memcache::close -- 关闭一个Memcache的连接
    Memcache::set -- 保存数据到Memcache服务器上
    Memcache::get -- 提取一个保存在Memcache服务器上的数据
    Memcache::replace -- 替换一个已经存在Memcache服务器上的项目(功能类似Memcache::set)
    Memcache::delete -- 从Memcache服务器上删除一个保存的项目
    Memcache::flush -- 刷新所有Memcache服务器上保存的项目(类似于删除所有的保存的项目)
    Memcache::getStats -- 获取当前Memcache服务器运行的状态
    [ 测试代码 ]
    现在我们开始一段测试代码:
    
    <?php
    //连接
    $mem
    =
    new Memcache;
    $mem->connect("192.168.0.200",12000);
    
    //保存数据
    
    $mem->set('key1','This is first value',0,60);
    $val=$mem->get('key1');
    echo "Get key1 value: ".$val."<br>";
    
    //替换数据
    
    $mem->replace('key1','This is replace value',0,60);
    $val=$mem->get('key1');
    echo "Get key1 value: ".$val."<br>";
    
    //保存数组
    
    $arr=array('aaa','bbb','ccc','ddd');
    
    $mem->set('key2',$arr,0,60);
    
    $val2=$mem->get('key2');
    
    echo "Get key2 value: ";
    
    print_r($val2);
    
    echo "<br>";
    
    //删除数据
    
    $mem->delete('key1');
    $val=$mem->get('key1');
    echo "Get key1 value: ".$val."<br>";
    
    //清除所有数据
    
    $mem->flush();
    $val2=$mem->get('key2');
    echo "Get key2 value: ";
    print_r($val2);
    echo "<br>";
    
    //关闭连接
    
    $mem->close();
    ?>
    
    
    
    如果正常的话,浏览器将输出:
    
    Get key1 value: This is first value
    Get key1 value: This is replace value
    Get key2 value: Array ( [0] => aaa [1] => bbb [2] => ccc [3] => ddd )
    Get key1 value:
    Get key2 value:
    
    基本说明我们的Memcache安装成功,我们再来分析以下上面的这段程序。
    
    [ 程序分析 ]
    
    初始化一个Memcache的对象:
    $mem = new Memcache;
    连接到我们的Memcache服务器端,第一个参数是服务器的IP地址,也可以是主机名,第二个参数是Memcache的开放的端口:
    $mem->connect("192.168.0.200", 12000);
    保存一个数据到Memcache服务器上,第一个参数是数据的key,用来定位一个数据,第二个参数是需要保存的数据内容,这里是一个字符串,第三个参数是一个标记,一般设置为0或者MEMCACHE_COMPRESSED就行了,第四个参数是数据的有效期,就是说数据在这个时间内是有效的,如果过去这个时间,那么会被Memcache服务器端清除掉这个数据,单位是秒,如果设置为0,则是永远有效,我们这里设置了60,就是一分钟有效时间:
    $mem->set('key1', 'This is first value', 0, 60);
    从Memcache服务器端获取一条数据,它只有一个参数,就是需要获取数据的key,我们这里是上一步设置的key1,现在获取这个数据后输出输出:
    $val = $mem->get('key1');
    echo "Get key1 value: " . $val;
    现在是使用replace方法来替换掉上面key1的值,replace方法的参数跟set是一样的,不过第一个参数key1是必须是要替换数据内容的key,最后输出了:
    $mem->replace('key1', 'This is replace value', 0, 60);
    $val = $mem->get('key1');
    echo "Get key1 value: " . $val;
    同样的,Memcache也是可以保存数组的,下面是在Memcache上面保存了一个数组,然后获取回来并输出
    $arr = array('aaa', 'bbb', 'ccc', 'ddd');
    $mem->set('key2', $arr, 0, 60);
    $val2 = $mem->get('key2');
    print_r($val2);
    现在删除一个数据,使用delte接口,参数就是一个key,然后就能够把Memcache服务器这个key的数据删除,最后输出的时候没有结果
    $mem->delete('key1');
    $val = $mem->get('key1');
    echo "Get key1 value: " . $val . "<br>";
    最后我们把所有的保存在Memcache服务器上的数据都清除,会发现数据都没有了,最后输出key2的数据为空,最后关闭连接
    $mem->flush();
    $val2 = $mem->get('key2');
    echo "Get key2 value: ";
    print_r($val2);
    echo "<br>";
    
    
    ============================================================================================================
    
    
    /**************  ****************/
    
    server
            {
                    listen       80;
                    server_name yali.souwf.com;
                    location / {
                    proxy_pass       http://119.190.29.51:802/;
                    proxy_redirect   default;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    }
            }
    
    
    /******************************/
    
    
    
    
    csft.conf如下:
    
    source main
    {
        type                    = mysql
        sql_host                = localhost
        sql_user                = root
        sql_pass                = xxx
        sql_db                    = test
        sql_port                = 3306
        sql_query_pre            = SET NAMES utf8
        sql_query_pre           = SET SESSION query_cache_type=OFF
        sql_query_pre           = REPLACE INTO sph_counter SELECT 1, MAX(id) FROM s_data
        sql_query                = SELECT id, catelog, title FROM s_data WHERE id<=(SELECT max_doc_id FROM sph_counter WHERE counter_id=1 )
        sql_query_info            = SELECT * FROM s_data WHERE id=$id
        sql_attr_uint           = catelog
    }
    source delta: main
    {
        type                    = mysql
        sql_host                = localhost
        sql_user                = root
        sql_pass                = xxx
        sql_db                    = test
        sql_port                = 3306
        sql_query_pre = SET NAMES utf8
        sql_query_pre = SET SESSION query_cache_type=OFF
        sql_query_pre = SELECT id,catelog,title FROM s_data WHERE id>( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 )
        sql_query_info_pre  = SET NAMES utf8
        sql_query_info      = SELECT * FROM s_data WHERE id=$id
        sql_attr_uint       = catelog
    }
    index main
    {
        source            = main
        path            = /usr/local/coreseek/var/data/main
        docinfo            = extern
        mlock            = 0
        morphology        = none
        html_strip                = 0
        charset_dictpath = /usr/local/mmseg3/etc/
        charset_type        = zh_cn.utf-8
        min_prefix_len      = 0
        min_infix_len       = 0
        min_word_len        = 2
        ngram_len           = 0
    }
    index delta: main
    {
        source            = delta
        path            = /usr/local/coreseek/var/data/delta
        docinfo            = extern
        mlock            = 0
        morphology        = none
        html_strip                = 0
        charset_dictpath = /usr/local/mmseg3/etc/
        charset_type        = zh_cn.utf-8
        min_prefix_len      = 0
        min_infix_len       = 0
        min_word_len        = 2
        ngram_len           = 0
    }
    indexer
    {
        mem_limit            = 128M
    }
    searchd
    {
        listen                  =   9312
        read_timeout        = 5
        max_children        = 30
        max_matches            = 1000
        seamless_rotate        = 0
        preopen_indexes        = 0
        unlink_old            = 1
        pid_file = /usr/local/coreseek/var/log/searchd_mysql.pid
        log = /usr/local/coreseek/var/log/searchd_mysql.log
        query_log = /usr/local/coreseek/var/log/query_mysql.log
    }
    
    主索引:
    /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.conf main --rotate >>/usr/local/coreseek/log/mainindex.log
    
    增量索引:
    /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.conf delta --rotate >>/usr/local/coreseek/var/log/deltaindex.log
    /usr/local/coreseek/bin/indexer --merge main delta -c /usr/local/coreseek/etc/csft.conf --rotate  >>/usr/local/coreseek/var/log/deltaindex.log
    
    表sph_counter:
    CREATE TABLE `sph_counter` (
    `counter_id` int(11) NOT NULL,
    `max_doc_id` int(11) NOT NULL,
    PRIMARY KEY (`counter_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=gbk
    
    使用的PHPAPI查询:
    
    require_once 'inc/sphinxapi.php';
    $cl = new SphinxClient ();
    $cl->SetServer ( '127.0.0.1', 9312);
    $cl->SetArrayResult ( true );
    if($f) {
        $cl->setFilter('catelog',array($f));
    }
    $cl->SetLimits(0,500);
    $cl->SetMatchMode(SPH_MATCH_EXTENDED);
    $res=$cl->Query( '@title '.iconv('gbk', 'utf-8//ignore', $iword) , "main;delta");
    $cnt = count($res['matches']);
    $ids = array();
    for($i=0; $i<$cnt; $i++) {
        $ids[] = $res['matches'][$i]['id'];
    }
    $cl = null;
    
    ------------------------
    
    
    
    
    张宴 回复于 2010-3-5 13:00
    Nginx与php-cgi是两个独立的程序,通过TCP或Unix套接字通信,不像Apache那样是集成在一起的。所以,Nginx有fastcgi缓冲区,数据超出缓冲区大小、或程序执行完,才会将内容输出到客户端。另外,如果要使用ob_flush,不能开启gzip压缩输出。
    
    nginx.conf:
      fastcgi_buffer_size 1k;
      fastcgi_buffers 4 1k;
      gzip off;
    
    php.ini:
    
    改为output_buffering = Off
    
    如果需要连续循环打印的效果,可以加上一行echo str_repeat(" ",1024);,使得fastcgi_buffer_size 1k;的缓冲区满,从而输出内容到浏览器:
    
    <?php
    set_time_limit(0);
    ob_end_clean();
    ob_implicit_flush(1);
    
    for($i = 0; $i < 10; $i++)
    {
        echo $i, "<br />\n";
        echo str_repeat(" ",1024);
           sleep(1);
    }
    ?>
    
    
    ==============================
    
    总结 出现缓冲不能得原因 主要是php_fpm 里头 原先是request_terminate_timeout 是0s 我改成了5s条
    
    
    第三种原因:
    
    在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加。
    
    
    
    卸载Mysql
    [root@localhost ~]# rpm -qa | grep mysql
    mysql-3.23.58-9
    php-mysql-4.3.4-11
    mod_auth_mysql-20030510-4.1
    mysql-server-3.23.58-9
    
    说明:rpm –qa | grep mysql 命令是为了把mysql相关的包都列出来,卸载都从最下面的一个包开始,直到卸载掉第一个为止。执行rpm -q php,如果返回php版本,刚是rpm安装;不返回php版本则是二进制安装。
    比如:在这个例子中,我们应该先卸载mysql-server-3.23.58-9 方法如下:
    rpm –e mysql-server
    说明:rpm –e 是卸载rpm包的命令,后面是包名称,最后的版本号是不用打的,比如我们下一步卸载mod_auth_mysql-20030510-4.1包,方法如下:
    [root@localhost ~]# rpm –e mod_auth_mysql
    
    卸载Apache
    [root@localhost ~]# rpm -qa | grep httpd
    httpd-manual-2.2.9-4.i386
    httpd-tools-2.2.9-4.i386
    httpd-devel-2.2.9-4.i386
    httpd-2.2.9-4.i386
    
    [root@localhost ~]# rpm -e httpd --nodeps
    [root@localhost ~]# rpm -e httpd-devel --nodeps
    [root@localhost ~]# rpm -e httpd-tools --nodeps
    [root@localhost ~]# rpm -e httpd-manual --nodeps
    
    卸载PHP
    [root@localhost ~]# rpm -qa | grep php
    
    php-odbc-4.3.4-11
    php-4.3.4-11
    php-mysql-4.3.4-11
    php-pear-4.3.4-11
    php-ldap-4.3.4-11
    php-pgsql-4.3.4-11
    
    说明:方法跟卸载Mysql一样,不用说了吧
    注意:卸载的时候如果卸载不掉,系统一般会提示包的依赖关系,并且列出依赖的包的名称,先卸载提示依赖的包就可以了。
    
    如果实在实在有卸载不掉的包,可以加—nodeps这个参数来卸载,比如我们卸载php-4.3.4-11,实在卸不掉了。就用:
    rpm -e php-4.3.4-11 --nodeps(或 rpm -e --nodeps php-4.3.4-11)
    命令很强硬,应该行的。
    
    我在装Linux时已经安装了apache,我如何启动它
    运行ntsysv命令,选中apache既可。
     
    $w3m www.google.cn
    
    
    
    
    你就会看到熟悉的google主页了
    
    3.一些常用的快捷键
    
    H 显示帮助 
    q 退出,会有提示的 
    j,k,l,h 移动光标,就像vim中一样 
    J/K 向下/向上滚屏 
    < > 左右滚屏 
    在文本框里press Enter会提示TEXT:然后就可以输入了.输入后press Enter,最后按搜索键 
    T 打开一个新标签页 
    Esc-t 打开所有标签页,供你选择,使用jk来上下移动 
    { } 在标签页中切换 
    U 输入新的网址 
    B 后退 
    Ctrl+q 关闭当前标签页 
    / 向后查找当前页 
    ? 向前查找当前页 
    
    4.补充
    1. < > < 和 > 分别是把画面往左或右方卷动。
    2. w W 小写英文字母w与大写英文字母W分别是跳至下一个或上一个单字的字首(英文字母限定?)。
    3. Ctrl-e Ctrl-a 移动键盘游标至行末或行首。
    4. Esc-m 列出页面中所有的超连结。
    5. Esc-g 输入行数并跳至该行开头。
    6. [ ] 分别是跳至第一个或最后一个超连结。
    7. Tab 跳至页面中的下一个超连结。
    8. Esc-Tab,Ctrl-u 跳至页面中的上一个超连结。 
    9. I 大写英文字母I可以让你显示目前所选取之超连结所指向的图片。
    10. L 大写英文字母L可以显示出超连结及超连结的显示文字。
    11. Enter Enter键是进入该超连结所指向之目地的,当然了,用JavaScript做出来的连结是没办法用纯文字浏览器连过去的。 Flash那些影音档的也别肖想能看到了,图片倒是可以看。 
    12. Ctrl-t 将目前游标移动到的超连结开到新分页去。
    13. v E 小写英文字母v可以显示该页面原始码,大写英文字母E则是用编辑器来修改该页面原始码。
    14. R 大写英文字母R可以重新读取该页面。 
    15. T 开新的空白分页。 
    16. Ctrl-q 关闭目前分页。
    17. { } 左大括弧「 { 」和右大括弧「 } 」分别是移动到上一个或下一个分页。 
    18. Esc-t 开启选择分页选单。 
    19. / ? 按下/或?后输入英数字或切换中文输入法输入中文都可以。 /是向后方找, ?则是向前方这样。 
    20. n N 小写英文字母n与大写英文字母N分别是找下一笔或找上一笔。 
    21. m 小写英文字母m可以让你的滑鼠生效或不生效。 
    22. H 按大写英文字母H可以看说明文件,以及可以选择看日文版Japanese Version的说明哦。
    23. o 小写的英文字母o可以开启Option Setting Panel ,还可以看到目前所使用的版本。 设定好后按End跳到最后面的OK按Enter便能让设定生效了。
    24. Ctrl-h 列示出所有浏览过的网址。
    25. q与Q 小写英文字母q是离开w3m前先做确认,大写英文字母Q则是不做确认直接离开。 
    26.大写英文字母U是输入URL。
    27.(如Esc-m那种的)选单 方向箭头键左|-离开选单。
    28. Alt-方向箭头键下是回到上一页,这在不小心进到Option Setting Panel等的地方也可以用哦。 
    29. Home与End分别是跳至文件开头与结尾。 PageUp跟PageDown则是上翻一面跟下翻一 面,空白键Space功能同PageDown 。
    30. insert键可以列出很多功能。 
    
    
    
    =============================================
    
    shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改、查)等各种操作  
    
    
    
    mysql  -hhostname -Pport -uusername -ppassword  -e  相关mysql的sql语句,不用在mysql的提示符下运行mysql,即可以在shell中操作mysql的方法。
    
     
    
    #!/bin/bash
    
    HOSTNAME="192.168.111.84"                                           #数据库信息
    PORT="3306"
    USERNAME="root"
    PASSWORD=""
    
    DBNAME="test_db_test"                                                       #数据库名称
    TABLENAME="test_table_test"                                            #数据库中表的名称
    
     
    
    #创建数据库
    create_db_sql="create database  ${DBNAME} IF NOT EXISTS ${DBNAME}"
    mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} -e "${create_db_sql}"
    
     
    
    #创建表
    create_table_sql="create table  ${TABLE} IF NOT EXISTS ${TABLENAME} (  name varchar(20), id int(11) default 0 )"
    mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${create_table_sql}"
    
     
    
    #插入数据
    insert_sql="insert into ${TABLENAME} values('billchen',2)"
    mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${insert_sql}"
    
     
    
    #查询
    select_sql="select * from ${TABLENAME}"
    mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${select_sql}"
    
     
    
    #更新数据
    update_sql="update ${TABLENAME} set id=3"
    mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${update_sql}"
    mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${select_sql}"
    
     
    
    #删除数据
    delete_sql="delete from ${TABLENAME}"
    mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${delete_sql}"
    mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${select_sql}"
    
    
    
    mousedown:鼠标的键钮被按下。 
    mouseup:鼠标的键钮被释放弹起。 
    click:单击鼠标的键钮。 
    dblclick:鼠标的键钮被按下。 
    contextmenu :弹出右键菜单。 
    mouseover:鼠标移到目标的上方。 
    mouseout:鼠标移出目标的上方。 
    mousemove:鼠标在目标的上方移动。
    
    
    
    
    
     ====================
    
    godaddy
    
     
    
    
    ================================
    
    linux c 语言
    
    
    c 操作mysql
    
    gcc -o insert insert.c -lmysqlclient -I/usr/local/mysql/include/mysql/ -L/usr/local/mysql/lib/mysql
    
    
    指针注明
    
    ===================================================
    
    
    在声明int *piRand中
    
    *表示这个变量是int类型的指针
    
    在声明之外
    
    *可以理解成一个运算符 或者一个函数 
    
    *和&是一对逆运算
    
    &的意思是读一个变量的地址
    
    比如你声明了int a;&a是a的地址可能是xx1001之类的
    
    可以在调试里看一下
    
    *的意思是读一个地址指向的内容
     
    ======================================================
     
    测量长度
    
     strlen
    
     sizeof
    
    
    LNMP0.8 eAccelerator和ionCube安装不上的解决办法
    
    
    /root/lnmp restart时,报错如下:
    
    Shutting down php_fpm  done
    Starting php_fpm Failed loading /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so:  /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so: cannot open shared object file: No such file or directory
    Failed loading /usr/local/ioncube/ioncube_loader_lin_5.3.so:  /usr/local/ioncube/ioncube_loader_lin_5.3.so: undefined symbol: zend_resolve_path
    done
    
    修改:/usr/local/php/etc/php.ini
    
    原来:zend_extension="/usr/local/ioncube/ioncube_loader_lin_5.3.so"
    
    
    改成:zend_extension="/usr/local/ioncube/ioncube_loader_lin_5.2.so"
    
    
    php 5.2.17 使用ioncube_loader_lin_5.2.so不是5.3
    
    原来:zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so"
    
    
    改成:zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
    
    eaccelerator路径是no-debug-non-zts-20060613 而不是no-debug-non-zts-20090626
    
    
    =====================================================================================
    
    
    很多TIME_WAIT连接导致Cannot assign requested address的解决办法(2011-07-26 18:35:53)
    
    
    客户端connect服务器,执行一定时间后,接口返回-99的错误
    
    查看错误信息 OS error code  99:  Cannot assign requested address
    
    猜想端口被用光的原因,网络搜索得到一个解释:客户端频繁的连服务器,由于每次连接都在很短的时间内结束,导致很多的TIME_WAIT,以至于用光了可用的端口号,所以新的连接没办法绑定端口,即“Cannot assign requested address”
    
    通过netstat,的确看到很多TIME_WAIT状态的连接
    
    因为是调用API,所以无法对连接进行opt设置,只能通过设置系统配置得以解决
    
    解决办法:
    
    执行命令修改如下2个内核参数   
    sysctl -w net.ipv4.tcp_timestamps=1  
    
    开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用
    
    sysctl -w net.ipv4.tcp_tw_recycle=1  表示开启TCP连接中TIME-WAIT sockets的快速回收
    
    
    sysctl -w net.ipv4.tcp_timestamps=1  
    sysctl -w net.ipv4.tcp_tw_recycle=1
    
    ==================
    
    
    求C语言 时间戳和标准格式的转换  
    
    
    0 int main(int argc, char **argv)
    {
        time_t t;
        t = time(NULL);
        struct tm *lt;
        int ii = time(&t);
        printf("ii = %d\n", ii);
        t = time(NULL);
        lt = localtime(&t);
        char nowtime[24];
        memset(nowtime, 0, sizeof(nowtime));
        strftime(nowtime, 24, "%Y-%m-%d %H:%M:%S", lt);
        printf("nowtime = %s\n", nowtime);
        return 1;
    } 
    
    ===============================
    屏幕亮度调节:xgamma -gamma 0.6
  • 相关阅读:
    Document
    Document
    Document
    Document
    Document
    Document
    set常见操作:
    select 不存在字段,并设置默认值
    c#为字段设置默认值,以及构造函数初始化List对象。
    ThreadLocal
  • 原文地址:https://www.cnblogs.com/zhaoguoliang/p/2804524.html
Copyright © 2011-2022 走看看