MySQL导出结构和部分数据的脚本

N年不碰这个捡起来好痛苦
为了让远程数据库结构与配置数据与本地同步,写了个脚本,可能是重复劳动,但还蛮实用

#! /bin/env bash

dumpdir=./dumpdata
rows=1000
user=root
pass=root

#########################################

mysql=$(which mysql 2> /dev/null)
if [ "xx" = "xx"$mysql ]; then
    echo 'mysql command not found'
fi

mysqldump=$(which mysqldump 2> /dev/null)
if [ "xx" = "xx"$mysqldump ]; then
    echo 'mysqldump command not found'
fi

mysql="$mysql -u$user -p$pass"

databases=$($mysql -e "show databases;" | grep -i -v Database| grep -i -v information_schema| grep -i -v mysql| grep -i -v performance_schema| grep -i -v test)

for d in $databases; do
    mkdir -p $dumpdir/$d
    tables=$($mysql -e "use $d; show full tables;" | grep BASE | sed 's/\sBASE TABLE//')
    #echo $tables
    for t in $tables; do
        echo "$d.$t ..."
        $mysqldump $d $t --where "true limit $rows" > $dumpdir/$d/$t.sql
    done
done

单电相机的硬伤

纠结了两天终于弄明白了,为什么 Hologon 在 M9 上边缘泛红严重,失光也很严重。
红光折射率最低按理说不应该是泛红,紫色是折射率最高的,所以那个不是泛红,是泛紫。

因为以前胶片是完全平坦,并且感光材料是最表层,所以 Hologon 这种设计不会有边缘偏紫和严重失光的情况,虽然徕卡的 CCD 很 BT 的对边缘像素进行了底层位移,可以大大减轻这种情况,但 Hologon 底面光线斜射角度已经严重超出 CCD 能承受的范围了。

然后徕卡新出的镜头对数码相机进行了优化,所谓的优化只有一种方式,就是减少斜射光的角度,基本上可以认为是加长镜头长度,让镜头射出的光线尽量符合柯达这块 CCD 的变态设计,以前的老镜头拿到 M9 上都有这种问题。

所以什么火龙果、七枚玉之类的,不管它曾经有多辉煌,在 M9 上注定无法与新设计的镜头比。所以买镜头要买新镜头,或者玩胶片。

另外 M4/3 系统因为 CCD(CMOS) 较小,镜头都是全新设计的,这个问题控制得还不错,徕卡用了高成本的方式在 CCD 上做工作,而 NEX 的问题就比较严重了,这就说明为什么蔡司那个 24/1.8 设计得如此之长了,注定了 NEX 的镜头要有好画质,就一定很长,并不是不想做好的饼干头,而是做不出来。

linode备忘

Linode 512
swap 512M (不要太小,否则编译某些软件会失败,自己做swap麻烦)
disk1 19.5G
数据中心 Fremont, CA, USA 这个连中国比较快,可以先测试一下(google搜索测试方法)

计费方式:
周付:如果申请时间不是每月1号,第一个月每周结账
月付:每月自动扣款
年付:每年自动扣款,有10%优惠

我获得的第一个IP被搞,发Ticket过去,很快给我换了一个新IP

四核cpu性能不错

内存被扣掉大约100M,咨询后得知是xen内核占用,没显示出来云云,问题不大

提供的Gentoo内核支持pptp、tun,很方便

客服响应速度很快,有专业人士解答你的技术问题,问题描述需要严谨一些,因为他们客服做事非常严谨,因为我英文很差所以在咨询支付方式的时候纠结了很久,他们需要得到一个最精确的指令才会给你办事

记录两个转域名到 godaddy

转域名流程

  1. 上家申请转出域名
  2. 获得域名转移密码
  3. 取消TransferProhibited(解锁)
  4. 下家申请转入域名,一般需要续费一年,然后输入转移密码
  5. 上家确认转出
  6. 转移成功

我有两个域名,一个是商务中国的代理(520idc),找到客服QQ,传身份证扫描,100元服务费,顺利解锁并获得转移密码,第二个工作日收到邮件,点确认转出,完成。非常顺利,这100元服务费很值。

另一个是新网互联的代理(edong),找到客服留言,发来一对资料,要求将申请书、身份证复印件到上海的公司。
三个工作日后我主动打电话询问情况,要求15元到北京的快递费。
一天后留言询问,被告知域名所有机构(Registrant Organization)不是我的名字,而且这个值不能修改,要求先过户,过户费50元,并且过户后一年内不能转出域名!

