您的当前位置:首页正文

Coremail XT V2.0 系统工具使用手册

来源:个人技术集锦
 Coremail XT V2.0 系 统 工 具 使 用 说 明

盈世信息科技(北京)有限公司 Copyright 2000-2009 Coremail System

http://www.mailtech.cn 销售咨询热线:800-830-7652 技术支持热线:800-830-5422 盈世信息科技(北京)有限公司

版权声明

本文档版权归盈世信息科技(北京)有限公司所有,并保留一切权利。未经书面许可,任何公司和个人不得将此文档中的任何部分公开、转载或以其他方式散发给第三方。否则,必将追究其法律责任。

免责声明

本文档仅提供阶段性信息,所含内容可根据产品的实际情况随时更新,恕不另行通知。如因文档使用不当造成的直接或间接损失,本公司不承担任何责任。

文档更新

本文档由盈世信息科技(北京)有限公司于2009年6月最后修订。

公司网站

http://www.mailtech.cn

销售咨询热线 800-830-7652 技术支持热线 800-830-5422

联系方式

广州 地址:广州市中山大道科韵路16号广州信息港网易大厦3楼

邮编:510665

北京

联系电话:+86(20)85106566

传真:+86(20)85106595

地址:北京市西城区西外大街1号院西环广场T3座7层B7-B8 邮编:100044

联系电话:+86(10)58301930

传真:+86(10)58302888

上海 地址:上海市静安区长乐路672弄33号B幢3楼 邮编:200040

联系电话:+86(21)61103951

传真:+86(21)61107756

成都 地址:成都市高新区永丰路47号玉林商务港5楼518室

邮编:610041

联系电话:+86(28)66252331

传真:+86(28)66252332

盈世信息科技(北京)有限公司

目录

前言 .................................................................................................................................................. 1 1 系统工具列表 ........................................................................................................................... 1 2 系统工具使用方法 ................................................................................................................... 2

2.1 cmctrl.sh .................................................................................................................... 2 2.2 coremail .................................................................................................................... 2 2.3 rmi ............................................................................................................................. 3 2.4 tomcatctl.................................................................................................................... 3 2.5 apachectl ................................................................................................................... 3 2.6 confutil ...................................................................................................................... 4 2.7 sysmonitor ................................................................................................................. 4 2.8 convertlog ................................................................................................................. 5 2.9 logcleaner.sh ............................................................................................................. 6 2.10 batchsend .................................................................................................................. 7 2.11 udext.......................................................................................................................... 8 2.12 timedsend .................................................................................................................. 8 2.13 scanexpiry ................................................................................................................. 9 2.14 simplesmtp ................................................................................................................ 9 2.15 userutil .................................................................................................................... 10 2.16 createsa.................................................................................................................... 20 2.17 scanms ..................................................................................................................... 20 2.18 sysutil ...................................................................................................................... 22 2.19 cmxdb...................................................................................................................... 24

I 共 28 页

盈世信息科技(北京)有限公司

前言

Coremail系统提供了大量的系统工具,运用这些工具可以对系统的相关参数进行修改,辅助系统管理员分析和检测系统的运行状况,对系统关键数据进行恢复、备份等,还可以运用这些工具更好地为系统服务:发送系统通知信、进行系统日志的统计等。

本文档介绍Coremail所提供的各个系统工具,内容包括每个系统工具的作用,所使用的命令格式、命令参数以及相关的使用说明。

系统管理员在使用这些工具前必须认真阅读本手册,使用过程中若出现异常情况应立即与Coremail技术支持取得联系。

1 系统工具列表

编号 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 系统维护工具 日志管理工具 工具类别 工具名称 cmctrl.sh coremail rmi 系统管理工具 tomcatctl apachectl confutil sysmonitor convertlog 工具功能简介 Coremail系统启动管理工具 服务器系统启动管理工具 Java RMI服务启动管理工具 系统管理界面/站点管理界面启动管理工具 Apache HTTP服务器启动管理工具 系统配置文件管理 收集系统的服务器和OS信息 日志转换工具 logcleaner.sh 日志清理工具 batchsend udext 发送群体信件 UD模块协助管理工具 定时发信工具 扫描并向将要过期的企业或用户发送警告 使用smtp协议到指定的smtp服务器发信 管理用户信息 查找/删除过期用户 建立管理员用户 整理和修复ms数据文件的工具 通过服务器端口执行命令,查看log及系统备份 邮件管理工具 timedsend scanexpiry simplesmtp userutil 用户管理工具 delexpire createsa scanms sysutil 文档版本:1.0 1 共 28 页

盈世信息科技(北京)有限公司 数据库配置检查 20. 数据库工具 cmxdb 2 系统工具使用方法

2.1 cmctrl.sh

命令作用

Coremail程序启动管理工具。

命令格式

sbin/cmctrl.sh start | stop | restart

参数解释

选项参数 start 选项意义 启动所有coremail的服务,包括:所有服务器进程(包括mssvr等后台服务以及pop3svr等应用服务)、http服务、tomcat服务(包括系统管理界面等)以及RMI服务。 stop 停止所有coremail的服务,包括所有服务器进程、http服务、tomcat服务器以及RMI服务。 restart 重启所有coremail服务。 2.2 coremail

命令作用

Coremail应用服务器程序启动管理工具。

命令格式

bin/coremail start | stop | restart servername | shutdown

参数解释

选项参数 start servername stop servername 文档版本:1.0

选项意义 启动servername指定的服务器server 停止servername指定的服务器server 2

共 28 页

盈世信息科技(北京)有限公司 restart servername shutdown 重启servername指定的服务器server 实现与coremail stop all一致的功能以外,并使coremail进程停下来 其中,servername可以是以下内容:

