2014年5月

增加新域名

因为想把firefoxbug.net换成firefoxbug.com,就是之前的PR转不过来,于是网上看了下seo的,做了下面几件事。 1. 先用301跳转,把老的域名跳转到新的域名。注意不要用302跳转,因为存在URL劫持的问题可能不会被google收录。 2. 在数据库里把wordpress旧的登录信息修改成新的

UPDATE wp_options SET option_value = replace(option_value, 'http://www.firefoxbug.net', 'http://www.firefoxbug.com') WHERE option_name = 'home' OR option_name ='siteurl' ;
UPDATE wp_posts SET post_content = replace( post_content, 'http://www.firefoxbug.net' , 'http://www.firefoxbug.com') ;
UPDATE wp_posts SET guid = replace( guid, 'http://www.firefoxbug.net' , 'http://www.firefoxbug.com') ;
UPDATE wp_comments SET comment_author_url = REPLACE( comment_author_url, 'http://www.firefoxbug.net', 'http://www.firefoxbug.com');

enjoy http://www.firefoxbug.com/

LinuxIO模型概述

前言

一个socket进程进行一次read可以分成两个阶段,等待数据是否准备好,以及数据从内核copy到用户空间。 我们举个例子,肚子饿了要去小吃街吃拉面,在我们正式开始吃面之前需要1.先等拉面师傅做好面,2.然后把做好的面放到我们的桌子上。

- 阅读剩余部分 -

Python参数解析optparse

# *-* coding: UTF-8 *-*

import sys
from optparse import OptionParser

def option_parser():
    parser = OptionParser("%prog [options] arg",version="%prog 1.0")
   	
   	# store_true|store_false 表示 -v|-q 后面没有跟参数,指定-v,则verbose=True;指定-q,verbose=False
	parser.add_option("-v", action="store_true", dest="verbose")  
	parser.add_option("-q", action="store_false", dest="verbose") 

	# default 指定变量默认值,metavar
    parser.add_option("-D", "--directory", dest="file_path",metavar='FILE_PATH',
                        help="file directory .",default="/home/firefoxbug"),
                
    # action=append,可以指定多项参数+值     
    parser.add_option("-H", "--host",dest="mysql_host",metavar='MYSQL_HOST',
   						action="append", help="mysql ip(must)")
    
    # type 指定参数类型
    parser.add_option("-P", "--port",dest="mysql_port", type=int, help='mysql port .(default:8080)',default=80)

    (options, args) = parser.parse_args()
    print parser.print_help()
    if len(sys.argv) == 1:
            parser.error("incorrect number of arguments")
    return (parser,options, args)

action参数说明

action:
	store: 默认的设置,表示保存参数,比如 -d abc,就把 abc 保存到options变量里
	store_true|store_false: 可以不指定参数值,比如 -v,后面可以不跟值,store_true/store_false分别代表bool值
	append: 追加形式保存参数,比如 -d abc -d edf,得到的结果就是['abc', 'edf']

- 阅读剩余部分 -

Python常用代码笔记

参数解析

import sys
import getopt

try:
    opts,args = getopt.getopt(sys.argv[1:], "ho:",["help", "output="]);
    if not opts:
        usage()
    for opt,arg in opts:
        if opt in ("-h", "--help"):
            usage();
        elif opt in ("-H",):
            mysql_host = arg
        elif opt in ("-o",):
            parse_cpu_csv(arg)
        else:
            usage()
            sys.exit(1)
except getopt.GetoptError:
    usage();
    sys.exit(1)

- 阅读剩余部分 -

mysql常用sql语句

### mysql密码初始化

	# /etc/init.d/mysqld stop
	# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
	# mysql -u root mysql
	mysql> use mysql;
	mysql> UPDATE user SET Password=PASSWORD('hello') where USER='root';
	mysql> FLUSH PRIVILEGES;
	mysql> quit
	# /etc/init.d/mysqld restart
	# mysql -uroot -p
	Enter password: <输入新设的密码newpassword>
	mysql>

- 阅读剩余部分 -