2012年12月
sublime text2 svn sftp plugin keygen
第一次写object-c程序,写了好几个小时才写出来这么个小东西。
- 反编译pyc文件,查看算法
- 写出key生成的算法
- 将python嵌入Object-C,得到最终的程序
将email和生成的key写入插件目录下的sublime-setting文件。
"email": "your email",
"product_key": "the key",
2013-03-19 增加 邮件获取注册码
发送任何邮件到 bot[at]tool.lu, 系统会自动生成注册码,并回复到你的发件邮箱
2013-04-24 增加 osx10.7支持,优化算法机
下载地址:svn-keygen.app.zip
mac chrome下input submit样式
input submit指定样式不起作用
There will be three new appearance constants for buttons. They are push-button, bevel-button and button. input will be using push-button by default. This constant maps to the Aqua system button. When this appearance constant is specified, the only way to disable the Aqua look will be by setting the appearance constant to none (which will give you a completely blank slate on which to build your own button look) or by specifying your own background and border properties. Specifying the background/border will result in the Aqua appearance being disabled and a more platform-neutral look being used.
来自:https://www.webkit.org/blog/28/buttons/
解决办法
/* 指定border或者background就可以了 */
input[type=submit] {
border: 1px solid #CCC;
/* background: red; */
}
自动禁用连接数高的IP
python代码
由于最近服务器受到大流量的攻击,于是写了该脚本。
#! /usr/bin/env python
# encoding: utf-8
import os, time
command = "/bin/netstat -antp|grep :80|awk ' ''{print $5}'|awk -F: '{print $1}'|sort -r|uniq -c|sort -n -k1 -r"
maxconn = 150
handle = os.popen(command)
for line in handle:
fields = line.strip().split(' ')
if len(fields) != 2:
continue
conn, ip = fields
# 由于我们使用的是nginx作为反向代理,访问apache,所以这里要加上127.0.0.1
if int(conn) > maxconn and ip != '127.0.0.1':
print(time.strftime('%Y-%m-%d %X'), conn, ip)
# 这里只会临时将ip拒绝,当重新启动iptables服务的时候失效
os.system('/sbin/iptables -I INPUT -s %s/24 -j DROP' % ip)
handle.close()
定时执行
将python文件加入crontab中即可。
SimpleIni修改my.cnf
为了实现自动化修改mysql的配置文件,使用C++程序对改ini样式的文件进行修改
#include "SimpleIni.h"
int main(int argc, char* argv[]) {
CSimpleIniA ini;
const char* filename = "/etc/my.cnf";
ini.SetUnicode();
ini.LoadFile(filename);
ini.SetValue("mysqld", "server-id", "1");
ini.SetValue("mysqld", "binlog-do-db", "mydb");
ini.SaveFile(filename, false);
return 0;
}