您好:具体的注册信息您可以登录以下管理地址查看:
域名:nimab.org
密码:******
管理地址:http://mgt.dns.com.cn/
过户流程是:在会员中心,页面下方直接购物通道“增值服务”,找到“域名服务产品”下个订单(收费)50元/个。然后再邮寄过户书面资料! 
过户需要出具如下书面资料:
①域名过户协议:域名所有者双方签字(个人)或盖章(公司)
http://www.edong.com/Documents/dnsgh.doc
(原所有人不存在的,旧所有人签字(盖章)需与免责申明上签字(盖章)一致)
②新旧所有人证件:
1)域名所有者为公司:提供营业执照副本复印件,带有工商的年审章,且加盖公章
2)域名所有者为个人:提供个人身份证复印件,如是第二代,需要正反两面
③域名过户免责申明(申明上签字(盖章)由真实存在所有人签字(盖章))
原所有人正确过户免责申明:
http://www.edong.com/Documents/zhengchangyuming.doc 
原所有人不正确过户免责申明: http://www.edong.com/Documents/wentiyuming.doc
以上资料需要邮寄到我司:
公司总部地址:上海市 浦东新区 外高桥保税区 富特北路399号 华三大厦4层 邮政编码:200131 域名客服(收) 联系电话:021-51873666

头大了!不过转折点就在这里,我登陆新网域名管理系统以后发现(Registrant Organization)有一次修改的机会,于是修改之。再看,居然有转出域名的功能!

您尚未开通在线转移功能,请登录会员或联系为您提供域名注册服务的代理开通!
如在转移过程中遇到问题请联系新网互联客服中心,我们会为您解答。
通过代理商注册域名的用户,请您先联系代理为您开通转移功能,如代理无任何理由的拒绝为您开通在线转移,请与我们联系,我们会帮助您完成域名转出,非常感谢!
客服电话:95105612(免长话费) 服务邮箱:support@dns.com.cn

于是,两次留言要求开通在线转移功能,并附上新网的通知。
终于给我开通了在线转移功能。
在新网申请转出域名,顺利获得转移密码。
等了4天没有收到确认转出邮件,不过5天内新网没驳回我的请求将自动转出。

第一家代理:山寨,简单粗暴,我喜欢。
第二家代理:官僚,恶心,唾弃。

关于Doctype

从某年开始,国内网站对html的第一行进行了大规模改动,就是大力鼓吹“xhtml+css”的时候吧。
其实就是增加了一行:[code][/code]
当时没有太多别的感受,除了所有网站都变慢了。当时的电脑配置不好,发现访问大点的网页都显得力不从心了,正好推动了硬件发展……
废话多了点,请看文章(有翻译得比较烂的版本,google上找):http://hsivonen.iki.fi/doctype/

这里要说的重点就是浏览器的模式选择,有三个:
Quirks Mode
Standards Mode
Almost Standards Mode
性能 Q>A>S,其中IE的Q模式不支持css2.1,但性能最好,比其他模式快很多很多,其他浏览器没关注,不知道具体情况,反正性能都不差。

IE很重要,性能很重要,对用户来说,最好的模式就是Q。
对开发者而言,最好的模式是S。

Zend Studio 5.5 on Snow leopard

其实是因为snow leopard里没有jre1.5,1.5被链接到1.6了。
[code]wget http://www.cs.washington.edu/homes/isdal/snow_leopard_workaround/java.1.5.0-leopard.tar.gz
tar -xvzf java.1.5.0-leopard.tar.gz
rm -f java.1.5.0-leopard.tar.gz
sudo mv 1.5.0 /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0
cd /System/Library/Frameworks/JavaVM.framework/Versions/
sudo ln -sf 1.5.0 1.5
[/code]

几行bash分析日志并报警强力蜘蛛

被SB蜘蛛抓烦了,今天早上一看,有2个IP一小时就抓了我80G的页面,还都是动态页面。

首先让 Apache 记的日志最小化,好处不用说了。


SetEnvIfNoCase Request_URI \.gif$ dontlog
SetEnvIfNoCase Request_URI \.jpg$ dontlog
SetEnvIfNoCase Request_URI \.png$ dontlog
SetEnvIfNoCase Request_URI \.swf$ dontlog
SetEnvIfNoCase Request_URI \.css$ dontlog
SetEnvIfNoCase Request_URI \.js$ dontlog
SetEnvIfNoCase Request_URI \.ico$ dontlog
CustomLog "|/usr/local/sbin/cronolog /var/log/httpd/%Y-%m/%d-%H.ip" "%{X-Forwarded-For}i" env=!dontlog

因为我的 Apache 是躲在 n 层代理的后面,所以只能记录 %{X-Forwarded-For},里面包含真实 IP,但是需要下一步分析去取出。


cd /var/log/httpd
f=`date -d '1 hours ago' +%Y-%m/%d-%H.ip`
ip=`sed 's#^\([0-9\.]\{1,\}\)[0-9 \.,\s]\{1,\}#\1#' $f | awk '{a[$1]++ } END{for(i in a){print a[i] " " i}}' | sort -rn | head`
curl -u 机器人的饭否登录名:密码 -d status="$ip" http://api.fanfou.com/statuses/update.xml
rm $f

测试下来一小时 10M 的 log,分析一下也就 3 秒左右,还有1秒是发送给饭否的报警的。如果记录的直接就是真实 IP,那可以去掉 sed 那段,分析应该还会快很多(log文件就小很多了)。

