[原]把boblog博客的用户导入proftpd用户认证数据库

   其实之前的工作都是为了实现这个目的:把boblog博客的用户导入proftpd用户认证数据库。这样,所有博客的用户都可以登陆到FTP上,而我也不用打开匿名FTP了。当然,我也写了一个脚本,让其自动运行。这样,如果用户改了密码,也能及时的反应到proftpd的认证数据库中,挺方便的。

一、前提
在使用下面的脚本前,需要以下前提条件:

引用
1、当然是需要按照前面几篇日志的介绍,搭建好proftpd使用的用户认证数据库,以及安装MySQLdb模块;
2、为支持使用中文的用户名,boblog及proftpd的数据库都应使用UTF-8编码。

二、脚本
该脚本实现的功能比较简单:

引用
1、把boblog中的用户和密码导入proftpd的认证数据库中;
2、当boblog中的用户修改密码后,也会修改proftpd认证数据库中的密码。

内容如下:

引用
#!/bin/env python
# –*– coding: utf-8 –*–
# 上面这句告诉python用UTF-8编码
# 2007-11-28 11:00
# Author: linuxing#linuxfly.org

import MySQLdb
import sys

host = ‘localhost’

# 定义进入boblog数据库的用户名和密码
sourcedb = ‘boblog’
s_user = ‘linuxing’
s_pwd = ‘redflag’

# 定义进入proftpd认证数据库的用户名和密码
targetdb = ‘proftp’
t_user = ‘linuxing’
t_pwd = ‘redflag’

# 定义这些用户的默认uid和gid
t_uid = 1000
t_gid = 1000

# 当进入数据库的信息错误时,捕捉异常并处理
try:
   #使用utf8编码连接
   s_conn = MySQLdb.Connection(host,s_user,s_pwd,sourcedb,use_unicode=1,charset=’utf8′)
   t_conn = MySQLdb.Connection(host,t_user,t_pwd,targetdb,use_unicode=1,charset=’utf8′)
except:
   print ”’Open source or target database fail.\nPlease confirm content of scripts.”’
   sys.exit(1)

#修正sys的默认编码,否则若把脚本输出导入管道会报UnicodeEncodeError错误的
reload(sys)
sys.setdefaultencoding(‘gb2312’)

s_cur = s_conn.cursor()
s_cur.execute(‘select username,userpsw from boblog_user’);
s_row = s_cur.fetchall()
# 使用for循环得到每一行的tuple
for rowone in s_row:
   ftpuser,ftppwd = rowone
   t_cur = t_conn.cursor()
   sqlstring = “select userid from FTPUSERS where userid=’%s'” % ftpuser
   t_cur.execute(sqlstring)
   #这里其实可以用简单的判断execute方法返回的值是否为0L即可
   t_row = t_cur.fetchone()
   if t_row == None:
       sqlstring = “insert into FTPUSERS(userid,passwd,uid,gid,lastime) values (‘%s’,’%s’,%i,%i,%s)” %(ftpuser,ftppwd,t_uid,t_gid,’now()’)
       t_cur.execute(sqlstring)
       print ‘insert ftp user: %s.’ %ftpuser
       t_conn.commit()
   else:
       sqlstring = “update FTPUSERS set passwd =’%s’ where userid =’%s'” %(ftppwd,ftpuser)
       t_cur.execute(sqlstring)
       print ‘update ftp user %s.’ %ftpuser
       t_conn.commit()
print ‘Everything is OK.’

源码下载:

[原]把boblog博客的用户导入proftpd用户认证数据库下载文件
点击这里下载文件

把这个脚本放到计划任务中定时运行即可。

三、参考资料
http://bbs.chinaunix.net/archiver/?tid-833164.html

在Windows 下安装 MySQL-python 1.2.5
PyCharm 使用Git
Python 框架TurboGears 2 入门文档《Wiki Tutorial》翻译校正
搭建Master-Master Mysql Replication 集群
在红旗Asianux 3.0 上安装Moodle

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/112499.html

(0)
上一篇 2021年8月27日
下一篇 2021年8月27日

相关推荐

发表回复

登录后才能评论