linux proftpd 用户,[原]把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.'
總結
以上是生活随笔為你收集整理的linux proftpd 用户,[原]把boblog博客的用户导入proftpd用户认证数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java派生类_我可以使派生类从Java
- 下一篇: MYSQL的函数有哪些?(4.1时间与日