看到有夸张的,不是常规搜索引擎蜘蛛的话,就咔嚓掉。

iptables -A INPUT -s xxx.xxx.xxx.xxx/29 -j DROP

1 202.106.186.* 163蜘蛛
2 202.108.36.* 163蜘蛛
3 202.108.44.* 163蜘蛛
4 202.108.45.* 163蜘蛛
5 202.108.5.* 163蜘蛛
6 202.108.9.* 163蜘蛛
7 220.181.12.* 163蜘蛛
8 220.181.13.* 163蜘蛛
9 220.181.14.* 163蜘蛛
10 220.181.15.* 163蜘蛛
11 220.181.28.* 163蜘蛛
12 220.181.31.* 163蜘蛛
13 222.185.245.* 163蜘蛛
14 202.165.100.* 3721蜘蛛
15 220.181.19.* 百度蜘蛛
16 159.226.50.* 百度蜘蛛
17 202.108.11.* 百度蜘蛛
18 202.108.22.* 百度蜘蛛
19 202.108.23.* 百度蜘蛛
20 202.108.249.* 百度蜘蛛
21 202.108.250.* 百度蜘蛛
22 61.135.145.* 百度蜘蛛
23 61.135.146.* 百度蜘蛛
24 64.124.85.* become.com
25 61.151.243.* china蜘蛛
26 202.165.96.* gais.cs.ccu.edu.tw
27 216.239.33.* google蜘蛛
28 216.239.35.* google蜘蛛
29 216.239.37.* google蜘蛛
30 216.239.39.* google蜘蛛
31 216.239.51.* google蜘蛛
32 216.239.53.* google蜘蛛
33 216.239.55.* google蜘蛛
34 216.239.57.* google蜘蛛
35 216.239.59.* google蜘蛛
36 64.233.161.* google蜘蛛
37 64.233.189.* google蜘蛛
38 66.102.11.* google蜘蛛
39 66.102.7.* google蜘蛛
40 66.102.9.* google蜘蛛
41 66.249.64.* google蜘蛛
42 66.249.65.* google蜘蛛
43 66.249.66.* google蜘蛛
44 66.249.71.* google蜘蛛
45 66.249.72.* google蜘蛛
46 72.14.207.* google蜘蛛
47 61.135.152.* iask蜘蛛
48 65.54.188.* msn蜘蛛
49 65.54.225.* msn蜘蛛
50 65.54.226.* msn蜘蛛
51 65.54.228.* msn蜘蛛
52 65.54.229.* msn蜘蛛
53 207.46.98.* msn蜘蛛
54 207.68.157.* msn蜘蛛
55 194.224.199.* noxtrumbot
56 220.181.8.* Outfox
57 221.239.209.* Outfox
58 217.212.224.* psbot
59 219.133.40.* QQ蜘蛛
60 202.96.170.* QQ蜘蛛
61 202.104.129.* QQ蜘蛛
62 61.135.157.* QQ蜘蛛
63 219.142.118.* sina蜘蛛
64 219.142.78.* sina蜘蛛
65 61.135.132.* sohu蜘蛛
66 220.181.26.* sohu蜘蛛
220.181.19.*
67 61.135.158.* tom蜘蛛
68 66.196.90.* yahoo蜘蛛
69 66.196.91.* yahoo蜘蛛
70 68.142.249.* yahoo蜘蛛
71 68.142.250.* yahoo蜘蛛
72 68.142.251.* yahoo蜘蛛
73 202.165.102.* yahoo中国蜘蛛
74 202.160.178.* yahoo中国蜘蛛
75 202.160.179.* yahoo中国蜘蛛
76 202.160.180.* yahoo中国蜘蛛
77 202.160.181.* yahoo中国蜘蛛
78 202.160.183.* yahoo中国蜘蛛
79 72.30.101.* yahoo蜘蛛
80 72.30.102.* yahoo蜘蛛
81 72.30.103.* yahoo蜘蛛
82 72.30.104.* yahoo蜘蛛
83 72.30.107.* yahoo蜘蛛
84 72.30.110.* yahoo蜘蛛
85 72.30.111.* yahoo蜘蛛
86 72.30.128.* yahoo蜘蛛
87 72.30.129.* yahoo蜘蛛
88 72.30.131.* yahoo蜘蛛
89 72.30.133.* yahoo蜘蛛
90 72.30.134.* yahoo蜘蛛
91 72.30.135.* yahoo蜘蛛
92 72.30.216.* yahoo蜘蛛
93 72.30.226.* yahoo蜘蛛
94 72.30.252.* yahoo蜘蛛
95 72.30.97.* yahoo蜘蛛
96 72.30.98.* yahoo蜘蛛
97 72.30.99.* yahoo蜘蛛
98 74.6.74.* yahoo蜘蛛
99 202.108.4.* 中搜蜘蛛
100 202.108.4.* 中搜蜘蛛
101 202.108.33.* 中搜蜘蛛
102 202.96.51.* 中搜蜘蛛
103 219.142.53.* 中搜蜘蛛