PDA

View Full Version : Cabal Server Full Down Load



samuon
23-06-08, 09:46 AM
He he,:big_smile: hôm nay dạo chơi sang ragezone thấy có ai đó share cái server cabal full.hên ghê:still_dreaming:...Tớ chộp ngay link để cho các bạn Down về test nè...
Full expilode II + Hướng dẫn bằng tiếng tàu
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

còn một cái khác nữa nè...
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
pass giải nén:123456

Bác Gunbound1012 đã cài được rồi vui lòng up cái hướng dẫn cài và mấy cái tool lên cho anh em cái....thèm chơi quá rồi :sweet_kiss:
Ngoài ra ai đã cài thành công thì cũng post hướng dẫn vô đây để anh em test nha...
Hy vọng các bạn cài thành công để bày cho tui...:surrender:
Admin: del cái hướng dẫn ở dưới đi nha, post lộn:beat_brick:

samuon
23-06-08, 09:56 AM
Đây là cái hướng dẫn bằng chữ tàu...:tire:
ai rảnh dịch hộ cái...
CABAL惊天动地
维护管理手册









文档版本 1.00 文档作者 田祎庆 文档阅览 项目管理组
撰写日期 2007-6-11 最近修改 2007-6-11 文档属性 内部资料
本手册包括从服务器的安装->配置->安全->维护->更新->备份->故障等全方面的、详细的介绍了惊天 动地的操作和管理,包括其服务器核� �技术和详细配置,属于保密文档,谨� ��部门内部使用,请大家妥善保管,防 止外泄。
子 目 录
一、 项目概述------------------------------------------------------40
1、游戏简介 ------------------------------------------------------------------------------------ 40
2、平台描述 ------------------------------------------------------------------------------------ 40
3、拓扑结构 ------------------------------------------------------------------------------------ 40
二、 服务端安装配置篇----------------------------------------------40
1、Win Server 安装 ----------------------------------------------------------------------------- 40
2、Linux 安装 ---------------------------------------------------------------------------------- 41
3、数据库安装 ---------------------------------------------------------------------------------- 51
4、安全设置------------------------------------------------------------------------------------- 52
5、服务端程序安装 ------------------------------------------------------------------------------ 57
6、配置说明 ------------------------------------------------------------------------------------ 75
三、 维护管理篇----------------------------------------------------80
1、工具介绍 ------------------------------------------------------------------------------------ 80
2、日常维护 ------------------------------------------------------------------------------------ 83
3、停机维护 ------------------------------------------------------------------------------------ 86
4、更新流程 ------------------------------------------------------------------------------------ 87
5、数据备份 ------------------------------------------------------------------------------------ 98
四、 惊天动地FAQ--------------------------------------------------96
1、服务端故障 ---------------------------------------------------------------------------------- 96
2、客户端故障 ---------------------------------------------------------------------------------- 97
五、 参考选项------------------------------------------------------97
1、参考文档------------------------------------------------------------------------------------97
2、其他说明------------------------------------------------------------------------------------97






一、项目概述
1、游戏简介
惊天动地是我公司代理的第一款韩国� �络游戏,由EST Soft开发,其有别于其他的MMORPG,游戏� ��更突出休闲的性质。是一款容易上手 的奇幻风格MMORP G,游戏中没有难懂的游戏系统,也没� ��有时间上的限制,一般的MMORPG玩家都 能很容易上手。另外,为了 避免无休止的练级,游戏中设计了剧� �,当一个剧情结束后将会有新世界和� ��任务。被誉为“有结局 的网游!”

2、平台描述
惊天动地的服务端是跨系统的组合模� �,采用了CentOS4.x的Linux系统和Windo ws Server 2000 以上版本的双系统跨平台整合系统;� �设一组大区至少需要16台以上的各类� �用服务器,同时每增加一组需要至 少5台应用服务器。这里要特别说明的� ��惊天动地服务端的频道系统特点:可 以自由配置频道的多少,根据服务器 配置自定义每台服务器运行多少个频� �,从而使服务器数量的调整更加多样� ��,也使得调整范围更加 灵活。
构架一个区域服务器最低配置包括:� �号数据库、游戏数据库、游戏服务器� ��登录认证服务器、客户端更新服务器 、聊天服务器、全局管理服务器、数� �库查询服务器、web管理服务器等。下� ��会陆续介绍各个服务器功能和配 置。

3、拓扑结构
详见《cabal逻辑结构拓扑图.vsd》以及� �Cabal网络结构拓扑图.vsd》

二、服务器安装篇
1、Win Server 安装
1.1软件准备:
Windows 2000 Server英文安装盘 1 张
MS Sql 2000程序包
IIS程序包(i386目录复制到系统中的D盘 根目录下)
杀毒软件Mcafee 8.0 en(安装包复制到系统中的D盘software目 录下)
服务器驱动程序准备
1.2硬件准备:
服务器硬件:详见《Cabal服务器配置文 档》
1.3安装过程
A、开始安装
分区方案 C盘15G以上,其余D盘。
网络连接数9999其他设置默认;

B、安装完成后
 为系统安装中文支持(需要安装光盘� �者i386目录提供);
第一步:控制面板→区域和语言选项� �语言→为东亚语言安装文件
第二步:控制面板→区域和语言选项� �区域选项→两个选择项分别设为Chinese (PRC)和 China
第三步:控制面板→区域和语言选项� �高级→Chinese(PRC)
 安装远程终端(此项一定要在装SP补丁 前安装);
在控制面板windows添加/删除组件中选中安装。
 对计算机进行改名;
根据服务器组别和当前服务器功能来� �名,如:GameDB01,LogDB等
需要重启,等所有设置完成,最后重� �。
 安装windows SP4补丁;
 对windows进行在线升级:IE工具栏→Windo ws Update;
 安装杀毒软件Mcafee 8.0 en,安装完后要进行在线升级;
 其他组件根据服务器职能进行相应安� �(需要安装光盘或者i386目录提供);
2、Linux 安装
CentOS 4.x 安装光盘#1-3张
2.1安装方法选择
把第1张 CD放在 CD-ROM 光驱,在系统ROM-BIOS(SETUP模式)里,选择 CD-ROM boot后重启服务器:

 “boot:”里输入 <ENTER>,就可以用显卡画面模式设置.
2.2确认 CD有无物理异常

 Anaconda执行时,为了检验CD有无物理异� ��,会出现CD测试画面. 按Skip.
2.3环境信息


 开始设置LINUX的环境信息. 选“Next”.

2.4 Language Select



 Language Selection选择现在设置过程所需的语言� �不是设置以后要用的语言,只是选择� ��置过程所需的语言,通 常选“English”.


2.5 Keyboard Configuration



 选择适用的键盘种类. 因为大部分是使用美国式的键盘,选 “U.S.English”.

2.6 Installation Type


 Cabal应用于服务器,设置成Server 也可设置为Custom 模式.


2.7 Disk Partioning Setup

 各服务器数据如果使用备份服务器备� �,不会出现大问题,选Automatically partition. 或者选择Disk Druid,创建新的partition,把重要的data� �存在partition里.

2.8 Boot Loader Configuration



 导入下阶段LINUX的 “LINUX BOOT LOAD 设置”阶段.
按Next.



2.9 Network (javascript:void(0)) Configuration

 设置LINUX NETWORK阶段.


 分IP时,选择 “Edit”.

确认解除“Configure using DHCP”,确认“Activate on boot”.
输入IP Address与 Netmask 值.(也可安装完后配置)


 设置LINUX服务器的HOST NAME. (例, game01, login02,…)
 为了使“Gateway”与别的NET通信,输入 Gateway值.
“Primary DNS”这个服务器使用时,输入第一个NA ME服务器IP地址.

2.10 Firewall Configuration



 LINUX自身的防火墙程序iptables设置成 No firewall,按 Next.
 SElinux的设置. 选Disables按 Next.
“SElinux”现在的比传统的LINUX系统增� �了三个选项, Disables, Warn, Active.

2.11 Additional Languasge Support



 这个阶段选择LINUX服务器要使用的语言 . English(USA)

2.12 Time Zone


 Time Zone Selection 选择北京/上海地区时段.

2.13 Set Root Password



 设置(Root Password)
Root是linux的管理账号,这里设置的密� �必须足够强壮。

2.14 Package Group Selection




 除了之前已经选的PACKAGE,如果没有FTP server和 Development Tools,确认后设置.
