Author Archives: henry

ProFTP 在MySQL中配置用户信息

服务器运行2个月了一直靠着sftp在传文件,决定还是配个ftp server方便下其他需要文件传输的朋友。 根据版本号原则(选择版本号最丰富最高的那个),在ProFTP/Pure-ftp/vsftp中选择了ProFTP,部分原因也是为了能搭配Mysql来保存用户信息。 这样做的好处在于可以不必暴露服务器上真实的用户名密码,即使信息外泄也不会引发严重安全问题,而且修改用户信息定义也方便,无需root登录只要修改下数据库就生效了。 在Gentoo上安装时需要USE参数中有mysql才会编译proftpd的mysql支持。 下面就是proftpd.conf里的配置,辅以简单说明 # 申明从mysql中读取用户信息 AuthOrder mod_sql.c # SQL信息log输出,方便调试 SQLLogFile /var/log/proftpd.sqllog # 指定验证方法,Backend即调用特定数据库的密码加密方法,如Mysql下的password()函数 SQLAuthTypes Backend SQLBackend mysql SQLAuthenticate users groups #用户库连接信息 数据库名@主机名 用户名 密码 SQLConnectInfo dbname@localhost dbuser dbpassword # 数据库表的结构,如果你采用后文给出的db schema则无需更改 SQLUserInfo ftpusers userid passwd uid gid … Continue reading

Posted in 服务器配置 | Tagged , | Leave a comment

rTorrent中schedule设置技巧

rTorrent中可以配置schedule让其监控某个指定目录,发现.torrent文件后自动下载。搭配事件控制可以达到讲下载好的文件自动移动到另一个目录并且继续做种的效果。 某些情况下我们希望监控多个目录,并且将下载完毕的文件根据种子源目录的不同移动到不同的目录,这时候就要用到下面的配置。 schedule = watch_directory_1,10,10,”load_start=~/Download/watch_stuff1/*.torrent,d.set_custom1=~/Download/stuff1/” schedule = watch_directory_2,10,10,”load_start=~/Download/watch_stuff2/*.torrent,d.set_custom1=~/Download/stuff2/” # 下载完成后将文件移动到变量custom1指定的目录 system.method.set_key =event.download.finished,move_complete,”d.set_directory=$d.get_custom1= ;execute=mv,-u,$d.get_base_path=,$d.get_custom1=” 上面的mv就是指系统自带的命令。同理我们可以让rTorrent在下载完毕后执行指定的命令,比如发送一封email到指定信箱提醒。 # First and only argument to rtorrent_mail.sh is completed file’s name (d.get_name) system.method.set_key = event.download.finished,notify_me,”execute=~/rtorrent_mail.sh,$d.get_name=” rtorrent_mail.sh如下 #!/bin/sh echo “$(date) : $1 – Download completed.” | mail … Continue reading

Posted in Uncategorized | Tagged | Leave a comment

MySQL 同步和备份策略 [一]

最近遇到一个案列,MySQL主机已经存有10G左右的数据并且每天还在以1G为单位增长。现在需要制定备份策略并且用于数据备份和服务器维护的停机时间要尽可能的短。 对此,我们打算配置Master主服务器 -> Slave从服务器单向同步复制并且在Slave机上做周期增量备份。如果Master因意外灾难无法继续服务可以立即切换Slave机顶替服务。以下内容中Master机指主服务器,Slave机指从服务器。 1. 开启二进制日志服务(5.1版本中二进制日志替换了老的更新日志),启动MySQL时加–log-bin参数或在my.cnf中加上这一行。后面可以跟文件名来指定日志名,扩展名会被自动忽略。默认文件名为mysqld-bin.0000x。数字x会自动增长并且mysqld-bin.index中会指定当前的日志文件索引,请勿手工维护.index文件。 2. 建立账户用户数据复制,该账户必须授予REPLICATION SLAVE权限。鉴于我们还需要从Slave机上执行LOAD DATA FROM MASTER 和 LOAD DATA FROM MASTER,还需要授予账户SUPER和RELOAD全局权限。并且为所有想要装载的表授予SELECT权限。任何该 账户不能SELECT的主服务器上的表被LOAD DATA FROM MASTER忽略掉。 例如 mysql> GRANT REPLICATION SLAVE ON *.* TO ‘repl’@‘%.mydomain.com’ IDENTIFIED BY ‘slavepass’; 3. 执行FLUSH TABLES WITH READ LOCK语句清空所有表和块写入语句: mysql> … Continue reading

Posted in 数据库 | Tagged , | Leave a comment

iPad 3.2.1 越狱

感谢hacker们的努力,现在的iOS越狱真是越来越简单了。 打开包装,iPad连接iTunes激活,惊喜发现版本还是3.2.1 (再高就暂时无法越狱) 用iPad上的safari访问http://jailbreakme.com (好网站,也没被GFW),直接slide to jailbreak。这个过程都无需连接电脑 耐心等待进度条跑完之后你会发现桌面上已经有Cyndia了,越狱完成,真是太简单了。 根据个人口味可以选择安装SBSettings,OpenSSH,Aptitude等等所需要的工具。至此你可以在国内各大apple爱好者论坛上下载各式各样的ipa安装包来填满你的iPad。 Tweet

Posted in Apple | Tagged , , | 1 Comment

Android手机Nexus One连接Apple Bluetooth Keyboard

首先所有带蓝牙的android手机理论上都是可以连接蓝牙键盘鼠标的(Human Interface Device),不幸地是官方的蓝牙profile中默认不包括HID profile。所以只有采用第三方的ROM如Cyanogen(CM6版本以上)或在官方的rom上搭配bluez utility来实现蓝牙键鼠的连接。 这里我们仅讨论第二种在官方ROM上添加工具的方案。手机必须取得root权限,或者是ADP (Android Dev Phone),并且需要安装busybox。 1. 先下载需要的工具。 $ wget http://androidobex.googlecode.com/files/hciconfig $ wget http://androidobex.googlecode.com/files/hcitool $ wget http://androidobex.googlecode.com/files/hidd 2. 提升到root权限,并且将/system挂载成可读写,默认为read-only $ su # mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system # chmod 777 /system/xbin 3. 从本地复制第一步下载的文件到手机 $ adb … Continue reading

Posted in Android | Tagged , , , | 1 Comment

Hello world!

玩了几年虚拟主机,先是从国内的某不知名群租服务器上搬到了上海神话科技的主机,接着又是托同服务器上爱搞点不和谐内容的“邻居”的福三天两头被CT查封服务器,再后来兴起了ICP良民备案制度。不堪其扰之下把域名和主机都搬迁到了US Dreamhost的旗下。尽管dreamhost的服务挺好,而且速度和空间也不构成瓶颈,本着电工就是爱折腾的想法最后还是租了VPS。现正在把所有站点慢慢迁移至VPS主机,情绪稳定。 Tweet

Posted in Uncategorized | Tagged | 1 Comment