all adminsvr mdsvr udsvr mssvr session deliveragent scequerysvr mtasvr pop3svr imapsvr webproxysvr cmapi_c sslsvr reportspamsvr sitegate rmiserver tomcat

如果servername为all,则表示以上服务中,所有在本机器上可以运行的服务。

2.3 rmi

命令作用

该工具主要用来启动、重启或者停止系统的RMI服务。

命令格式

bin/rmi start | restart | stop

命令说明

需要启动了rmi服务,才能使用Coremail系统的用户管理功能。

2.4 tomcatctl

命令作用

该工具主要用来启动、重启或者停止系统的Tomcat服务。

命令格式

bin/tomcatctl start | restart | stop

命令说明

需要启动了Tomcat服务,才能使用Coremail系统的管理界面。

2.5 apachectl

命令作用

该工具主要用来启动、重启或者停止系统的http服务。

命令格式

bin/apachectl start | restart | stop

文档版本:1.0

3

共 28 页

盈世信息科技(北京)有限公司

命令说明

需要启动了http服务,才能正常使用coremail系统的webmail等功能。

2.6 confutil

命令作用

该工具主要用来查看、更改以及同步coremail的系统配置文件。

命令格式

bin/confutil

命令说明

运行命令后,会显示功能菜单:

Cmd: 0-End 1-List 2-View 3-VI 4-DL 5-UL 6-Del 7-DlAll 8-UlAll 9-Flush 10-FlushAll

其中:

0 结束,退出程序 1 2 3 4 5 6 7 8 9

列出所有的系统配置文件名 查看指定的配置文件 更改指定的配置文件

下载指定的配置文件,文件在本地加上后缀“.cf”

上传指定的配置文件,文件必须有后缀“.cf”,但输入的时候不需要输入后缀名。 删除指定的配置文件

下载所有的配置文件,文件在本地加上后缀“.cf” 上传所有的配置文件

刷新系统的指定配置文件,使所有服务器的配置文件都一致

10 刷新系统的所有配置文件,使所有服务器的配置文件都一致

2.7 sysmonitor

命令作用

收集系统的服务器和OS信息,插入到数据库中,以实现管理界面的数据查询。

命令格式

bin/sysmonitor [-p] [-t value] [--db value]

文档版本:1.0

4

共 28 页

盈世信息科技(北京)有限公司

参数解释

选项参数 -p -t 选项意义 只在屏幕显示数据,并不插入到数据库 收集数据的类型,可以为 sys机器系统的信息(CPU、网络I/O等) svr邮件服务器信息 all表示收集以上两种信息 缺省是all 收集的信息插入到那个数据库,可以指定conf/datasources.cf里特定的section表示的数据库。缺省使用misc --db 2.8 convertlog

命令作用

该工具主要用来扫描日志文件,把日志数据转换到数据库,供管理界面查看、统计使用。

命令格式

bin/convertlog [--sync-mdud] [--pack] [-p] [-h] [-v] [--config-path value] [-d value] [-l value] [--axds value] [--ds value] [--path value] [--file value] [-t value]

参数解释

选项参数 -d/--log-level -h/--help -l/--log-file -v/--version -p/--preview 选项意义 指定本程序运行时候log日志等级,值的范围是0到4。缺省是1。 显示程序的使用帮助 指定本程序运行时候log日志文件,缺省log日志输出到屏幕。 显示版本信息 预览功能,扫描完以后只显示将要处理的数据,但不实际转换到数据库。 -t/--type 指定扫描日志类型,可以选择以下的值: ajax ajax服务中的用户登录以及信件访问信息 api api中的用户登录信息 da 信件投递记录信息,用户的收发信件情况记录以及用户白名单收集。 imap imap服务中的用户登录信息以及信件访问信息(安装IMAP服务以后才有效) mta 过滤垃圾信件的统计信息 pop3 pop3服务中的用户登录以及信件访问信息 5

共 28 页

文档版本:1.0

盈世信息科技(北京)有限公司 rmi api服务中用户登录及信件访问信息 smtp smtp服务中用户的登陆信息统计 ud udsvr服务中用户邮件信息 web webmail服务中用户登录以及信件访问信息 all 自动收集以上的所有日志信息。 注意:缺省是不收集任何的信息,所以必须要指定-t/--type参数。 --pack --config-path --axds --ds --path --file 处理数据库中过期的日志,把这些日志打包压缩或者删除。 高级命令 指定使用特定目录下面的配置文件,缺省使用标准配置 指定特定的统计垃圾信件的数据库配置,配置名必须在datasources配置中存在 指定特定的信件统计数据库配置,配置名必须在datasources配置中存在 扫描指定的目录 扫描指定的文件 --sync-mdud 命令说明

同步用户邮件信息 convertlog工具一般受adminsvr控制,由系统定时执行,详细可以参看programs配置文件[convertlog]中的配置。

Convertlog会在扫描的同时记录当前的扫描的位置,当下次再次执行的时候,会在上一次扫描结束的地方继续扫描。除非用户指定扫描的路径或者扫描的文件。

在自动扫描的同时,会对已经扫描完毕的日志目录进行压缩打包处理,具体的处理可以在programs的[convertlog]中的PackOldLogCmd命令指定。执行的时候会把指令中的{}替换为日志目录的全路径。

2.9 logcleaner.sh

命令作用

该工具主要用来删除$COREMAIL_HOME/logs目录下面所有过期的日志文件。

命令格式

bin/logcleaner.sh [n]

n表示预备删除的文件是在n天前做过最后一次修改。如果不指定数值,n缺省为7,表示删除7天内未被修改过的的log文件。预备删除的文件不包括corefiles以及backup目录(convertlog运行之后备份的文件)。

