- 主题:如何从FB2000升级到ytht?
目前我的BBS使用的版本是FB2000 v1219, 这几天想升级到ytht. 我使用的是ytht2004.4.17 release的版本, 并按照本版okeym的文章<在RedHat9.0上安装ytht>和doc/Install.Chinese将ytht安装好, 新建了SYSOP, guest和几个其他用户, 并发表了几篇test文章. 接下来我需要将原BBS上的boards, home, .PASSWDS, .BOARDS等信息移到新装好的BBS目录下, 步骤如下:
1. [bbs]$ cd $BBSNEW
[bbs]$ rm -f .BOARDS .PASSWDS .badname .bad_email
[bbs]$ rm -rf boards home mail vote 0Announce
2. [bbs]$ cd $BBSOLD
[bbs]$ mv .PASSWDS .BOARDS .badname .bad_email $BBSNEW
[bbs]$ mv board home vote mail 0Announce $BBSNEW
3. clear all shm memory, killall -9 bbsd
4. [bbs]$ cd $BBSNEW
[bbs]$ bin/shminit 出现下列错误:
clear old shm...ok
creating bcache shm...ok
creating ucachehash shm...ok
creating utmp shm ...ok
creating uindex shm...ok
check passwd file size...ok
attaching shm...ok
check for uhash...ok
building ucachehash shm...oops, shminit failed, please clear all shm and retry
查看$BBSNEW/deverrlog, 有这样一行:
Aug 31 12:06:8 18532 bin/shminit |bbsinfo.c: load_ucache line 257 duplicate user
请问这是什么原因呢?
是不是因为我建好新的BBS后, 新建的user和原来BBS的user有重复?
或者我的升级过程是错误的?
请各位大大指教! 谢谢啊! //bow
--
FROM 137.189.4.*
fb2000和ytht的数据结构不一样吧
需要参照两边的数据结构转换数据才能用 赫赫:)
【 在 qiqi@smth.org-SPAM.no (蓬莱仙子) 的大作中提到: 】
: 目前我的BBS使用的版本是FB2000 v1219, 这几天想升级到ytht. 我使用的是ytht2004.4.17 release的版本, 并按照本版okeym的文章<在RedHat9.0上安装ytht>和doc/Install.Chinese将ytht安装好, 新建了SYSOP, guest和几个其他用户, 并发表了几篇test文章. 接下来我需要将原BBS上的boards, home, .PASSWDS, .BOARDS等信息移到新装好的BBS目录下, 步骤如下:
: 1. [bbs]$ cd $BBSNEW
: ...................
--
FROM 211.155.251.247
麻烦了.....@@
我发现local_util里有upgrade.c, trans_passwd.c, trans_passwd2.c三个文件,
upgrade. c是把FB2000的userec转到ytht的old_userec
trans_passwd.c 是把old_userec转到userec
trans_passwd2.c是吧olduserec (比old_userec新, 比userec老)转到userec
不过因为2004.4.17 release的版本里userec, old_userec结构和这三个文件里使用的都不一样,
所以这三个文件编译都没通过...
我简单改了几句使upgrade.c编译通过, 但是可能改的有问题. 因为运行upgrade将.PASSWDS改完后, shminit还是通不过.....晕~~@@
我的FB2000里FB2000userec定义如下:
struct FB2000userec { /* Structure used to hold information in */
char userid[IDLEN + 2]; /* PASSFILE */
time_t firstlogin;
char lasthost[16];
unsigned int numlogins;
unsigned int numposts;
unsigned int club; /* 所属聚落部 by ZV 2003.4.4 */
unsigned int money; /* 金钱 */
unsigned int inbank; /* 存款 */
time_t banktime; /* 存入时间 */
char flags[2];
#ifdef ENCPASSLEN
char passwd[ENCPASSLEN];
#else
char passwd[PASSLEN];
#endif
char username[NAMELEN];
char ident[NAMELEN];
char termtype[16];
char reginfo[STRLEN - 16];
unsigned int userlevel;
time_t lastlogin;
time_t lastlogout; /* 最近离线时间 */
time_t stay;
char realname[NAMELEN];
char address[STRLEN];
char email[STRLEN - 12];
unsigned int nummails;
time_t lastjustify;
char gender;
unsigned char birthyear;
unsigned char birthmonth;
unsigned char birthday;
int signature;
unsigned int userdefine;
time_t notedate;
int noteline;
};
ytht 2004.4.17 release里userec定义如下:
struct userec { /* Structure used to hold information in */
char userid[IDLEN + 2]; /* PASSFILE */
char flags[2];
time_t firstlogin;
time_t lastlogin;
time_t lastlogout;
unsigned char dieday:3, inprison:1, nouse1:4;
char nouse[3];
unsigned long int lasthost;
char username[NAMELEN];
unsigned short numdays; //曾经登录的天数
short mailsize; //in kilobytes
unsigned int numlogins;
unsigned int numposts;
time_t stay;
unsigned userlevel;
unsigned long int ip;
unsigned int userdefine;
char passwd[MD5LEN]; // MD5PASSLEN = 16
int salt; //salt == 0 means des; salt!=0 means md5
time_t kickout;
};
新的结构里添了几项, 不过有的项我不知道什么意思, 不知道该如何映射过来,
哪位大大能帮我看看该怎么映射才好? 谢谢谢谢! //bow
【 在 dinger.bbs@ytht.net (test) 的大作中提到: 】
: fb2000和ytht的数据结构不一样吧
: 需要参照两边的数据结构转换数据才能用 赫赫:)
--
FROM 137.189.4.*