[软件包说明] Package Grpup Selection
X Window System : WINDOW环境(PC用必选)时必选
GNOE Desktop Environment : X WINDOW用PACKAGE (GNOME)设置.
KDE (K Desktop Environment) : X WINDOW PACKAGE (KDE)设置.
XFCE : 设置叫XFCE的新的 X WINDOW PACKAGE
Editors : 可以使用在LINUX的各种编辑器PACKAGE
Engineering and Scientific : 工学,技术,科学领域所需的PACKAGE
Graphical Internet : 可以INTERNET使用的几种GRAPHIC 工具
Text-based Internet : TEXT基础下使用INTERNET环境的PACKAGE.
Office/Productivity : PC用LINUX可使用的商务用,即OA用PACKAGE
Sound and Video : 支持声卡与视频卡的PACKAGE
Authoring and Publishing : LINUX下,著作与出版相关的应用软件
Graphics : 与GIMP一样的LINUX用graphic工具.
Games and Entertainment : 包含有趣的LINUX用游戏与娱乐的PACKAGE
Server Configuration Tools : 设置服务器的工具.
Web Server : 要使用WEB SERVER就必须设置 (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
Mail Server : sendmail 的 pop一样的邮件服务器用PACKAGE.
Windows File Server : (SAMBA)相关PACKAGE.
DNS Name Server : 使用NAME SERVER必须使用 (named)
FTP Server : FTP 设置(vsftpd)
PostgreSQL Database : Postgres SQL DATABASE设置
MySQL Database : MYSQL DATABASE设置.
News Server : 使用NEWS SERVE时,设置NEWS DAEMON (innd)
Network Servers : NETWORK环境下,设置C/S环境PACKAGE.
Legacy Network Server : LINUX Legacy network 服务器用PACKAGE.
Development Tools : 开发者所需的工具 (gcc, c++)
X Software Development : X 软件开发工具.
GNOME Software Development : GNOME 开发工具
KDE Software Development : KDE 开发工具
XFCE Software Development : XFCF 开发工具
Legacy Software Development : Legacy 软件开发所需PACKAGE
Administration Tools : LINUX服务器管理工具PACKAGE
System Tools : 系统管理用PACKAGE
Printing Support : 打印机相关PACKAGE (使用打印机服务器时使用)
Everything :上述所有PACKAGE (选择这个时,呈全选状态)


2.15 About to Install


 结束各阶段的选择后,把所选的PACKAGE� ��制到硬盘里.

 全部完成后,选择“Reboot”,安装设� �过程全部结束,等待文件复制过程,� ��要#1-3张安装光盘。

3、数据库安装
数据库安装MSSQL Server 2000英文版,sa密码必须设置的足够强� �,数据库的主文件不能放在系统分区� ��,放在D盘分区的caba l\data\目录下,安装完毕后打上SP4补丁� ��


4、安全设置
4.1 CentOS系统
A、BIOS安全
添加BIOS密码,设置启动顺序,禁止软� ��和光驱启动。

B、登录口令
帐号密码强度:修改/etc/login.defs文件中PASS_MIN_LEN等于8,即最少 密码长度为8位。建议密码设置由大小� �� 字母+特殊字符+数字组成。管理员� �码应该定期更新。

C、系统帐号
CentOS系统中存在一些默认帐号和组,� �ftp、halt、uucp等,禁止所有默认的被� �作系统本身 启动的,但是却不必要的账号,尤其� �以非/sbin/nologin结尾的帐号。如:netdump等。
操作步骤:修改/etc/passwd和/etc/shadow文件,将不必要的帐号注释。如� �图所示:














同样修改/etc/group和/etc/gshadow文件,将不必要的组注释。如下� ��所示:














建议只保留所需服务启动的帐号。比� �需要用到ftp服务时可以启用ftp帐号和� ��。
D、帐号口令文件安全
操作步骤:在确认以上文件无误后,� �改以上文件属性为不可修改文件!
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
以上可在服务器全部安装测试完毕后� �行操作。(注:其他重要的配置文件� ��认修改无误后,也按此 操作。)

E、启动服务安全
系统安装完毕后,会启动许多无需使� �的服务;可在setup中设置,统一关闭� �认启动。
操作步骤:输入“setup” 出现如下菜单:












选择System services项,按Run Tool确认:
















图中带[ * ]为选中该服务,可按空格键进行选择� �只需保留network、crond、sshd、syslog等服 务, 其他服务根据应用程序在以后操作中� �加。确认后,按ok键确认退出;
设置服务启动脚本权限,只有root才能� ��制启动各项服务:
chmod -R 700 /etc/rc.d/init.d/*
chmod -R 700 /etc/init.d/*
F、配置主引导程序Grub安全
操作步骤:编辑/etc/grub.conf文件,修改字段timeout=0;(注� �引导时不等待)
添加字段password --md5 (md5加密字符串)
修改主引导程序参数需要输入密码。� �用grub-md5-crypt命令得到md5加密字符串。

G、修改登录系统信息
用户登录服务器后系统会自动显示系� �、内核版本信息。
我们可以通过修改/etc/issue和/etc/issue.net文件来修改这些信息。
CentOS release 4.3 (Final)
Kernel \r on an \m
以上是原文件中的内容。
echo > /etc/issue
echo > /etc/issue.net
清空文件信息。

H、用户级启动进程init设置
操作步骤:init为第一进程,其PID始终� ��1,通过编辑/etc/inittab 来修改init的启动配置。
设置应用服务器启动级别为3;(启动� ��别一共7级,0关机,6重启,5窗口模� �,1单用户模式 ,2-4多用户模式。)
id:3:initdefault:
加上注释符,屏蔽Ctrl+Alt+Delete重新启� �快捷键。
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
修改完毕后可运行:init q 直接生效无需重启。

I、配置网络访问控制
Linux系统默认允许所有的请求,配置TCP _WRAPPERS可以增强系统安全性,修改/etc/hosts.deny和/etc/hosts.allow来增加访问限制。
操作步骤:这里将/etc/hosts.deny设为“ALL: ALL”拒绝所有访问。
在/etc/hosts.allow文件中添加允许的访问。
sshd: 192.168.1.0/255.255.255.0 game.cabal.com
表示允许IP地址192.168.1.0网段或者主机� ��game.cabal.com可以通过 SSH连接。

J、iptables配置
Linux防火墙软件包,功能强大,在实际 操作中,不要和TCP_WRAPPERS同时使用。
配置过程根据服务器实际应用写入规� �;
许多安全隐患都可以通过iptables来解决 。

K、阻止广播段ping测试
操作步骤:修改启动脚本/etc/rc.d/rc.local在最后添加以下行:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

L、预防IP地址欺骗
操作步骤:编辑host.conf文件并增加如� �几行来防止IP欺骗攻击。
order bind,hosts (解析顺序为先DNS后查询/etc/hosts 注:与default设置相反)
multi off (禁止主机拥有多个IP地址 此为默认设置)
nospoof on (阻断IP地址欺骗)
M、阻止DoS攻击(HTTP服务)
操作步骤:设置系统中用户资源限制� �内存数量以及进程数等;编辑/etc/security/limits.conf 添加以下行:
#<domain> <type> <item> <value>
* hard core 0
* hard rss 5000
* hard nproc 20
limits.conf文件有相关参数的说明。数值 大小根据实际应用进行调整,否则可� �导致服务无法正常应 用。
上面的参数禁止core files “core 0”,限制进程数为 “nproc 20”,且限制内存使用为5M “rss 5000”。

N、限制root用户终端登录
操作步骤:可在/etc/securetty注释tty2~11的行,这样root就只能 在tty1登录。

O、系统安全日志文件
/var/log 系统日志目录 syslogd 系统日志服务名
/etc/syslog.conf 系统日志服务的配置文件
/var/log/secure记录文件是检测是否有网络入侵� �重要线索;
/var/log/messages 记录系统中重要操作的标准和错误输� �信息;

P、软件包更新
更新软件包,可以修正软件中存在的� �全隐患和bug。
不过不注册是无法使用up2date自动更新� ��
一些服务的软件包可以通过手动下载� �新。

4.2 Windows 2000 Server
配置前,请先安装SP4补丁,打开自动� �新。
A、在网络连接中禁用TCP/IP上的NetBIOS
操作步骤:网上邻居属性→本地连接� �性→TCP/IP属性→高级→WINS→禁用TCP/IP上的NetBIOS
B、删除所有默认共享
操作步骤:建立一个文本文档,输入� �下代码再保存为bat批处理文件,执行� ��
echo 将下列代码做成批处理文件后,执行� �毕即可!
echo Windows Registry Editor Version 5.00> c:\delshare.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\lanmanserver\parameters]>> c:\delshare.reg
echo "AutoShareWks"=dword:00000000>> c:\delshare.reg
echo "AutoShareServer"=dword:00000000>> c:\delshare.reg
echo 运行 delshare.reg 修改注册表
regedit /s c:\delshare.reg
echo 删除 delshare.reg 临时文件
del c:\delshare.reg
net stop server /y
net start server
C、禁用无需用到的服务
操作步骤:开始→运行→输入“services .msc”
TCP/IP NetBIOS Helper Disable
DHCP Disable
Wireless Configuration Disable
Print Spooler Disable
Windows Time Disable
Server Disable
Distributed File System Disable
Computer Browse Disable

D、IP sec 设定
操作步骤:开始→运行,输入“MMC”� �按确定;出现Windows的管理控制台界面 ,按“CTRL+M” 键,在出现的对话框中点“添加”,� �“添加独立的管理单元”对话框中,� ��中“IP安全策略管理 ”
Deny所有的端口和网络
根据不同Server的功能,开放相应服务� �口
内网暂时不做任何限定

E、对于涉及到IIS的安装,具体配置如� ��
操作步骤:修改WEB默认主页的主目录� �置,改变默认目录,通常只要给它读� ��和日志访问权力。删除原有的虚 拟目录,如果需要可自己重新建立新� �(如scripts)重新配置执行许可,删除 不要用的ISAPI应用程 序设置(特别是.htw .IDQ .printer 等)不要安装WEB管理。

F、终端服务的设置
操作步骤:终端服务是win2000自带的远� ��管理程序,默认配置下只要Administrato rs就可 以远程管理。
修改连接权限,指定单一用户与system� �可以使用,这样就是被黑客加入了一� ��Administrato rs用户也不能用终端服务管理。必要时 也可以修改终端服务的TCP端口。(可在I Psec中设置允许终端服 务的网络地址)

4.3 MS Sql 2000 server设置
操作步骤:
A、使用安全的密码策略;
对于sa更应该注意,同时不要让sa帐号� ��密码写于应用程序或者脚本中。
SQL Server 2000安装的时候,如果是使用混合模式� ��那么就需要输入sa的密码,除非你确� ��必须使用空密码。

B、使用安全的帐号策略;
由于SQL Server不能更改sa用户名称,也不能删除 这个超级用户,所以,我们必须对这� �帐号进行最强的保护,当 然,包括使用一个非常强壮的密码,� �好不要在数据库应用中使用sa帐号,� �有当没有其它方法登 录到 SQL Server 实例(例如,当其它系统管理员不可� �或忘记了密码)时才使用 sa。建议数据库管理员新建立一个拥有 与sa一样权限的超级用户来管理数据库 。安全的帐号策略还包括不要让 管理员权限的帐号泛滥。
SQL Server的认证模式有Windows身份认证和混� ��身份认证两种。如果数据库管理员不 希望操作系统管理 员来通过操作系统登陆来接触数据库� �话,可以在帐号管理中把系统帐号“B UILTIN\Administr ators”删除。不过这样做的结果是一旦 sa帐号忘记密码的话,就没有办法来恢 复了。很多主机使用数据库 应用只是用来做查询、修改等简单功� �的,请根据实际需要分配帐号,并赋� ��仅仅能够满足应用要求和需要的权限 。比如,只要查询功能的,那么就使� �一个简单的public帐号能够select就可以� ��。

C、管理扩展存储过程;
对存储过程进行大手术,并且对帐号� �用扩展存储过程的权限要慎重。其实� ��多数应用中根本用不到多少系统的存 储过程,而SQL Server的这么多系统存储过程只是用来� �应广大用户需求的,所以请删除不必� ��的存储过程,因为有些系统 的存储过程能很容易地被人利用起来� �升权限或进行破坏。
如果你不需要扩展存储过程xp_cmdshell请 把它去掉。使用这个SQL语句:
use master
sp_dropextendedproc xp_cmdshell
xp_cmdshell是进入操作系统的最佳捷径, 是数据库留给操作系统的一个大后门� �如果你需要这个存储 过程,请用这个语句也可以恢复过来� �
sp_addextendedproc xp_cmdshell, xpsql70.dll
如果你不需要请丢弃OLE自动存储过程� �会造成管理器中的某些特征不能使用� ��
这些过程包括如下:
Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty
Sp_OAMethod Sp_OASetProperty Sp_OAStop
去掉不需要的注册表访问的存储过程� �注册表存储过程甚至能够读出操作系� ��管理员的密码来
如下:
Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues
Xp_regread Xp_regremovemultistring Xp_regwrite
还有其他的扩展存储过程需要检查。� �处理存储过程的时候,请确认一下,� ��免造成对数据库或应用 程序的伤害。

5、服务端程序安装
5.1 Linux 服务端安装
5.1.1 Linux系统下应用服务器种类
GlobalDBAgent –与ACCOUNT DB通信的服务器;
DBAgent – 与GAME DB通信的服务器;
GlobalMgrSvr – 连接GDBA, LoginSvr, WorldSvr, (Server Monitor) 之间通信的服务器;
LoginSvr – 与玩家通信,认证登录的服务器;
WorldSvr – 游戏服务器
ChatNode – 聊天服务器

端口信息
GlobalDBAgent DBAgent GlobalMgrSvr LoginSvr WorldSvr ChatNode
38180 38181~38189 38170 38101~38109 38111~38119 38121

5.1.2 Linux服务端程序
所有的守护进程,均以 cabal的账号执行,必须在系统内加入cab al账号(安装服务端时自动完成);
# useradd cabal
A、DataBase 通信 RPM (unixODBC, freetds-unixodbc) 设置.
为了与DB通信,要准备下面的RPM. 即: GDBA, DBA服务器所必须的程序;
B、unixODBC 设置
外部网络可用的话,可以采用网络安� �:
# yum install unixODBC

也可以直接下载设置:
# rpm -Uvh unixODBC-2.2.11-1.RHEL4.1.i386.rpm

C、freetds-unixodbc 设置
在使用Sybase/Microsoft 的 Tabular DataStream protocol,而现在的0.64RC3 版本里,直接使用RPM包进行安装,命� �如下:
# rpm -Uvh freetds-unixodbc-0.64RC3-1.i386.rpm

5.1.3 unixODBC, freetds-unixodbc安装后设置
为了支持中文,要在环境参数里设置FR EETDS_UNIXODBC_CHARSET='cp936',我 们是使用叫cabal的帐号,要在/home/cabal/.bash_profile文件的参数里加进FREETDS_UNIXO DBC_CHARSET='cp9 36';
# adduser cabal
(如果没有cabal帐号,就建立一个. 不需要设置密码.)

# vi /home/cabal/.bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
PATH=$PATH:$HOME/bin

export PATH
unset USERNAME
export FREETDS_UNIXODBC_CHARSET='cp936'

/etc/odbcinst.ini 确认文件里有没有下面的内容,如果� �有就加进去.
#vi /etc/odbcinst.ini
[FreeTDS]
Description = FreeTDS unixODBC Driver
Driver = /usr/lib/libtdsodbc.so.0
Setup = /usr/lib/libtdsodbc.so.0
UsageCount = 1

在/etc/odbc.ini里加入以下服务器信息.
[服务器名称]
Driver = FreeTDS (与/etc/odbcinst.ini里指定的一样就可以)
Address = 服务器IP
Port = 端口, 基本 1433
Database = DATABASE名称
TDS_Version =版本 MS-SQL 2000 8.0

EX 1) 设置DBAgent时,加进 GAMEDB 的内容.
#vi /etc/odbc.ini
[CabalGame01]
Driver = FreeTDS
Address = 192.168.0.21
Port = 1433
Database = SERVER01
TDS_Version = 8.0

[CabalGame02]
Driver = FreeTDS
Address = 192.168.0.21
Port = 1433
Database = SERVER02
TDS_Version = 8.0
…….
EX 2) 设置GDBA时,加进ACDB的内容.
#vi /etc/odbc.ini
[CabalAccount]
Driver = FreeTDS
Address = 192.168.0.26
Port = 1433
Database = ACCOUNT
TDS_Version = 8.0

5.1.4 cabal-server RPM 安装即cabal服务端程序
A、cabal-server 设置
设置cabal-server-1.0-1.i386.rpm. (1.0-1为服务端版本号)
# rpm -Uvh cabal-server-1.0-1.i386.rpm
Preparing... ################################# [100%]
1:cabal-server ################################# [100%]

<参考>如果不装 unixODBC 或 freetds-unixodbc而设置RPM 的话,会出现如下错误.
# rpm -Uvh /tmp/cabal-server-1.0-1.i386.rpm
error: Failed dependencies:
libodbc.so.1 is needed by cabal-server-1.0-1.i386
libodbcinst.so.1 is needed by cabal-server-1.0-1.i386
Suggested resolutions:
/home/buildcentos/CENTOS/en/4.0/i386/CentOS/RPMS/unixODBC-2.2.9-1.i386.rpm
不使用DBA, GDBA的服务器不需要上述的RPM ,设置时可以选--nodeps.
# rpm –Uvh --nodeps /tmp/cabal-server-1.0-1.i386.rpm

<参考>如果想在已经设置 cabal-server 的服务器再设置RPM ,可以删除后再装, 设置时如果选择force,不删除就可以强 制重装RPM.
# rpm –Uvh –nodeps --force /tmp/cabal-server-1.0-1.i386.rpm
注:该RPM包括了所有Cabal服务端的进程 程序。
B、/etc/cabal/server_list 设置
在/etc/cabal/server_list 记下相应服务器要运营的DEAMON;
EX) 服务器上包括GlobalDBAgent, GlobalMgrSvr, DBAgent_01, DBAgent_02的进程
#vi /etc/cabal/server_list
GlobalDBAgent
GlobalMgrSvr
DBAgent_01
DBAgent_02

EX) 设置LoginSvr_01, WorldSvr_01_01, WorldSvr_01_02, WorldSvr_02_01, WorldSvr_02_02 的话.
#vi /etc/cabal/server_list
LoginSvr_01
WorldSvr_01_01
WorldSvr_01_02
WorldSvr_02_01
WorldSvr_02_02

C、/etc/cabal/*.ini 设置
更换/etc/cabal/*.ini的设置文件的内容.
<参考> rpm 设置后生成的 GlobalMgrSvr.ini, WorldSrv.ini, LoginSrv.ini, GlobalDBAgent.ini, DBAgent.ini是服务器进程配置文件的模板 ,修改这个文件后,执行/home/cabal/gen_config.sh,就会按照 /etc/cabal/server_list里的进程名,自动生成要正式 运营的服务器的配置文件 (*.ini);
配置文件中不使用的部分 (如, 网吧认证),在内容前可以加注(;).
EX) 各服务器的设置文件模板
#vi /etc/cabal/DBAgent.ini
[NetLib]
;Port=DBAgent里使用的 port 序号.
Port=38181
SendMaxBufSize=65536
ProcessDataLimit=10000
MaxUserNum=100
WatchsNoPackLimit=100000
SystemLogTTimeOut=100
ReactorTimeOut=-1
LogLevel=3

[DBAgent]
ServerIdx=1
DBProcessTNum=5
要与; DNS= odbc.ini里指定的[服务器名称]一致.
DSN=CabalGame01

[DSN]
; DBAddr=GAMEDB IP, WINDOW服务器设置所需的部分.
DBAddr=218.153.8.36
; DBCatalog=DB 名称, WINDOW服务器设置所需的部分.
DBCatalog=SERVER01
; DBId=连接DB 帐号.
DBId=cabalgame
; DBPwd=连接DB帐号的密码.
DBPwd=rjf2aus.wnrdj

#vi /etc/cabal/GlobalDBAgent.ini
[NetLib]
;Port=GDBAgent使用的 Port,
Port=38180
SendMaxBufSize=65536
ProcessDataLimit=30000
MaxUserNum=32
WatchsNoPackLimit=100000
SystemLogTTimeOut=100
ReactorTimeOut=-1
LogLevel=3

[DBAgent]
ServerIdx=128
DBProcessTNum=10
要与;DNS=odbc.ini文件保存的 [服务器名称]相一致.
DSN=CabalAccount

[DSN]
;DBAddr=ACDB IP
DBAddr=218.153.8.36
;DBCatalog=DB 名称
DBCatalog=ACCOUNT
;DBId=连接的DB帐号
DBId=cabalgame
;DBPwd=
DBPwd=rjf2aus.wnrdj


#vi /etc/cabal/GlobalMgrSvr.ini
[NetLib]
;Port=GlobalMgrSvr 使用的 Port,
Port=38170
SendMaxBufSize=65536
ProcessDataLimit=50000
MaxUserNum=500
WatchsNoPackLimit=100000
SystemLogTTimeOut=100
ReactorTimeOut=-1
ConnectRetryTime=5000
ConnectRetryNum=50
LogLevel=3

[GlobalMgrSvr]
Timer=1:10000
WorldMaxUserNum = 100
NoNotifyTimeLimit=60000
DefaultServerOpen=0

[DBAgent]
;Addr=GDBAgent IP
Addr=127.0.0.1
;Port=GDBAgent Port
Port=38180

[PCBangLK]
Addr=
Port=

#/etc/cabal/LoginSvr.ini
[NetLib]
;Port=LoginSvr使用的 Port.
Port=38101
SendMaxBufSize=65536
ProcessDataLimit=1024
MaxUserNum=20000
WatchsNoPackLimit=10000
SystemLogTTimeOut=100
ReactorTimeOut=-1
ConnectRetryTime=5000
ConnectRetryNum=10
LogLevel=3

[LoginSvr]
GroupIdx=1
Timer=1:10000,2:5000,3:5000
NoActiveLimitTime=40000
;指定客户端版本.客户端更新后要修改 版本信息.
client_version=9932

[GlobalMgrSvr]
;Addr=GlobalMgrSvr IP
Addr=218.153.8.38
;Port=GlobalMgrSvr port
Port=38170

# vi /etc/cabal/WorldSvr.ini
[NetLib]
;Port=WorldSvr使用的 Port.
Port=38111
SendMaxBufSize=32768
ProcessDataLimit=10000
MaxUserNum=500
WatchsNoPackLimit=30000
UseEncryptPacket=1
SystemLogTTimeOut=100
ReactorTimeOut=100
DisableReactorPipe=1
ConnectRetryTime=5000
ConnectRetryNum=10
LogLevel=3

[WorldSvr]
; ServerIdx=服务器组序号
ServerIdx=1
; GroupIdx=频道序号
GroupIdx=1
Timer=1:100,2:150,3:3000,4:10000,5:5000,6:60000,7: 3600000,8:2000,9:10000
CommonIniPath=Common.ini
IPAddress=
UpdateInterval=300000

# UseGameGuardAuth
## GAME GUARD认证使用与否 (0: false, 1: true)
UseGameGuardAuth=0

# AddGameGuardName
## GAME GUARD认证, V2.5开始不使用
AddGameGuardName=libggauth2.so.0

# GameGuardInterval
## GAME GUARD认证邀请间隔 (msec)
## GAME GUARD认证技能实施时间on/off: GameGuardInterval=0
GameGuardInterval=60000
NoResponseTimeout=180000

[DBAgent]
;DBAgent IP
Addr=218.153.8.38
;DBAgent Port
Port=38181

[GlobalMgrSvr]
;GlobalMgrSvr IP
Addr=218.153.8.38
;GlobalMgrSvr port
Port=38170

注:模板文件通过gen_config.sh的脚本处� ��来生成正式运营的配置文件。
D、/home/cabal/gen_config.sh 执行
执行/home/cabal/gen_config.sh.依据/etc/cabal/server_lis里服务器的目录,在 /etc/cabal/文件夹下自动生成正式运营服务器的� �境设置文件 (ini). 此外,生成 /etc/init.d/服务器名称执行文件。
#/home/cabal/gen_config.sh

以下的设置文件是正式运营服务器上� �文件,执行/home/cabal/gen_config.sh后。再仔细确认一下每个文� ��设置是否完整.

DBAgent_XX.ini ( XX : 各个服务器组序列号 )
GlobalMgrSvr.ini
GlobalDBAgent.ini
LoginSvr_XX.ini ( XX : LoginSvr 服务器个数,与 服务器组序号无关.)
WorldSvr_XX_YY.ini ( XX : 服务器组序号, YY : 频道序号)

<参考> 如果修改了 /etc/cabal/server_list DAEMON名称,执行了 /home/cabal/gen_config.sh, 修改/etc/cabal/server_list后必须要再次执行/home/cabal/gen_config.sh

E、GlobalMgrSvr 服务器(DAEMON) 认证
执行GMS之前,需要GMS认证码.认证方法� ��EST进行,新服务器设置时申请;(限 定了新服务器开设必须 通过EST)

F、关于服务器 (DAEMON)错误,要设置生成Core 文件
为了了解各服务机宕机的原因,要设� �生成的core文件。
/etc/init.d/functions 的 DAEMON 函数,就可以发现如下:
# vi /etc/init.d/functions
….
# make sure it doesn't core dump anywhere unless requested
ulimit -S -c ${DEMON_COREFILE_LIMIT:-0} >/dev/null 2>&1

# if they set NICELEVEL in /etc/sysconfig/foo, honor it
[ -n "$NICELEVEL" ] && nice="nice -n $NICELEVEL"

# Echo DEMON
[ "${BOOTUP:-}" = "verbose" -a -z "$LSB" ] && echo -n " $base"

# And start it up.
if [ -z "$user" ]; then
$nice initlog $INITLOG_ARGS -c "$*"
else
$nice initlog $INITLOG_ARGS -c "runuser -s /bin/bash - $user -c \"$*\""
fi
[ "$?" -eq 0 ] && success $"$base startup" || failure $"$base startup"

把下面的部分
$nice initlog $INITLOG_ARGS -c "runuser -s /bin/bash - $user -c \"$*\""

修改如下.
$nice initlog $INITLOG_ARGS -c "runuser -s /bin/bash - $user -c
\"ulimit -S -c ${DEMON_COREFILE_LIMIT:-0} >/dev/null 2>&1 && $*\""

5.1.5服务器(DAEMON) 执行
执行各服务器的DAEMON:
# service DAEMON名字 start

Ex) service WorldSvr_01_01 start
Service LoginSvr_01 start

统一执行各服务器的DAEMON:
# service cabal start

5.1.6 ACE (javascript:void(0)) Library
所有服务器都需要ACE,现在使用的是5. 5.1版本。
检查服务器上是否有/usr/lib/libACE.so.5.5.1 文件。
安装服务端程序后,会自动设置。

5.1.7 进程软链接设定
实际的服务器,是链接到服务器名称� �用
# ls -al /usr/bin/DBAgent_01
lrwxrwxrwx 1 root root 18 May 8 09:11 /usr/bin/DBAgent_01 -> /usr/bin/DBAgent
# ls -al /usr/bin/WorldSvr_01_10
lrwxrwxrwx 1 root root 19 May 8 09:11 /usr/bin/WorldSvr_01_10 -> /usr/bin/WorldSvr


5.2 Windows 系统服务端安装
5.2.1 运行在windows系统的cabal服务端程序介� �
账号数据库、游戏数据库服务器
更新服务器:P3 and update web(info server)
更新服务器构成要素.
■ Client-Side
Updater (Cabal update file download application)

■ Server-Side
Update web Server (info server)
- urlinfo.ini ( environment File ), fileinfo.dat (记录文件的CRC)
- UpdateFileName.torrent ( Torrent File )
- setup.exe.torrent (安装版用 Torrent File)

P3 Server
- BitTorrent Tracker
- BitTorrent File Seeder
- P3Register ( Update File Register Application)

5.2.2 数据库服务器
游戏数据库服务器说明见《GameDB 说明手册》;
账号数据库说明韩方未提供;

5.2.3 更新服务器info server
A、确认服务器上安装IIS服务器
B、将更新文件和urlinfo文件复制到http� �录下,架构如下:
Pds/目录:
- setup.exe.torrent 文件( 要有安装文件.)
Update/Files/Pure/目录:
- urlinfo.ini, FileInfo.dat 文件(更新文件信息与记录了文件的CRC 的文件)
Pds/P3_SerialNumber/
- 如果 P3Server 有3台, 就会有 P3_1, P3_2, P3_3文件夹, 更新文件update_123.dat, update_124.dat, update_125.dat 要在 P3_1, P3_2, P3_3文件夹. 文件名字虽然一样,但内容不同。
EX)
Pds/P3_1/
update_123.torrnet, update_124.torrent, update_125.torrent
Pds/P3_2/
update_123.torrnet, update_124.torrent, update_125.torrent
Pds/P3_3/
update_123.torrnet, update_124.torrent, update_125.torrent


注: P3_1/, P3_2/, P3_3/里有内容不同的torrent 文件, P3_1/里有指向 P3Server 1的内容,P3_2/里有指向P3Server 2的内容。
C、确认链接正确:
打开网页浏览器,在地址栏输入下面� �址.
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>) DNS 名称/Update/Files/Pure/urlinfo.ini
EX)
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)
下载窗口出现,说明可以正常设置了� �

D、urlinfo.ini 文件内容注释
先在; updateur下载,失败时在updateurl2下载.
; updateurl放在 CDN,updateurl2 交给EST.
; setupfile是 cabal_downloader不能用 p3下载时,用于下载的路径.
;updateurl =<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
;updateurl =<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

updateurl = <b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> : 下载更新相关内容的地方
setupfile = <b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> : 下载安装版的地址.
torrentfile = <b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> : 下载Torrent File 的地址.

[updateinfo] 更新文件内容.
updatemax=10 FileSeeder( BitTorrent_UpdateSvr) 最大数.
updateindex=4 现在有效的 FileSeeder (Update File 数)
testmax=3 test 服务器的最大 File Seeder
testindex=1 test server 有效的 FileSeeder (Update File 数)
p3count=3 服务的 P3服务器数
p3subdir=P3_ 文件夹名
p3SubDir1=P3_1 P3与服务器相匹配的文件夹名. P3count如果是 2 ,只读到 P3SubDir2.
p3SubDir2=P3_2
p3SubDir3=P3_3

[101] 100以上开始的是Test server 用文件.
version=1512 ;文件版本 ( update_1512.dat)
subversion=0 ;SERVER文件版本
DirectMode=0 ;下载方式(0为cdn和p3混合模式,1为cdn 单独)
torrenturl=<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> ;Torrnet 文件接收地址.
fileurl=<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> ;更新文件接收地址


[1] ;INDEX从1开始的是正式服务时所需的更� ��文件数
version=1350
subversion=1
DirectMode=0
torrenturl=<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
fileurl=<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

[2]
version=1460
subversion=1
DirectMode=0
torrenturl=<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
fileurl=<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

[3]
version=1500
subversion=0
DirectMode=0
torrenturl=<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
fileurl=<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

[4]
version=1508
subversion=0
DirectMode=0
torrenturl=<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
fileurl=<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

5.2.4 更新服务器P3 Server
A、更新文件上传所需的IIS FTP设置
为了上传更新文件,设置IIS FTP.
把HOME DIRECTORY设置在c:\Inetpub\ftproot\. ( 其他地方也可以)
更新文件上传在 c:\Inetpub\ftproot\update\ 文件夹下.
P3Register.exe 程序 FTP path 要与上传文件夹路径 (c:\Inetpub\ftproot\update\ )一致.

B、CabalP3Component.zip 压缩解压
CabalP3Componet.zip在 D:\里解压.
解压后 D:\CabalP3Componet\ DIRECTORY下有以下的DIRECTORY.
▪ Server Folder
Tracker Program(P2P Server)
▪ Client Folder
p2p Client ( File Seeder )
▪ UpdateFile Folder
Update File 所在的文件夹
▪ TorrentFile Folder
关于Update File的 Torrent 文件所在的文件夹
▪ TrackerInfo Folder
Tracker保存 client 信息的地方(Option)
▪ Program Folder
python-2.3.4.exe ( 为了运转Tracker,要设置PYTHON.)
maketorrent.exe ( 建立Update File相关的 Torrent文件的程序)
srvany.exe ( 把一般 Form 程序登录到SERVICE的程序)
instsrv.exe ( 登录SERVICE的程序)
▪ BatFile Folder
Tracker 与 File Seeder所需的Registry 设置 bat, Reg 文件等
▪ AutoRegister Folder
p3serviceregister.exe (上传Update,这个程序就会登录到SERVICE )
P3Service.ini ( 以上程序参照的环境文件)
- Log Folder ( P3ServiceRegister.exe.log : Log File )

C、python-2.3.4 安装
设置Tracker相关的WINDOW用 python 程序.
设置后确认是否有 C:\Python23\python.exe.

D、把srvany.exe, instsrv.exe复制到 c:\winnt\system32\
为了登录各个P3程序,把srvany.exe, instsrv.exe复制到 c:\winnt\system32\;

E、登录各 P3 程序SERVICE
把BitTorrent_P3Register, BitTorrent_Tracker, BitTorrent_UpdateSvr1~10 登录到SERVICE;
执行D:\CabalP3Component\BatFile\ServiceRegiste r.bat;
命令语形式 : instsvr “SERVICE名” “执行文件”
建立“BitTorrent_name” 的SERVICE. 执行的程序是 srvany.exe.
D:\CabalP3Component\BatFile\ServiceRegister.bat 内容
instsrv "BitTorrent_P3Register" "C:\WINNT\system32\srvany.exe"
instsrv "BitTorrent_Tracker" "C:\winnt\system32\srvany.exe"
instsrv "BitTorrent_UpdateSvr1" "C:\winnt\system32\srvany.exe"
instsrv "BitTorrent_UpdateSvr2" "C:\winnt\system32\srvany.exe"
instsrv "BitTorrent_UpdateSvr3" "C:\winnt\system32\srvany.exe"
instsrv "BitTorrent_UpdateSvr4" "C:\winnt\system32\srvany.exe"
instsrv "BitTorrent_UpdateSvr5" "C:\winnt\system32\srvany.exe"
instsrv "BitTorrent_UpdateSvr6" "C:\winnt\system32\srvany.exe"
instsrv "BitTorrent_UpdateSvr7" "C:\winnt\system32\srvany.exe"
instsrv "BitTorrent_UpdateSvr8" "C:\winnt\system32\srvany.exe"
instsrv "BitTorrent_UpdateSvr9" "C:\winnt\system32\srvany.exe"
instsrv "BitTorrent_UpdateSvr10" "C:\winnt\system32\srvany.exe"

F、Tracker SERVICE设定.
执行D:\CabalP3Component\BatFile\Torrent_Tracker. reg文 件.
形式)
- AppDirectory : Tracker 执行文件(bttrack.py 所在的文件夹)
- Application : 设置PYTHON的执行文件
- AppParameters : Tracker 参数

EX) D:\CabalP3Component\BatFile\Torrent_Tracker.reg 内容
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\BitTorrent_Tracker\Parameters]
"AppDirectory"="D:\\CabalP3Component\\Server"
"Application"="C:\\Python23\\python.exe"
"AppParameters"="D:\\CabalP3Component\\Server\\btt rack.py --port 6969
--dfile \"D:\\CabalP3Component\\TrackerInfo\\dstate\"
--allowed_dir \"D:\\CabalP3Component\\TorrentFile\"
--reannounce_interval 500 --yn_infoip \"218.232.117.245\""
执行 regedit ,在
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\BitTorrent_Tracker]
确认.

G、BitTorrent_UpdateSvr SERVICE (File Seeder) 设置.
执行D:\CabalP3Component\BatFile\FileSeeder.reg 文件.
一般运营 10个SERVICE(BitTorrent_UpdateSvr1~10), 也可以适当增加.
格式)
- AppDirectory : Seeder 执行文件(btdownloadheadless.exe所在的文件 夹)
- Application : Seeder 执行文件 Path
- AppParameters : Seeder 参数
- Format : Appparameters 的形式

EX) D:\CabalP3Component\BatFile\FileSeeder.reg 内容
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\BitTorrent_UpdateSvr1\Parameters]
"AppDirectory"="D:\\CabalP3Component\\Client"
"Application"="D:\\CabalP3Component\\Client\\btdow nloadheadless.exe"
"AppParameters"="--responsefile \"D:\\CabalP3Component\\TorrentFile\\setup.exe.tor rent\"
--saveas \"D:\\CabalP3Component\\UpdateFile\\cabal0816.exe\ "
--max_uploads 500 --min_uploads 50 --display_interval 1 --max_upload_rate 3000"
"Format"="--responsefile \"{0}\" --saveas \"{1}\" --max_uploads 500
--min_uploads 50 --display_interval 1 --max_upload_rate 5000"
….

H、BitTorrent_P3Register SERVICE设置
执行D:\CabalP3Component\BatFile\P3Register.reg 文件.
格式)
- AppDirectory : P3Register 执行文件(P3Register .exe所在的文件夹)
- Application : P3Register执行文件 Path
- AppParameters : 不使用.

D:\CabalP3Component\BatFile\P3Register.reg
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\BitTorrent_P3Register\Parameters]
"AppDirectory"="D:\\CabalP3Component\\Program\\Aut oRegister"
"Application"="P3ServiceRegister.exe"
"AppParameters"=""
I、D:\CabalP3Componet\Program\AutoRegister\P3Regi st er.exe 设置.
P3Register.exe周期监视在 P3Server FTP Root 里的 update文件夹,如有更新文件就登录到SE RVICE,保证File Seeder拥有;
■ p3serviceregister.exe

[update]
文件夹结尾要以 \ 结束.
-设置 IP = tracker 的IP( 主要用本地IP)
- FTP=D:\BitTorrent\Update\ : 要监测的文件夹路径.(更新文件要上传 的位置)
- UPPATH=D:\BitTorrent\UpdateFile\ :复制 update 文件的文件夹路径
- TORRENTPATH=D:\BitTorrent\TorrentFile\ :复制 torrent文件的文件夹路径

[File Server INFO] : FileSeeder 要参照的参数
( P3Register把 update文件登录到SERVICE时,在相应的SERV ICE AppParameter. )
- MINUPLOAD=50 : Seeder 的最小上传数
- MAXUPLOAD=100 : Seeder 的最大上传数
- MINPORT=6881
- MAXPORT=6999 : Seeder 使用的port 范围 [ 6881 ~ 6999 ]
- MAXUPRATE=5000 // 不使用.
- SERVICENAME=BitTorrent_UpdateSvr : 相应SERVICE名称
- SERVICECOUNT=10 : SERVICE index
- DISPLAYINTERVAL=1 :更新比率

[Function] :
- AutoCopy=0 : 决定是否把更新文件复制到别的P3Server .
P3 服务器为复数个时,全部上传会浪费� �间,所以连到network drive复制的PLAG
P3Server 1里有更新文件时,用NETWORK DRIVE把文件传给其他的P3Server
注:FileSize大时,分别用 P3 Server上传时,会花费很长时间。要使� �这个技能时在下面的[Option] 里的 AutoCopy值改为1; 0是不复制更新文件,自行处理。
COUNT=3
D_1=M:\Inetpub\ftproot\update (P3Server FTP Root/Update/ 文件夹)
D_2=N:\Inetpub\ftproot\update
D_3=O:\Inetpub\ftproot\update

- RegistType=0: 0 一般更新文件, 1 安装版文件

■ 使用方法
(1) 设置 INI与 P3Server符合.(用CONTROL在程序内设置,服 务器宕机时可以保存)
(2) 执行程序. (确认有auto service 时,周期监测)
(3) 程序周期检查在 FTP root 里的 Update 文件夹, update_1.dat, update_1.torrent, update_1.end, urlinfo.ini 文件(4个)都在时,开始更新.
(4) 检索到上面文件后,把 .dat 与 .torrent文件复制成update Path 与 torrent Path.
(5) 确认其他设置,把剩下的END, ini 文件删除.
注:update 文件夹要一直空着. Update_XX.dat, Update_XX.torrent 文件编号(XX)要一致, 要记录在urlinfo.ini,才可以正常驱动。
(6) 程序搜索记录在现有SERVICE ini里,以BitTorrent_UpdateSvr 名字开始的SERVICE,把version, subversion 值与记录在 urlinfo.ini里的有效更新文件编号进行对 比,优先把无效的SERVICE中止后,把REGI ST RY里各参数值用现有更新文件名字替换 后,重新开始SERVICE. 如果Update_150.dat是刚上来的值 ,就会被记录version = 150이. 如果名为 update_152_2.dat的文件上来,就被记录成v ersion = 150, subversion = 2.

J、用 Tracker确认更新文件是否正常使用
在EXIP=IP的 PC网页里,用相应的ip进去,就可以看� ��如下的更新文件内容.
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>服务器IP:6969


如果更新文件上传后, BitTorrent_UpdateSvr SERVICE正常重开始时,上面表格中,相� ��更新文件的complete 变成 1以上, download变成0以上. Complete如果不是 1,说明File Seeder没有正常登录文件.


6、配置说明
6.1 Linux 系统下服务端进程配置文件
在/etc/cabal 目录中, '服务器种类[_序号].ini'是Cabal相应服务端的配置文件;
EX)
/etc/cabal/GlobalMgrSvr.ini
/etc/cabal/WorldSvr_01_21.ini
A、GlobalDBAgent
- 执行文件
/usr/bin/GlobalDBAgent
直接使用DBAgent 进程时,一般是连上该进程的软链接� �行控制。
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
lrwxrwxrwx 1 root root 16 Apr 26 09:11 /usr/bin/GlobalDBAgent -> /usr/bin/DBAgent

- 配置文件
/etc/cabal/GlobalDBAgent.ini
[DBAgent]
DSN =在 /etc/odbc.ini里写入要使用的DB.在 /etc/odbc.ini 里加入与 ACDB相关的名称.
[DSN]
DBAddr, DBCatalog 在实际LINUX里是不使用的. WINDOW时,在守护进程开始时,已经登� �了ODBC,只需参考上面即可。 LINUX是已经在/etc/odbc.ini 里登录了.(因为从程序上不好登录,所 以事先登录好后开始.)
DBId = 要连接到DB的ID
DBPwd = DB密码

B、DBAgent
- 执行文件
/usr/bin/DBAgent_XX
软链接文件是'DBAgent_服务器序号' 形态.

-配置文件
/etc/cabal/DBAgent_XX.ini
Port = 为了不与别的服务器重复,在38181~38189 之间设置.
[DBAgent]
ServerIdx = 记下相应的服务器序号. 在DBAgent_XX.ini 里要与 XX 值一样.
其余与 GlobalDBAgent 的设置方法一样.

C、GlobalMgrSvr
- 执行文件
/usr/bin/GlobalMgrSvr
GlobalMgrSvr全服只需要一个,所以直接� �/usr/bin/GlobalMgrSvr;

- 配置文件
/etc/cabal/GlobalMgrSvr.ini
[DBAgent]
Addr = GlobalDBAgent 的IP
Port = GlobalDBAgent 的端口 (基本 38180)
* [PCBangLK]
* MIDEA WEB PC房认证服务器 (LK) 信息
* Addr = LK 的IP
* Port = LK 的端口 (基本 10004)
* 如果不使用网吧认证,上面的值留为� �白就可以.

D、LoginSvr
- 执行文件
/usr/bin/LoginSvr_XX
软链接的文件是 'LoginSvr_服务器序号'.
客户端更新后在 /etc/cabal/LoginSvr_XX.ini 修改客户端版本信息后, 需要重新引导配置文件;

# service LoginSvr_XX reload

- 配置文件
/etc/cabal/LoginSvr_XX.ini
[LoginSvr]
GroupIdx = 记下相应GROUP序号. 在LoginSvr_XX.ini 要与 XX 的值一样.
client_version=输入客户端版本信息.
[GlobalMgrSvr]
Addr = GlobalMgrSv的IP
Port = GlobalMgrSvr的端口 (基本 38170)

E、WorldSvr
- 执行文件
/usr/bin/WorldSvr_XX_YY
软链接的文件是'[WorldSvr]_服务器序号_频道' 形式。

-配置文件
/etc/cabal/WorldSvr_XX_YY.ini
[NetLib]
Port = 为了不和别的服务器重复,在38111~38119 之间设置.
[WorldSvr]
ServerIdx = 记下相应的服务器序号.在 WorldSvr_XX_YY.ini 里要与 XX 的值一样.
GroupIdx = 记下相应GROUP (频道)的序号.在 WorldSvr_XX_YY.ini 里要与 YY的值一样.
AddGameGuardName =填写需实时LOAD的GAME GUARD CS认证MODULE.(只需 GAME GUARD认证LIBRARY V2.0)
UseGameGuardAuth = [0: Off, 1: On] (GAME GUARD CS认证 On/Off, RUN TIME可适用)
GameGuardInterval = GAME GUARD CS认证
[DBAgent]
Addr = DBAgent_XX 的IP
Port = DBAgent_XX 的端口 (38181~38189)
[GlobalMgrSvr]
Addr = GlobalMgrSvr的IP
Port = GlobalMgrSvr的端口 (基本 38170)

F、ChatNode
- 执行文件
/etc/cabal/ChatNode_XX.ini
软链接的文件是'[ChatNode]_服务器序号' 形式。
-配置文件
[NetLib]
Port = 38121
[ChatNode]
ServerNationIdx = 记下相应的服务器序号.在 ChatNode_XX.ini 里要与 XX 的值一样
[DBAgent]
Addr = DBAgent_XX 的IP
Port = DBAgent_XX 的端口 (38181~38189)
[GlobalMgrSvr]
Addr = GlobalMgrSvr的IP
Port = GlobalMgrSvr的端口 (基本 38170)

6.2关键文件说明
A、/etc/cabal/server_list
运营中服务器上记录着要执行的守护� �程的清单.
在/etc/init.d/cabal, /home/cabal/check_daemon.sh, /home/cabal/gen_config.sh里参考这个文件;

B、/etc/logrotate.d/cabal
适当截取'/var/log/cabal/服务器名称.log' 的 logrotate 设置文件;

C、/home/cabal/backup_trc.sh
把放在服务器上的'/var/log/cabal/服务器名称_时间.trc' 文件复制成备份服务器;
以供备份服务器构成时设置;

D、/home/cabal/check_daemon.sh
在/etc/cabal/server_list的守护进程里,如果检查有进 程没有执行,马上执行它;
E、/home/cabal/dump_core.sh
把WorldSvr 死掉时留下的 /home/cabal/core.pid 文件读取;
方便查看'gdb /usr/bin/WorldSvr.debug core.xxxx' 的脚本。

F、/home/cabal/gen_config.sh
把/etc/cabal/server_list 里的守护进程的设置 (/etc/cabal/*.ini)自动GENERATING的脚本

G、/etc/cron.d/backup_trc
每天凌晨 1点执行/home/cabal/backup_trc.sh.

H、/etc/cron.d/chk_cabal
每 1分钟执行 /home/cabal/check_daemon.sh.
服务器宕机时,在1分钟内重新启动.

I、/etc/init.d/cabal_server
'/etc/init.d/软链接到守护进程名称'的文件

J、/etc/init.d/cabal
读取/etc/cabal/server_list 种类,一次执行'/etc/init.d/服务器名称'等.
EX)重新开始这个服务器里所有的守护� �程
# /etc/init.d/cabal restart 等同 service cabal restart

6.3 LOG文件
在/var/log/cabal 目录,以'服务器种类[_序号].log' 保存.
EX)
/var/log/cabal/LoginSvr.log
/var/log/cabal/WorldSvr_21_01.log

6.4 cabal进程脚本
使用Redhat linux系统里用于进程控制的脚本。
/etc/init.d 里有与服务器名相同的脚本。
EX)
/etc/init.d/LoginSvr
/etc/init.d/DBAgent_21
实际上,服务器都使用一样的 /etc/init.d/cabal_server 文件,在脚本里选择用各种不同的进� �种类来控制的守护进程开启与关闭。
# ll /etc/init.d/GlobalMgrSvr
lrwxrwxrwx 1 root root 24 May 8 09:11 /etc/init.d/GlobalMgrSvr -> /etc/init.d/cabal_server
三、维护管理篇
<参考>排错思路
▪ 发现故障后,首先确认故障点;
▪ 排查准则,先软后硬;
▪ 先查网络状态,再查服务进程;
▪ 找到故障问题点和起因,核查程序日� �;
▪ 排除故障后,详细记录,作为维护参� �FAQ;

1.工具介绍
Cabal维护的主要工具包括Server Monitor、Cabal Manager、Mailing Manager、Log Viewerl、Program Browser;
这里主要介绍Server Monitor和log Viewerl工具:
1.1 使用Server Monitor
Server Monitor (javascript:void(0)) 开服流程:
A、 打开每个区域的Server Monitor工具;输入授权的账号和密码登� ��;

B、 输入Ctrl+R 勾选range和open,输入服务器和频道的� �号范围点击apply开启服务;

C、 输入Ctrl+G 可以对每个服务器和频道进行状态设� �;

D、 其中J代表绿色频道,A代表白色频道, War代表战争频道,conn可设定频道人数� ��限;
E、 为了开机是能快捷和准确,我们设定� �脚本开机方式;同时按下Ctrl+Alt+A,脚 本格式如 下:
<server>
<srange>1</srange> ;服务器范围
<channel>
<range>1</range> ;频道范围
<limit>200</limit> ;人数上限
<adult>0</adult> ;频道属性[0为绿色频道、1为白色频道]
</channel>
<channel>
<range>2~6</range>
<limit>100</limit>
<adult>0</adult>
</channel>
<channel>
<range>7</range>
<limit>200</limit>
<adult>0</adult>
</channel>
</server>

F、 设定玩脚本代码点击’save’保存代码� ��修改,按’Execute’执行代码,勾选se rv er open的话就会按照代码指定的属性进行� ��服操作。
G、 完成以上操作后,所有人头图标全部� �绿色,为成功开服,使用客户端登录� ��试。
Server Monitor 关服流程:
A、 右键点击Login Server的图标,选择OFF,关闭Login Server。
B、 敲入Ctrl+R,确定不勾选Open,选择use range appoint,输入所有服务器和频道范围,� ��击apply。

C、 敲入Ctrl+M,选择send message的广播方式向玩家发送即将关服� ��信息。

D、 接着使用shutdown的广播方式开始确认踢 人。
E、 最后使用force shutdown的广播方式踢出所有玩家。

1.2 Log Viewer工具使用
A、Start 菜单
用于与服务器连接
Connect: 与服务器连接
DisConnect: 切断与服务器的连接
B、 Option 菜单
连接后激活
GetData & Create Macro
打开可以获取数据的MARCO创建窗口
保存创建的MARCO,可以减轻重设置MARCO� ��麻烦

C、 制作Marco

点击‘New’新建一个Macro

在Setting窗口中,选择要查询的Server、C hannel和Commands查询类目(类目详细 介绍可参考Cabal log明细单.xls),并且可以设定条件,� ��时间、角色ID号、登录IP地址等,选� �后,可以保存为一个 特定Macro,按Run进行查询,完成后,点 击ok;
出现如下图示:













点击‘Save to Excel’,将输出的内容保存为Excel文件� ��

2. 日常维护
2.1常用指令集
检查网络状态:(绿色字体本地PC执行 ,红色字体远程服务器执行)
A、测试故障服务器网络是否正常:
ping ‘IP’ IP为故障点服务器外网IP;
B、查看故障服务器的网络链接情况:
netstat –an (PS:检查是否有公网IP的链接以及各� ��用服务器间链接是否正常建立,监听 端口是否正确;)
tcp 0 0 0.0.0.0:38112 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:38113 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:38114 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:998 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:199 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:982 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:38111 0.0.0.0:* LISTEN
tcp 0 280 222.73.241.17:38112 222.185.246.222:41299 ESTABLISHED
tcp 0 90 222.73.241.17:38114 220.152.161.139:50032 ESTABLISHED
tcp 0 36 222.73.241.17:38111 58.37.3.117:1135 ESTABLISHED
tcp 0 51 222.73.241.17:38113 222.67.51.141:1085 ESTABLISHED
LISTEN为本机监听端口,ESTABLISHED为成功 建立两台服务器之间的链接。
C、查看cabal进程是否正常运行:
# ps aux |grep cabal (正确显示以下内容为正常)
cabal 2575 15.5 15.2 877360 633540 ? S<l Jun07 237:32 WorldSvr_01_01
cabal 2610 7.0 12.6 754052 525112 ? S<l Jun07 107:46 WorldSvr_01_02
cabal 2645 6.6 13.5 777028 560808 ? S<l Jun07 101:28 WorldSvr_01_03
cabal 2680 6.0 12.7 753352 530284 ? S<l Jun07 91:50 WorldSvr_01_04
D、查看cabal进程日志(日志文件的说� �上面已经列明):
#tailf /var/log/cabal/WorldSvr_01_01.log 实时监控日志文件输出内容;
#tail -50 /var/log/cabal/WorldSvr_01_01.log 查看日志文件的最后50行;
#more /var/log/cabal/WorldSvr_01_01.log 以每频幕为单位显示日志文件的所有� �容(空格键继续);
#cat /var/log/cabal/WorldSvr_01_01.log |grep –i error 只检查日志文件的Error行;
注:检查日志文件以查看Error行为主, 判断出错原因。
E、查看服务器运行的哪些进程?
#catcabal (脚本命令等同cat /etc/cabal/server_list)
WorldSvr_01_01
WorldSvr_01_02
WorldSvr_01_03
WorldSvr_01_04
F、Cabal维护脚本说明:
所有维护用脚本全部放在各区manager server的/root/cabal/目录下:
chnstop_all:关闭所有cabal服务进程;
chnstart_all:开启所有cabal服务进程;
chnstart_world:只开启World Server 进程;
chnstop_world:只关闭World Server 进程;
chnstop_chat:只关闭Chat Server进程;
chnstart_chat:只开启Chat Server进程;
cmd[game/chat]_shell.sh: 全服(游戏服/聊天服)控制命令;
scp[game/chat]_cmd.sh: 全服(游戏服/聊天服)复制命令;
check_md5.sh:校验各服务器进程主程序� �md5值;
check_proc.sh:检查每台服务器的服务进� ��运行情况;
所有脚本使用规则:
确定当前目录为/root/cabal/
脚本执行格式:./脚本名字 [参数1] [参数2]
脚本陆续更新中……
2.2系统维护内容
A、系统帐户
查看有无新增系统帐户,并了解其来� �及用途;查看管理员组里有无新增帐� ��,以及所有账户的账户策略有无变动 ;
Windows服务器操作如下:
开始 -> 运行 -> regedt32(赋予查看sam键值的权限)
开始 -> 运行 -> regedit (HKEY_LOCAL_MACHINE/SAM/SAM/DOMAIN/USERS/NAMES/)
开始 -> 运行 -> compmgmt.msc (打开计算机管理窗口检查里面的用户� ��限和策略)
Linux服务器操作如下:
cat /etc/passwd查看有没有大于500的用户;(cabal 用户除外)
B、监听端口
查看当前打开的服务端口,查找可疑� �端口;
Windows服务器操作如下:
使用Fport工具或netstat -an |findstr "LISTEN"
Linux服务器操作如下:
直接打LISTEN或netstat –ant |grep LISTEN
C、任务管理器
使用任务管理器,查找有无可疑的应� �程序或后台进程在运行,并观察CPU及� ��存的使用状态;
Windows服务器操作如下:
Ctrl + Alt + Del 选择task manager
Linux服务器操作如下:
top命令可查看系统状态,free命令可查� ��系统内存信息。
D、 系统服务
开始->程序->管理工具->服务,察看所有系统服务,检查是否� �陌生的未知的服务;
E、 启动项
检查注册表编辑器,查找有无可疑的� �序被加到Windows的启动项里;
Windows服务器操作如下:
开始 -> 运行 -> regedit (HKEY_LOCAL_MACHINE/SOFTWARE/MICROSOFT/WINDOWS/CURRENTVERSION/RUN)
Linux服务器操作如下:
cat /etc/rc.local有无多余执行脚本或者命令存在 。
F、 日志分析
Windows服务器操作如下:
查看事件查看器,检查“系统日志”� �安全日志”“应用程序日志”里有无� ��疑的事件或影响系统性 能的事件;
Linux服务器操作如下:
cat /var/log/message |more 查看有没有错误信息
cat /var/log/secure |more查看有没有入侵和攻击信息
G、 共享目录
检查共享目录,关闭所有共享;
H、 硬盘空间
检查磁盘空间情况,对必要内容进行� �份;
Windows服务器操作如下:
磁盘信息查询,我的电脑(备份服务� �详见《cabal服务器备份方案》)
Linux服务器操作如下:
服务器状态可查询各区监控服务的接� �或用df –h命令查看磁盘状态,linux下备份可� �用脚本完成。
I、在线人数/服务器监控
利用工具实时监控在线人数,各个频� �状态,及时发送需求的公告和运营信� ��。发现人数变动异常及时记录和汇报 相关负责人和部门主管。
服务器状态监控,各个大区都有一套� �控平台。检查关键指标的峰值和均值� ��发现异常及时处理。

3.停机维护
3.1系统更新
检查操作系统的系统更新,保持同步� �新;
3.2安全扫描
使用病毒及木马查杀软件扫描内存及� �盘,并保持病毒库的更新。
3.3操作记录
记录所有的维护项目及操作步骤,如� �现任何异常情况及时汇报相关负责人� ��部门主管。
3.3重启服务器
完成所有检测后,重启该服务器。
3.4数据库备份
A、检查数据库服务器备份情况
B、检查是否依据制定的备份方案定期� ��份
C、校验备份包及事物日志
D、检查最新备份包是否传送到备份服� ��器
3.5 硬件和网络
重启服务器后,检测每台服务器的状� �,如发现有服务器故障,及时联系IDC� ��房,检测网络和硬件状态,并汇 报相关负责人和部门经理。




4.更新流程
4.1更新环境
惊天动地游戏更新按内容主要分为服� �器端更新、客户端更新两个部分,逻� ��图如下:


A、服务端更新:
-涉及服务器全部为linux系统;
-服务器类型:World Server、Login Server、GMS Server、Chat Server、DBA Server;
-由Manager Server同步更新;
-执行脚本进行更新、检查和排错;
-更新前必须先关闭服务的进程,更新� �毕后,需要重启系统。

B、客户端更新:
-涉及服务器为windows和linux系统;
-服务器类型:P3 Server、info server、Login Server以及CDN;
-更新包需要上传到CDN,提前完成;
-Info server最后更新:指定客户端下载更新� �件定位和方式『P3和CDN』;
-确定服务端和客户端版本一致;


4.2更新原则
更新采用覆盖原文件的方式,所以每� �更新前必须备份原程序(尤其是二进� ��和data文件);
覆盖服务器文件前,确保更新文件的� �确性(尤其是配置文件);

4.3服务端更新流程
A、测服更新
 更新在停机维护的时候进行;
 更新前确认需要更新的程序和文件是� �些?什么时候更新?是否需要改动配� ��文件?
 韩方会在远程将ITS 服务器(222.73.241.209)更新完毕;
 根据更新的程序和文件修改update脚本� �
脚本所在位置:/root/cabal/
脚本文件名:update_xx(xx表示区域)upd ate_gz update_sh update_tj update_xn
修改的脚本内容:vi update_sh
#sync_backup $server /usr/bin/LoginSvr (Login Server的主程序如更新需要重启该服务� �
sync_backup $server /usr/bin/GlobalMgrSvr (GMS Server的主程序如更新需要重启该服务� �
#sync_backup $server /usr/bin/DBAgent (DBA Server的主程序如更新需要重启该服务� �
sync_backup $server /usr/bin/WorldSvr (Game Server的主程序如更新需要重启该服务� �
#sync_backup $server /usr/bin/ChatNode (Chat Server的主程序如更新需要重启该服务� �

#sync_backup $server /usr/lib/libggauth2.so.0
#sync_backup $server /usr/lib/libggauth2.so.50
#sync_backup $server /usr/lib/libggauth2.so.51
#sync_backup $server /usr/lib/libggauth2.so.52
#sync_backup $server /usr/lib/csauth2.cfg

#sync $server /etc/cabal/CashDBAgent.ini
#sync $server /etc/cabal/GlobalDBAgent.ini
#sync $server /etc/cabal/GlobalMgrSvr.ini
#sync $server /etc/cabal/LoginSvr.ini
#sync $server /etc/cabal/DBAgent.ini
#sync $server /etc/cabal/ChatNode.ini
#sync $server /etc/cabal/WorldSvr.ini
#sync $server /etc/cabal/Common.ini
#sync $server /etc/cabal/Data/
注:行首带“#”的为注释,修改时,� ��据需更新的程序和文件在这里进行设 定,也就是在行首增加 和删除“#”
其他内容不需要进行更改。
 修改完4个地区名的脚本后,依次执行� ��本;
确保在/root/cabal/目录下:
cd /root/cabal/
./update_sh
./update_tj
./update_xn
./update_gz


B、Manager Server更新
完成以上步骤后,4个地区的Manager Server就和ITS的程序文件同步了。
 以下步骤将更新同步到Real Server:
登录到各区的Manager Server,这里以上海(请查阅《cabal服务 器信息简表》)为例:
 进入更新脚本所在目录:
cd /root/cabal/
 相关更新需要用到脚本说明:
update_all:同步所有cabal Server;
update_login:同步login Server;
update_gms:同步GMS Server;
update_dba:同步dba Server;
update_chat:同步Chat Server;
update_world:同步World Server;
update:同步某一台服务器;(如:updat e login01)
check_md5.sh:校验各服务器进程主程序� �md5值;
check_proc.sh:检查每台服务器的服务进� ��运行情况;
 关闭服务器
Server Monitor 关服,并踢出玩家。
 同步前修改update脚本:(以更新World Server为例)
vi update 修改内容同ITS,另外取消以下两条的� �释:
ssh $server rm -f /home/cabal/core\*
ssh $server rm -f /home/cabal/check_daemon.log
 关闭服务进程:
cd /root/cabal/
./chnstop_world (关闭所有的World Server的进程)
 同步更新文件至每台game server:
./update_world
 检查更新文件(比对md5值是否一致)
cd /root/cabal/check/
./check_md5.sh
***** gms01 *****
local GlobalMgrSvr : 2a980a0a2e722c09abe5a65136896a77 /usr/bin/GlobalMgrSvr
gms01 GlobalMgrSvr : 2a980a0a2e722c09abe5a65136896a77 /usr/bin/GlobalMgrSvr
 开启服务进程(维护时重启系统)
cd /root/cabal/
./chnstart_world (开启所有的World Server的进程)
./cmdgame_shell.sh reboot (重启所有World Server的操作系统)
cd /root/cabal/check/
./check_proc.sh (重启系统后执行,坚持所有World Server的进程是否运行)






C、更新流程图












































 开启服务器
Server Monitor 开服。玩家正常登录,确定更新完成� �
注:如需要,可在防火墙作限制,进� �内部测试。

4.4客户端更新流程
A、上传CDN
 更新包文件update_xxx.dat(xxx为更新版本 号,非客户端版本号)
 上传CDN的FTP 222.73.242.246 的update目录
 计算dat文件的md5值,使用工具winmd5等� �
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
邮件内容写明更新文件名,upload位置� �md5值,更新频道。例如:
Icust 您好!

本次更新1个文件:
[url]ftp://222.73.242.246/update/update_159.dat
md5值
ce26bf9ac330f0335b8e546c2cf2daa4 update_159.dat
更新频道为
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
的pds目录下

请尽快更新 谢谢!
 电话确认更新事宜,CDN更新完毕后,� �通过邮件回复。
 分别测试:四个频道的下载地址。如� �<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
链接无问题CDN同步成功。

B、上传P3 Server
非必要更新,视更新包文件大小而定� �目前暂定大小超过6MB需要更新。

C、更新Info Server (所有更新完毕后)
Info Server主要提供客户端版本比对和更新la nucher版本。
找到urlinfo.ini文件,一般位于HTTP发布� �录下的Update\Files\pure\目录 中。
内容注释:
[download]
MAX_FAIL_P3TRAN=10
LIMIT_LOW_SPEED=5
STANDARD_P3_SPEED=5
LIMIT_SPEED_MAX_COUNT=60
ALLOW_SPEED_INC_VALUE=2
DOWNLOAD_RETRY_COUNT=5
CONNECT_WAIT_TIME=20
[MODE]
P3=1
[version] #lanucher 版本
launcher=1.21
[urlinfo]
updateurl = <b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
setupfile = <b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
torrentfile = <b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
[updateinfo]
updatemax =10
updateindex =6 #更新文件索引 最大值为10
testmax =3
testindex =0
p3count =4
p3subdir =P3_
p3SubDir1 =P3_1
p3SubDir2 =P3_2
p3SubDir3 =P3_3
p3SubDir4 =P3_4
[1] #更新文件索引号
version=21
subversion=1
DirectMode=0
torrenturl=<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
fileurl=<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
subfileurl=<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
…………
[6] #更新文件索引号 添加的项目数不能大于updateindex所设之 数。
version=166 #更新文件版本
subversion=0 #子版本号
DirectMode=0 #下载方式(0为cdn和p3混合模式,1为c dn单独)
torrenturl=<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> #种子文件所在位置
fileurl=<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> #更新文件下载位置
subfileurl=<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

韩方会提供比对的urlinfo.ini文件,据此 ,更新info服务器的设置,增加和删除� ��目。不可直接 使用韩方提供的文件。
其次根据实际情况设定DirectMode。视更� ��包文件大小而定。
更新文件索引号的数量请参考韩方给� �urlinfo.ini。

更新lanucher的方法:
直接将更新的文件(update.exe update.1st等)
覆盖HTTP目录下的Update\Files_2\的原文件� ��
注:各区的url的地址都不相同,所以� �新时,最好的方法就是在原来的urlinfo 文件上修 改。

D、调整LoginSvr上的客户端版本
 登录各区的LoginSvr;
 进入Login Server 的配置文件所在目录:
#cd /etc/cabal
 编辑配置文件:
#vi LoginSvr_01.ini
[NetLib]
Port=38101
SendMaxBufSize=65536
ProcessDataLimit=10240
MaxUserNum=20000
WatchsNoPackLimit=10000
SystemLogTTimeOut=100
ReactorTimeOut=-1
ConnectRetryTime=5000
ConnectRetryNum=10
LogLevel=3

[LoginSvr]
GroupIdx=1
Timer=1:10000,2:5000,3:5000
NoActiveLimitTime=40000
client_version=1071 #客户端版本 修改与cabalmain.exe的版本相同;

[GlobalMgrSvr]
Addr=172.16.1.5
Port=38170

 重载配置文件
#service LoginSvr_01 reload



4.5客户端更新流程图




<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
































4.6 数据库更新
数据库更新EST实现给出详细更新方法� �执行用的SQL脚本,一般根据更新方法� ��说明,依次在每台game DB或者每个区的AccountDB中的查询分析器 中执行sql脚本即可。
EST在更新数据库是会提供在线帮助的� �务,有问题及时联系商务部韩翻即可� ��
5.数据备份
游戏整体数据备份方面,主要包括Serve r端程序以及数据库两部分的备份内容� ��
5.1服务器端程序备份:
首先:服务器端程序的备份相对简单� �主要是采取刻录光盘的形式,即每次� ��新版本的服务器端程序发布后,将其 连同客户端,一同刻录光盘保存。
其次:在每次更新服务端程序时,必� �备份原来的旧程序到本地的备份目录� ��,以便出现问题时可以 及时恢复。
最后:做好相应的所有更新前后的版� �整理工作。

5.2数据库备份
Cabal DB的架构:
Game DB 主数据库(记录玩家在游戏中角色信� �等)
Account DB 账号数据库(记录玩家用户信息等)
Shop DB 商城数据库
根据各DB的数据重要程度,各DB的具体� ��份情况如下:
5.2.1 Game DB 的备份


A、Game DB数据比较重要,一般Game DB数据所在的硬盘需要作raid 1的冗余备份;物理上对数据作冗余备� ��,有利于因硬件磁盘故障导致数据丢 失后的数据恢复工作;
B、先利用SQL自带的数据库维护计划,� ��别对DB进行完全备份以及事物日志备� ��, 备份目录统一为D:\Sql_bak;
C、利用同步备份软件,将每次备份的� ��据同步备份至Backup Server;
D、每周将最近一次备份的资料上传到� ��储设备或者下载到公司服务器上并刻 录成光盘保存。

5.2.2 Shop DB、Account DB的备份
(由于这两中DB都比较重要,故建议以 下3个备份方案,具体采用哪个备份方� ��将通过综合考虑决 定?)
Account DB和Shop DB采用相同的备份方案,以下以Account DB为例进行介绍
服务器硬盘之间直接备份(方法同Game DB)

A、架设服务器时, Account DB数据所在的磁盘需要作raid 1的冗余备份;物理上对数据作冗余备� ��有利于因硬件磁盘故障导致数据丢失 后的数据恢复工作;
B、先利用SQL自带的数据库维护计划,� ��别对DB进行完全备份以及事物日志备� ��, 备份目录统一为D:\Sql_bak;
C、利用同步备份软件,将每次备份的� ��据同步备份至Backup Server;
D、每周将最近一次备份的资料上传到� ��储设备或者下载到公司服务器上并刻 录成光盘保存。
数据库群集备份

A、架设服务器时, Account DB数据所在的磁盘需要作raid 1的冗余备份;物理上对数据作冗余备� ��有利于因硬件磁盘故障导致数据丢失 后的数据恢复工作;
B、采用数据库群集的架构,既可以保� ��数据的安全,同时也可以减轻单台Acc ount Server的负载,减少计划外的停机时间� �
C、每周将最近一次备份的资料上传到� ��储设备并下载到公司服务器上并刻录 成光盘保存。

四、惊天动地 FAQ
1.服务器故障
A、客户端用户登录后无法显示服务器� ��表?
查看server monitor是否正常开始服务,server monitor工具是否正常运作。
B、 客户端用户登录中,无法连接服务器� �
检查login服务器是否正常运行?GlobalDBA gent 服务器和AccountDB链接是否正常。
C、 客户端显示登录服务器版本不对?
只有更新维护后,会出现这个故障,� �因为login服务器的进程配置文件中clien t_version字 段的内容和客户端主执行文件cabalmain� �版本不正确。

LoginSvr_01.ini文件中client_version=1104;
D、 连续多组服务器同时出现服务中止现� �?
判断为游戏服务器所在的刀片中心故� �,按照排错思路,先检查网络状态,� ��后查看进程运行情况。也就是先检查 刀片中心的交换模块,可在刀片中心� �模块管理中,重启交换模块,来解决� ��问题。在确认刀片中心网络正常的情 况下:在排查每台刀片服务器的网络� �态,确保网络可以正常工作。确认以� ��步骤都正常的情况下,还不能连通网 络,可联系机房查看网线连接和交换� �端口。
E、 多个或者单个频道出现故障?
多个频道故障,现在每台World Server提供连续的4个频道服务,确定是� ��些频道的服务器出现故障后,同样的 先查网络,如外网不通,可 通过manager服务器进行内网连接,内网� ��不通的话,可判断为服务器已经宕机 或者网络服务中断,可通过 刀片中心的管理模块远程连接到该服� �器上查看,如已经宕机,可在管理模� ��中重启该片服务器。单个频道故障一 般系统会自动重启该频道,如不行,� �登上该服务器进行手动重启。
F、 玩家反映不能进行私聊或者工会服务� �
该服务由聊天服务器提供,定位故障� �的服务器,进行手动重启该进程,就� ��解决。必须在确保网络正常连接的情 况下。
G、 Server Monitor显示服务正常工作,但玩家不能� ��常登录,且login人数异常?
如果是全服都存在该问题,先检查globa lDBAgent服务器状态是否正常,进程服务 、网络状态、并查 看日志;和accountDB连接是否正常等;� �着查看AccountDB服务器状态是否正常,s ql服务 、网络服务、磁盘空间等。
个别服务器组存在该问题:查看该服� �器组的DBAgent和对应的GameDB服务器。检 查项目依照排错思 路。
H、 玩家分配道具异常,摩宝箱可看到道� �但不能正常转移到角色身上?
主要是CashDBAengt服务器出现故障引起, 依照排错思路进行检查。

2.客户端故障
详见官网(逐步添加)

五、参考选项
1.参考文档
cabal逻辑结构拓扑图
cabal网络结构拓扑图
GAME DB 说明手册
Blade manual(IBM刀片中心管理模块介绍)
刀片服务器和刀片中心介绍参考:
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
Linux 学习论坛
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
2.其他说明