文档版本:1.0

6

共 28 页

盈世信息科技(北京)有限公司

2.10 batchsend

命令作用

该工具主要用来对本站用户发送群体信件。

命令格式

bin/batchsend [-h] [-v] [--config-path value] [-d value] [-l value] < [-s mail userlist] | [-m mid msid userlist] | [-r mid userlist]>

参数解释

选项参数 -d/--log-level -h/--help -l/--log-file -v/--version -s/--send 选项意义 指定本程序运行时候log日志等级,值的范围是0到4。缺省是1。 显示程序的使用帮助 指定本程序运行时候log日志文件,缺省log日志输出到屏幕。 显示版本信息 批量发送信件到本地用户,其中 信件内容,一个eml文件的路径 用户列表文件名,一行一个用户名,必须是本地用户 -m/--resend 重新发送信件到本地用户,主要用于第一次投递以后部分用户失败或者需要补充部分收信用户的时候使用,其中 重新发送信件的mid,即第一次投信成功时候生成的mid 重新发送信件的msid,即第一次投信成功时候生成的msid 用户列表文件名,文件一行一个用户名,必须是本地用户 【注意】mid和msid必须是由batchsend操作生成,如果随意填写,有可能导致用户读不到信件的错误。 -r/--remove 删除用户的信件,主要用于删除batchsend投递的信件 需要删除信件的mid,即以前batchsend投信成功时候生成的mid 用户列表文件名,文件里面一行一个用户名,必须都是本地用户 高级命令 指定使用特定目录下面的配置文件,缺省使用标准配置 --config 命令说明

Batchsend命令发送的信件,在整个系统中只保存一个副本,而在每一个用户中只保存一个信件索引,因此不会随着收信人的数量增加而显著占用系统的存储空间。

文档版本:1.0 7 共 28 页

盈世信息科技(北京)有限公司

2.11 udext

命令作用

辅助udsvr完成以下功能:

(1) 删除Webmail上的[已删除]、[垃圾邮件]两个文件夹里的过期邮件 (2) 删除已不存在用户的邮件 (3) 发送超容量警告信

(4) 在大型站点,如果为UD模块配置了中心数据库,则udext还负责把本地数据库的

更新同步到中心数据库。

命令格式

udext不带任何参数直接运行。

命令说明

在运行 udsvr 的机器上,应把udext设为定期运行。运行周期可以参考系统实际情况,建议设定为10分钟至1小时。

【注意】udsvr在执行上述3项功能的时候,会把需要udext配合执行的功能(包括去MS删除邮件,发送超容量警告信,更新中心数据库的数据这几种)通过在programs/udsvr/EventLogDir指定的目录里生成evXXX文件的方式通知udext执行。udext启动的时候会扫描这个目录,整理evXXX文件并执行有关操作。出于性能的考虑,udext每次只会整理一定数量的evXXX文件,避免程序运行占用过多的内存。

2.12 timedsend

命令作用

该工具主要用来发送定时发送信件以及用户自己设定的通知提醒。

命令格式

bin/timedsend [-h] [-v] [--config-path value] [-d value] [-l value] [--type value]

参数解释

选项参数 -d/--log-level -h/--help 选项意义 指定本程序运行时候log日志等级,值的范围是0到4。缺省是1。 显示程序的使用帮助 文档版本:1.0 8 共 28 页

盈世信息科技(北京)有限公司 -l/--log-file -v/--version --type 指定本程序运行时候log日志文件,缺省log日志输出到屏幕。 显示版本信息 指定发送类型,可以取以下的值: timedsend 用户的定时发信 event 用户设定的通知提醒 all 以上两种信件都发送 缺省值是all 高级命令 指定使用特定目录下面的配置文件,缺省使用标准配置 --config 命令说明

timedsend工具一般受adminsvr控制,由系统定时执行,详细可以参看programs配置文件[timedsend]中的配置。

2.13 scanexpiry

命令作用

扫描并向企业或用户发送过期警告。

命令格式

bin/scanexpiry [-h rmihost -p rmiport] -{o|u} -d days [orgid [orgid2 ...]]

命令说明

选项参数 -h -p -o -u 连接的rmi服务器地址 连接的rmi服务器端口, 必须和 -h 一起使用 使用此选项发送\"企业即将过期警告信\不得与 -u 一起使用 使用此选项发送“用户即将过期警告信”(忽略企业过期信息), 不得与 -o 一起使用 -d orgid

发送\"用户即将过期警告信\"给所有将于 days 天内过期的用户 只扫描指定企业下的用户, 可指定多个企业 选项意义 2.14 simplesmtp

命令作用

简单的smtp发信工具。使用smtp协议到指定的smtp服务器发信

文档版本:1.0

9

共 28 页

盈世信息科技(北京)有限公司

命令格式

bin/simplesmtp [--ignore-rcpt-fail] [-h value] -f value -t value -c value [-a value]

参数解释

选项参数 -h 选项意义 指定smtp服务器的IP(或域名)和端口,例如 -h 192.168.0.1:25 可以只填写IP或域名,端口缺省使用25;缺省使用127.0.0.1:25 指定发信人 指定收信人,收信人可以多个,用逗号或者分号分隔 一个eml格式的文件的文件名,用作信件的内容 指定认证信息。如果smtp需要密码认证,则通过-a指定认证参数。可以有以下两种格式: -a 密码(使用-f的参数作为用户名) -a 用户名:密码 指定是否需要忽略收件人不存在这种错误。没有这个设定的时候,当收件人不存在发送会马上停止;如果设定这个标记以后,发信人不存在还会继续后面的操作。 -f -t -c -a --ignore-rcpt-fail 2.15 userutil

命令作用

和用户相关的系统工具,提供显示/修改用户信息,删除用户指定日期前的信件、检查用户邮件合法性等

命令格式

bin/userutil 参数

参数解释

选项参数 --get-user-attr 选项意义 获取用户属性。该方法通过访问rmi的接口,获取用户属性。包括md(数据表td_user中的属性以及cos_name、domain_name、admin_type – ‘SA’/’OA’/’OUA’/’CSA’、mbox_msgcnt、mbox_msgsize)和ud(配置文件userschema.cf中的属性)。 userAtDomain是用户的名字,必须带有domain attr是需要查询用户的哪些属性,可以多个,之间用&分隔 例子:./userutil --get-user-attr admin@develop.com 'true_name&password' 10

共 28 页

文档版本:1.0

盈世信息科技(北京)有限公司 --set-user-attr 设置用户的属性。该方法通过访问rmi接口,设置用户的属性(包括md和ud)。 userAtDomain是用户的名字,必须带有domain attr是需要设置的用户属性。可以设置多个。通过url的encode方式编写 例子:./userutil --set-user-attr admin@develop.com 'true_name=%B9%FE%B9%FE2' --flush-md 刷新用户的md记录。该方法通过UDP方式通知cache用户信息那两台mdsvr更新用户的记录。 user是用户的名字(如果没有域名,则使用缺省域名) 刷新用户的所有md记录。该方法通过TCP方式通知所有的mdsvr更新用户的记录。相对--flush-md,效率更低,但更安全有效。 user是用户的名字(如果没有域名,则使用缺省域名) --display 显示用户的基本信息。其中包括:用户dn、用户状态、用户所在分组、用户所在cos、用户的基本ud信息。 user是用户的名字,(如果没有域名,则使用缺省域名) 显示用户的md信息。 user是用户的名字,(如果没有域名,则使用缺省域名) 显示用户的信箱的基本信息。包括用户的mbox id、用户所在udid、mbox里面一共有多少信件、mbox里面一共有多少新信件 user是用户的名字,(如果没有域名,则使用缺省域名) 显示用户的信箱详细信息。显示用户信箱的树形结构,显示每一个folder里面信件总数以及总占用空间大小。 user是用户的名字,(如果没有域名,则使用缺省域名) 逐台ud去查询mboxid所在的ud。 mboxid是需要查询的用户的mboxid 创建用户。该命令调用rmi的接口创建用户。 userAtDomain是需要重建用户的名字,需要带有domain attr 重建用户的属性,通过url的encode方式指定。其中org_id和cos_id是必须的。如果需要指定用户的密码,可以通过password=xxxx来制定。如果是需要指定用户的已经加密过的密码,则再增加一个crypted=1或者encrypted=1 例子:./userutil --create-user admin@develop.com 'org_id=a&cos_id=2&user_status=0"a_delta=0&password=123456' 从csv格式的文件中导入用户。csv文件格式如下: 第一行是column header,列出各个键名,主要有:user,password,org_id,cos_id等等。其中,如果是需要表示已经加密过的密码,可以用encpassword字段。 第二行开始,是各个用户的属性。 例如: user,password,org_id,cos_id,true_name 11

共 28 页

--flush-all-md --mdinfo --folder-brief --folder-detail --find-mbox --create-user --create-user-csv [default-setting] 文档版本:1.0

盈世信息科技(北京)有限公司 cyt1@coremail.cn,123456,a,1,cyt1 cyt2@coremail.cn,123456,a,1,cyt2 cyt3@coremail.cn,123456,a,2,cyt3 等等。 有些属性是所有用户共有的,例如批量建立某个org下面的用户,那就所有用户的org_id是一样的,这样可以不在csv文件中写org_id,而是通过default-setting指定。 default-setting通过url的encode方式指定批量建立用户的公共属性。 注意:csv-file本身就是文件名,不需要通过类似用户列表的@方式来指定。如果使用了@方式,那相当于从一个列表文件中,读取每一行作为csv文件名,再来打开这个csv文件了。 --delete-user --check-msg [filter] [preview] 删除用户,通过rmi的调用删除用户。 userAtDomain 需要删除的用户名字(需要带domain) 检查用户的信箱中信件索引相应的邮件是否存在,如果不存在则删除。由于某些原因有可能导致用户信件已经被删除,但用户信箱中的索引还存在,可以通过该命令同步索引和信件。 user是用户的名字,(如果没有域名,则使用缺省域名) filter是需要检查哪些信件,过滤器的说明见前面的说明 preview如果设为1,则只作检查,不真正删除多余的索引(注意,如果不需要指定filter,但需要指定preview,请记得一定要写filter参数,并设为'') 列出用户信件的列表。 user是用户的名字,(如果没有域名,则使用缺省域名) filter是需要列的信件的过滤条件。 信件列出来的结果,如图表 1 --list-msg信件结果显示 --list-msg [filter] --display-msginfo 显示用户信件的信息,除了--list-msg列出来的信息以外,还包括收信人、 ud记录的收信时间以及ud记录的最后修改时间 user是用户的名字,(如果没有域名,则使用缺省域名) mid需要显示的信件的mid --dump-msg --delete-msg --delete-old-msg 列出用户信件的内容 user是用户的名字,(如果没有域名,则使用缺省域名) mid需要显示的信件的mid 删除用户的信件 user是用户的名字,(如果没有域名,则使用缺省域名) mid需要删除的mid 根据过滤规则删除用户的信件 user是用户的名字,(如果没有域名,则使用缺省域名) filter需要删除信件的过滤条件 --move-old-msg-to-folder 根据过滤规则把用户的信件迁移到指定的目录 user是用户的名字,(如果没有域名,则使用缺省域名) 文档版本:1.0

12

共 28 页

盈世信息科技(北京)有限公司 --put-msg [folderid] filderid需要迁移到哪个folder下面,一般使用:1收件箱 4已删除邮件箱 5垃圾邮件箱 6病毒邮件箱 投递一封信给用户 user是用户的名字,(如果没有域名,则使用缺省域名) file一个eml格式信件的文件 folderid需要投放到用户的哪个folder下面,缺省是到收件箱 把用户信息载入到md cache里面 user是用户的名字,(如果没有域名,则使用缺省域名) mdsvrid需要载入用户信息的md机器。缺省是所有可以保存该用户信息的md。(如果md是不能保存该用户信息的,就算使用mdsvr id指定,也同样不能载入) 生成用户列表。filter可以是用户列表处理方法中的b、c、d其中之一。当使用b、d方法的时候,还可以额外使用userutil的--md-filter以及username-filer功能作进一步的过滤。 生成过期用户列表。filter是过期日期设定,格式是YYYYMMDD或者Dnnn。YYYYMMDD表示在这个日期(包含这一天)之后没有登陆过的用户。或者Dnnn表示nnn天之内没有登陆过的用户,例如D10表示10天内没有登录过。登录是指在ud有登录记录(包括web、pop3、imap、smtp的登录)。结果以: user@domain pro/org lasttime 的形式显示,lasttime是用户最后登录时间 例如: pqf2@pqf.com pqf/1 20070920 | | | +-------最后登录时间 | | +------------provider id | +---------------org id +-------------------------用户名 --load-mdcache [mdsvr id] --select-user [filter] --select-expire-user [filter] --user-rename --call-api [attrs] 通过调用rmi的接口实现用户改名 old_name 用户的原名,需要带domain new_name 用户的新名,不能带domain。改名以后用户的domain和org等信息与源用户一样。如果需要改org,请使用--move-org功能。 调用rmi的其他接口 cmd 调用接口的参数,最少要包含cmd参数,其它参数参考api手册。以url encode方式传入。其中,程序会自动把cmd、cos_id、num_of_class、limit、skip这几个字段转换为整型。另外,api中经常需要用到url encode的attr属性,可以通过[attrs]参数指定,从而避免两次的url encode。 例如,模拟用户登录: ./userutil --call-api 'cmd=5&user_at_domain=admin@develop.com' 'style=1&language=0' 13

共 28 页

文档版本:1.0

盈世信息科技(北京)有限公司 --backup-user [mailfilter] 备份用户数据到指定的目录 user 需要备份的用户 path 用户备份文件保存的目录,在目录下面会按 用户名-日期.cmbackup 的格式给每一个用户的备份文件起名字。 mailfilter 备份的时候只备份指定过滤规则的信件(可以实现增量备份) 注意: 备份只会备份用户的ud信息以及信件内容(包括netfolder),不会备份用户的md信息。 备份netfolder的时候,不会备份netfolder中的缩略图信息。 恢复用户数据 user-filer 备份时候生成的用户备份文件。是恢复哪个用户,是根据文件前面的用户名决定。换言之,如果把文件名的用户名部分更改,可以把用户备份的信息恢复到其他用户身上。 flags 如果恢复用户的时候用户不存在,可以通过flags来指定创建用户的属性。参考--create-user的attrs。 注意:恢复的时候,用户已经存在的mid不会被恢复。 恢复用户的ud数据,跟--restore-user的唯一区别就是不恢复用户的所有信件 恢复用户的信件,但不恢复用户的ud的地址本等用户个人数据(邮件相关的index信息还是会恢复) 这个命令没有创建用户的功能。 mailfilter 可以指定恢复哪些信件。 显示backup文件的内容 --restore-user [flags] --restore-user-attr [flags] --restore-user-mails [mailfilter] --display-backup --export-user-mails [foler_map] 按folder结构在文件系统导出用户的邮件(不包括netfolder) user 是用户的名字,(如果没有域名,则使用缺省域名) path 在指定的目录下面创建用户的folder结构,并在相应的目录下面导出用户的信件,以mid.eml为文件名,保存为eml格式。 folder_map 可以指定folderid相应的目录名。有时候需要把folder名改名,可以通过该参数实现。以url方式encode,名称=folder id。 例如:'收件箱=1&草稿箱=2' 按folder结构在文件系统到处用户的net folder(不包括邮件) user 是用户的名字,(如果没有域名,则使用缺省域名) path 在指定目录下面创建用户的folder结构,并在相应的目录下面到处用户的netfolder内容,文件名与netfolder中保存的一致。 扫描指定的目录,按照目录结构生成用户的邮件的folder结构,并扫描目录下面的文件生成用户的信件 user 是用户的名字(如果没有域名,则使用缺省域名) path 需要扫描的目录(如果指定的不是目录,而是.mbox结尾的文件,则表示导入mbox格式的信件) folder_map 可以指定目录的名称对应什么folder id,例如: 14

共 28 页

--export-user-netfolder --import-user-mails [foler_map] 文档版本:1.0

盈世信息科技(北京)有限公司 INBOX=1&DRAFT=2 另外,还可以通过 --exclude-files 指定不扫描其中的某些文件。条件是一些带通配符的字符串,字符串之间通过逗号或者分号分隔。只要匹配到这些字符串的文件名,都不会被扫描。另外,--exclude-files可以通过 @文件 的方式指定规则。在文件中一行一个带通配符的字符串,表示一条规则。 --import-user-netfolder 扫描指定的目录,按照目录结构生成用户的netfolder结构,并扫描目录下面的文件,生成用户的netfolder文件。 user 是用户的名字,(如果没有域名,则使用缺省域名) path 需要扫描的目录 同样可以根据 --exclude-files过滤文件 ,用内部格式保存 --export-user-attr 导出用户的ud属性(不包括mbox部分)user 是用户的名字,(如果没有域名,则使用缺省域名) attr 需要导出的属性,可以多个,用&分隔。如果是“*”,则表示所有属性。 file 导出的属性保存在哪个文件 --import-user-attr 导入用户的ud属性,与--export-user-attr相对应 user 是用户的名字,(如果没有域名,则使用缺省域名) file export保存的文件 --import-user-addr [key-map] 导入用户的地址本 user 是用户的名字,(如果没有域名,则使用缺省域名) file 是用户的地址本文件,可以是VCard格式的文件,但文件名需要是 .vcard结尾。也可以是普通的文本文件,文件中记录地址本每一条地址的信息。每一条地址信息,由多组key=value或者key:value记录vcard的数据组成;每一条地址信息之间通过空行分隔。 例如: FN:admin EMAIL;PREF:admin@develop.com FN:root EMAIL;PREF:root@develop.com TEL;CELL;VOICE:12345678 key-map 可以额外指定key与Vcard字段的对应关系,例如地址本文件中的email对应vcard的EMAIL;PREF、name对应vcard的FN,则可以写: 'name=FN&email=EMAIL;PREF' 更改用户所在的org user 是用户的名字,(如果没有域名,则使用缺省域名) attr 描述用户搬迁的行为,以url方式encode一系列的参数。其中支持的参数有: org_id 必须 表示用户搬迁到哪个org下面 ou_id 可选 表示用户搬迁到哪个ou下面 15

共 28 页

--move-org 文档版本:1.0

盈世信息科技(北京)有限公司 udid 可选 表示用户搬迁到指定的ud下面 un 可选 迁移以后用户可以改名 domain_id 可选 新用户的domain_id domain 可选 新用户的domain cos_id 可选 新用户的cos_id key 可选 假如ud中的smsaddr被设为全局唯一,则在迁移的时候,需要指定key=smsaddr,告诉ud这个字段不能马上迁移,需要额外的操作。 如果在迁移过程中出错,可以通过./userutil --delete-user xxxxx@@cm_moveorg_tmp 的方法把临时建立的新用户删除。 另外需要手工把旧用户的状态设为正常。(例如数据库中执行:update td_user set user_status='0' where user_id='xxxxxx') --command 进入userutil的command模式。 在这种模式下: 用户可以直接输入命令(可以不需要输入前面的\"--\") 可以通过上下键选择历史输入(在linux下面) 可以通过tab键实现部分功能的自动完成 通过重定向可以批量执行不同的命令 quit可以退出该模式 示意图

图表 1 --list-msg信件结果显示

命令说明

1、

用户处理列表方法:userutil可以处理单个用户,或处理一批用户。在处理用户名的时候,按下述abcd的次序检查所输入的是哪种类型的用户指定方式。 编号 a 方式 单个用户 说明 直接输入用户的名字,例如 ./userutil --display admin@test.com 文档版本:1.0 16 共 28 页

盈世信息科技(北京)有限公司 b 用户列表 在一个文本文件里面,一行记录一个用户名,然后通过 @文件名的方式,处理一批用户。例如:./userutil --display @~/filelist 在配置中,可以有一个usergroup.cf的配置文件,里面记录一系列的用户分组情况。 每一个section是一个分组的名字,section下面可以有以下的配置: SQLFilter= 使用sql语句的方式选择用户,详细看下面的sql方式选择用户 UserNameFilter= 使用正则表达式选择用户的名字 MDFilter= 使用md的表达式选择用户(详细介绍见3、) 如果配置内容为空或者配置不存在,则表示所有用户。 使用user group则是上面三种规则得出用户的交集,例如,usergroup.cf里面: [admin] SQLFilter=\"user_id like 'admin%'\" UserNameFilter=\"[0-9]{2}\" 执行: ./userutil --display @admin 可以查询所有admin开头,名字和域名里面存在两位数字的所有用户 c user group d sql命令 可以输入SQL命令选择用户,SQL命令是输入td_user和td_domain两张表结合以后的查询条件。可以支持以下字段的条件设置: org_id user_id org_unit_id domain_id cos_id ud_id quota_delta nf_quota_delta user_status domain_name 例如:./userutil --display @\"user_id like 'admin%' and domain_name='test.com' and user_status=1\" 2、 例1:

./userutil --create-user admin@test.com 'org_id=a&cos_id=2' 通过参数 org_id=a&cos_id=2置顶创建用户的属性。 如果使用了用户列表文件的方式 例2:

./userutil --create-user @./user.lst 'org_id=a&cos_id=2'

则只能够在user.lst中的每一个用户都使用 'org_id=a&cos_id=2'参数来建立。 userutil有部分命令除了需要用户名字作为命令参数以外,还可使用更多的参数。

文档版本:1.0 17 共 28 页

盈世信息科技(北京)有限公司

如果需要不同的用户使用不同的参数,可以使用用户列表的额外参数。在user.lst中,一行一个用户名,然后空格,再加上用户的参数 例3:

admin1@test.com org_id=a&cos_id=1 admin2@test.com org_id=a&cos_id=2 admin3@test.com org_id=a&cos_id=3 最后通过调用:

./userutil --create-user @./user.lst '' 3、

用户md过滤条件

./userutil可以通过在usergroup中设定MDFilter,或设置命令参数--md-filter来制定过滤用户的md信息,即符合某些md条件的用户才做处理。 【注意】:--md-filter只影响--select和--backup-user。 mdfilter的格式为:

cond1&cond2&cond3...

表示同时满足条件cond1、cond2、cond3的用户才允许通过。如果没有任何条件,则表示所有用户。 而每一个条件的格式是:

key=value,表示key所代表的值匹配value表达式则通过。

或者 key!=value 表示key所代表的值匹配value表达式则不能通过。

key表示md中相应字段,如果是子属性,可以通过key/subkey的方式指定,例如cos/26 value表示字段值的过滤条件。要根据md的值类型决定。 如果是date或者int类型,则value可以是:

n -n n- 表示等于n 表示小于等于n 表示大于等于n n-m 表示小于等于m并且大于等于n 如果是日期类型,n、m的格式是YYYYMMDD 如果是字符串,则value是一个可以带有通配符的字符串,表示需要匹配带通配符的字符串表达式。如果是布尔类型,则value是true或者false。

例如,只需要用户状态是2而且允许自动转发的用户,则可以写: 'status=2&cos/30=true'

文档版本:1.0 18 共 28 页

盈世信息科技(北京)有限公司

4、 信件索引过滤条件

在userutil的某些命令参数里可指定用户信件索引(即mailfilter),从而只对符合某些条件的信件做处理。用户的信件索引过滤条件定义如下:

cond1&cond2&cond3...

表示同时满足条件cond1、cond2、cond3的信件。如果没有任何条件,则表示所有的信件。

而每一个条件的格式是:key=value或者key!=value,表示key所代表的值满足条件才能通过或者满足条件不允许通过。 key可以取的值,以及类型、含义如下:

key名 from to subject mid msid size fid time rectime 类型 string 发信人 string 收信人 string 主题 string 信件mid int int int date date 信件所在msid 信件大小 信件所在folder 在信头里面记录的信件时间 ud记录的收信时间 ud记录的信件最后修改时间 含义 modtime date value表示过滤的条件,根据不同的类型value的写法也不一样:

如果是string类型,则value是一个包含通配符的字符串,当key相应的值匹配字符串则表示通过条件。另外,字符串可以多个,中间以“|”分隔。只要匹配其中一个则表示条件通过。

如果是date或者int类型,则value可以是:

n -n n- 表示等于n 表示小于等于n 表示大于等于n n-m 表示小于等于m并且大于等于n 如果是日期类型,n、m的格式是YYYYMMDD 同样,value的条件可以多个,通过“|”分隔,只要匹配其中一个则表示条件通过。 例如,所有发信人包含admin,在收件箱和草稿箱里面信件:

文档版本:1.0 19 共 28 页

盈世信息科技(北京)有限公司

'from=*admin*&fid=1|2' 5、

指定charset

在操作过程中可能出现对应的内容是中文,此时可通过指定相应的charset,以正确的把字符转换成unicode;或者查看用户属性的时候,由于用户的属性是unicode,也可通过把unicode转换指定的charset,使方便显示。

userutil可以通过--charset来指定操作的charset。所支持的charset范围,可以参考linux命令iconv -l列出来的所有charset。

在导入用户属性的时候,有些时候需要使用类似于‘&#nnnnn;’这种HTML格式的unicode,那可以在指定charset的时候在前头加上html-,例如:html-gbk。 userutil支持sun的ipanet格式,charset直接指定ipanet即可。

2.16 createsa

命令作用

该工具主要用来创建系统管理员帐号。

命令格式

bin/createsa provider_id org_id domain_name user_id password

命令说明

可以用于创建初始系统管理员帐号,该管理员同时为系统的站点管理员。

2.17 scanms

命令作用

该工具主要用来整理和修复ms数据文件。

命令格式

bin/scanms 参数

参数解释

选项参数 选项意义 整理ms数据,删除冗余的数据。系统长期使用后,因为一些意外(例如突然断电等)可能会导致有些用户信件已经删除,但在ms中还有保存的情况。使用scanms20

共 28 页

--packmail[map_file] 文档版本:1.0

盈世信息科技(北京)有限公司 可以找出这些信件并删除 指定需要扫描的ms目录:如果是all,则扫描所有的ms数据目录。如果需要扫描指定的目录,必须要输入目录的全路径(不能输入相对路径) [map_file] 由于ms中只保存用户的MBox信息,而没有用户的信息,所以需要使用一个映射文件,说明用户和MBox的映射关系。这个映射关系文件可以通过userutil --folder-brief @ > map_file 获得 如果不想使用映射关系文件,可以使用另一个参数 --lookin-ud,例如:scanms --packmail all --lookin-ud scanms会逐台ud询问用户的信息(注意:这个参数只能使用在一台ud使用一个数据库的情况下,多台ud共用一个数据库的情况一定不要使用。) --force-update 表示如果数据没有压缩则强制压缩信件。(ms虽然会自动压缩信件,但对新入的信件是不会马上压缩,用这个命令,可以强制把新入的信件都压缩) 迁移ms信件,把ms信件从一台ms机器迁移到另一台ms机器 指定目标ms机器的id。这种方式下,信件的mid不会改变。但是只能把信件迁移到指定的机器上 --movems --movems2 [map_file] 把信件从一台ms机器迁移到另一台ms机器 迁移的目标ms机器是根据当前配置中MSWeight的权重分配。这种方式下,信件的mid会改变。但是信件迁移到多台机器上 把信件从一台ms机器迁移到另一台ms机器 先人工把ms文件从一台机器的磁盘搬移到另一台机器的磁盘,然后在新机器上运行scanms --updateud [map_file]。检查信件在ud中保存的msid是否正确,不正确的话就改正 修复ud中丢失的索引 ud如果因为意外导致用户的信件数据丢失,可以使用scanms修复。可以在所有的ms机器上运行scanms --updateud [map_file] 这样可以把信件恢复到ud里面,但是只能把信件恢复到收件箱,而且信件上面的所有标记都不能恢复(例如已读、已回复等) --updateud [map_file] 文档版本:1.0 21 共 28 页

盈世信息科技(北京)有限公司 --copytopath 如果ms机器因为文件系统损坏,导致文件的目录路径信息丢失,可以用scanms恢复。由于磁盘坏掉,有时候可以通过一些第三方工具把数据文件找回来。但找回来的数据文件都会缺少路径信息,即不知道文件原来保存在磁盘上哪个目录。此命令参数可以检查指定目录下面ms文件,发现文件所在的目录不对会生成一行能把文件迁移到正确位置的shell命令,保存在参数指定的文件当中 --verifymail 快速检查ms文件是否完整正确,如果不正确会在日志中输出 --last-pos --run-until

2.18 sysutil

命令作用

该工具主要是系统维护的辅助工具,主要功能有: 1、telnet指定的服务器端口执行某条命令 2、去指定的机器上查找指定的log文件

3、根据指定的条件,找出相关邮件相应的log文件;或者某次投递过程的相关的log

命令格式

bin/sysutil 参数

命令说明

指定服务器的方法:

sysutil的功能很多都离不开指定服务器。指定服务器的方法有以下几种:

@all 表示所有的服务器 文档版本:1.0 22 共 28 页

盈世信息科技(北京)有限公司 表示当前服务器 host.cf中的host的名字 点分的IP表示形式 @local hostid xxx.xxx.xxx.xxx 数值n 指定服务的时候,可以通过这个数值指定服务器,例如指定mssvr,则为MSID=n的服务器(目前只在svrcmd中有效) 参数解释

选项参数 选项意义 在指定服务器的命令端口上执行命令。 参考上面描述的指定服务器的方法 指定的服务,在programs.cf中定义的服务,例如mssvr、mdsvr、mtasvr等 发送到命令端口的命令 指定普通文本匹配的时候不区分大小写 指定扫描文件的时间setting的格式可以为: t 指定日期 :e 到指定的日期e前的所有log b: 从指定日期b开始的所有log b:e 从指定的日期b开始都e之间的所有log 其中:t、b、e的格式可以为: YYYYMMDDHHMM 或者 YYYYMMDD 或者 MMDD 或者 --svr-cmd --nocase --date seting [mD][nH] ( [mD][nH]表示距离现在m天n小时之前),缺省是 \"2d:\",即两天前到现在 --line-limit n --grep 表示每个文件最多输出多少行log 去指定的机器上面grep log 参考上面描述的指定服务器的方法 可以是log文件的绝对路径;可以是以下字符串:md ms ud pop3 mta da imap rmi web,或者这些字符串后加上\".t\",表示相应服务器的translog;可以同时指定多个服务,中间用\分隔。例如:ms,md,ud.t 普通的文本匹配,(注意:不支持*/?等通配符),可以用\"|\"分隔多个普通文本,只要符合其中一个都算匹配。例如:ABCDE|EFGH,只要包含ABCDE或者EFGH文档版本:1.0 23 共 28 页

盈世信息科技(北京)有限公司 的日志都算匹配 正则表达式匹配 key1:val1,key2:val2......这种translog的格式,专门用来过滤translog的。translog中只有满足以下条件的log才算匹配。包含所有的key1,key2......(不区分大小写)。key1的value必须包含val1,key2的value必须包含val2...... val1、val2等等都跟普通的文本匹配一样,可以用\"|\"连接多个条件,只要包含其中一个条件,都算是包含 例子: ./sysutil --grep @all ms \"Put mail\" \"1tb.+aa\" ./sysutil --grep @all mta.t \"\" \"\" \"Sender:aaa@test.com|bbb@test.com\" --trace 在grep log的基础上跟踪事件 : 可以是:mid:xxxxxxx 或者 tid:xxxxxxx 或者 from:xxxx[,to:xxxx][,subject:xxxxx][,ip:xxxxxx] 或者uid:xxxxxx 远程登录到主机adminsvr并获得所有服务器的状态 对系统进行全备份和增量备份 分组账号,默认使用用户账号 保存备份路径,默认负载从主机配置 恢复系统所用数据,恢复站点数据,恢复部分用户数据 --svr state --backup -full -inc --restore -all[site][user] [emails] -site -users[site][user] [emails] :标识名称 [site]:是否恢复站点信息 [user]:是否恢复用户信息 [emails]:是否恢复用户的电子邮件 --display-backup 显示备份信息 注意: 如果在执行过程当中用Ctrl-C中断,会在当前目录下面遗留下类似于grep-xxxx.n.log的日志文件,通过这些文件可以找到一些grep的结果。但如果要执行新的grep或者trace,请先删除这些文件,否则会影响余下的操作。

2.19 cmxdb

命令作用

文档版本:1.0

24

共 28 页

盈世信息科技(北京)有限公司

该工具主要用来检查数据库配置是否正确。

命令格式

bin/cmxdb [数据库连接]

命令说明

Cmxdb数据库连接有两种方式:

1. 采用datasources.cf里面的section名字,例如cmxdb cm_md_db 2. 按数据库连接参数。 对于mysql

cmxdb \"user=xxxx;password=xxxx;host=xxxxx;database=xxxx;driver=mysql\" 对于oracle

cmxdb \"user=xxxx;password=xxxx;host=xxxxx;database=xxxx;driver=oracle\" 或者 cmxdb \"user=xxxx;password=xxxx;sid=xxxx;driver=oracle\"

cmxdb不加参数的时候会有用法的简单提示:进入cmxdb后可以输入SQL命令操作数据库。另外cmxdb有两个内部命令: list 列出数据库中所有的表名 quit 退出cmxdb

文档版本:1.0 25 共 28 页

因篇幅问题不能全部显示,请点此查看更多更全内容