查询操作场景

  • 日志相关查询

  • 查询邮件投递情况

    grep $USER/home/coremail/logs/deliveragent.log.$DATE| grep state

    #$USER替换为用户 eg:admin@a.cn

    #$DATE替换为时间 eg:2021-07-13

  • 查询站内是否有发垃圾邮件用户

    发垃圾邮件用户的特征:1、外发且量大 ; 2、邮件主题倾向推广

    第一步:查询到外发且量大的用户

    grep "channel=remote" /home/coremail/logs/deliveragent.log.$DATE|awk -F"<|>" '{print $2}' | grep @|sort |uniq -c|sort -rn | more

    第二步:根据步骤一,查询其发送的邮件主题

    zgrep -a Sender:$USER/home/coremail/logs/backup/mta$DATE.tar.gz | grep 'cmd:DATA' | awk -F ",ip:|,FreeIP|,subject:|,SubjectCnt" '{print $2,$5}'

    #$USER 替换为步骤一用户 eg:admin@a.cn

    #$DATE 替换为时间 eg:2021_06_30

  • 查询用户登录失败情况

    grep cmd:1005 /home/coremail/logs/udsvr.log.$DATE|grep clienttype:[0-9.]* | awk -F 'loginip:|,loginname:|,clienttype:|,ret:' '{print $2,$3,$4}'

    #$DATE替换为时间 eg:2021-07-13

  • 单命令查询多机环境相同模块日志

    /home/coremail/bin/sysutil --grep @HOST $logfile '$text-pattern' --date 20210701:20210706

    #命令格式:/home/coremail/bin/sysutil --grep @$HOST $logfile $text-pattern --date $DATE

    #$HOST local表示仅查询本地服务器 all表示查询所有服务 eg:@all

    #$logfile 表示要查询的日志类型 md ms ud pop3 mta da imap rmi ajx(web) ,如果要查询的是事务日志,则加上.t eg:mta 或 mta.t

    #$text-pattern 表示需要查询的正文内容 eg:subject=test

    #$DATE 表示需要查询的时间范围 eg:20210701:20210706

  • 查询某段日期内所有日志包含特定关键字的信息

    find . -type f -newermt '$START_TIME' ! -newermt '$END_TIME' -exec grep $text-pattern {} \; | more

    #$START_TIME 替换为开始时间 eg:2021-07-01 00:00:00

    #$END_TIME 替换为结束时间 eg:2021-07-31 23:59:59

    #$text-pattern 表示需要查询的正文内容 eg:'test'

  • 统计单个用户在某个时间段发送邮件数量

    /home/coremail/bin/sautil call-svr @all:adminsvr '{cmd:103,conds:"(cmd == '\'DATA\''|| cmd == '\'WEBMAIL\'') && (Sender == '\'$EMAILADDRESS\'')",date:"$DATE",fields:"count(cnt)",file_filter:"mta.t",group:"Sender",limit:"-1",log_filter:"$EMAILADDRESS",log_filter_reg:"",nocase:False}'

    #$DATE 替换为时间范围,eg:20250325:20250401

    #$EMAILADDRESS 替换为邮件地址,eg:admin@a.cn

    说明:

    每台机器都会对应命令调用的返回的结果,Received:,其中“count(cnt): [LNG:6]” 表示数量,这里的6表示发送了6封邮件;

  • 查询用户删除的邮件情况

    grep cmd:2006 /home/coremail/logs/udsvr.log.$DATE | grep $USER_MBOX_ID | grep subj | awk -F 'precode:|,ver|subj:|,from:' '{print $2,$4}' | more

    #$DATE替换为时间 eg:2021-07-13

    #$USER_MBOX_ID 替换为用户的mbox_id eg:1_admin###_01_1000001s

  • 查询站内域名的收信数量(包含投递失败和投递成功的请求,站内和站外)

    /home/coremail/bin/sysutil --grep @all da 'channel=remote' --date $DATE | grep -E 'channel=remote|channel=local' | grep -E 'state=defer|state=bounced|state=sent' | grep -E "to=<[^@]*@$DOMAIN>" | awk -F 'to=<|>,channel' '{print $2}' | sort | uniq -c | sort -nr

    #$DATE 替换为时间范围 eg:20250126:20250401

    #$DOMAIN 替换为站内域名

  • 查询站内域名的发信数量(包含投递失败和投递成功的请求,站内和站外)

    /home/coremail/bin/sysutil --grep @all da 'channel=remote' --date $DATE | grep -E 'channel=remote|channel=local' | grep -E 'state=defer|state=bounced|state=sent' | grep -E "from=<[^@]*@$DOMAIN>" | awk -F 'from=<|>' '{print $2}' | sort | uniq -c | sort -nr

    #$DATE 替换为时间范围 eg:20250126:20250401

    #$DOMAIN 替换为站内域名

  • 用户相关查询

  • 查询用户属性

    /home/coremail/bin/userutil --get-user-attr $USER '$ATTR'

    #$USER 替换方式有三:1、替换为单个用户 eg:admin@a.cn; 2、替换为条件用户 eg:@"cos_id = 1" 表示服务等级为1的所有用户;3、替换为指定文件内的用户 eg:@/tmp/userlist.txt

    #$ATTR 根据实际情况替换为附录中的数据库字段,比如true_name

    附录:

字段名 说明
org_id 组织ID
mbox_id 信筒ID
lastdate 最后登录时间
user_id 用户uid
password 密码,默认smd5加密
forwarddes 转发地址
iaddress 个人通讯录
pwd_hint_question 忘记密码问题
forwardactive 是否开启自动转发
filter 过滤器规则
pwd_hint_answer 忘记密码答案
keeplocal 自动转发是否本地保留
signature 简单文本签名档
time_zone 时区
maxlist 邮件每页显示的条数
popweb 代收邮件配置信息
true_name 姓名
displaysender 发信人显示我的姓名
mbox_shr_acl 共享权限
mobile_number 电话
refuselist 黑名单列表
mbox_shr_view 被共享人可查看的邮箱及设置
fax_number 传真
style 风格
calendar_folder 日历文件夹
country 国家
big5 编码
authorized_list 信任设备列表
province 省份
language 语言
altpwd 客户端专用密码
city 城市
autorepmode 自动回复模式0关,1开
otp_bindinfo otp绑定信息
homepage 主页
autoreptext 自动回复内容
mms_enabled 开启多媒体消息
anniversary 周年纪念日
autorep_condition 自动回复条件,开始/结束时间
sms_notify 短信通知
alt_email 备用邮箱
autorep_welcometip 首页是否提示开启自动回复
antivirus_option 反病毒设置
nick_name 昵称
op_readreceipt 已读回执
smsaddr 手机号码,绑定的手机号
gender 性别,0男,1女
safelist 邮件列表授权
forwardmaillist 邮件列表中的用户
birthday 生日
antispam_option 反垃圾邮件选项
firstpage 登录后显示页
home_phone 家庭电话
junkfilter 垃圾邮件过滤器
aftersend_saveaddr 自动保存收件人到”个人通讯录”
company_phone 公司电话
rejectjunk 拒收
maillist_errorto 邮件列表退信地址
address 地址
udid 用户的UDID标识
maillist_filter 动态邮件列表用户属性
zipcode 邮政编码
save_sent 邮件自动保存到[已发送]
smtp_save_sent SMTP发信后保存到[已发送]
netfolder_id 网盘ID
edit_mode 写信时邮件编辑模式
def_sec_folder 安全锁(文件密码保护)
reg_ip 注册IP
signature_position 签名位置
password_expiry_time 密码过期时间
remarks 备注
facesettings 页面属性设置
trans_schedule_time 用户延迟删除时间
duty 职位
clock_system 邮件列表时间显示格式
syncHistory ActiveSync服务相关
login_ip_range 登录IP范围
index_time_category 邮件列表显示时间
force_sender_name 强制发信人姓名
ws_msg_notify_folder 邮件到达通知的文件夹
off_site_remind 异常登录提醒
org_unit_fullName 完整部门名称
off_site_remind_sms 异地登录短信提醒
off_site_remind_ip 异常登录提醒IP
bindauthkey 是否绑定动态密保
subject_refw_prefix_expand 读信设置-主题“回复/转发”前缀展开/收起
off_site_remind_time 异常登录提醒时间
second_auth_type 二次验证类型
default_sender_address 默认发信人账号
display_list 显示邮件列表方式
weixinaddr 绑定的企业微信ID
tags_init_completed 标签管理
display_size 显示邮件大小
api_acl api访问的权限和范围控制
migration_progress 邮箱搬家进度
pop_limit_day pop3收信时间范围
list_brief_text 是否显示正文摘要
migration_status 邮箱搬家状态
multi_tab 是否开启多标签页
preview_layout 读信窗口布局
junknotify 垃圾邮件通知
shortcut 是否开启键盘快捷键
ws_msg_notify_folder 邮件到达通知的文件夹
junknotify_detail 垃圾邮件通知详情
search_ordering_rule 全文搜索排序方式
junklastnotifytime 垃圾邮件通知时间
  1. 查询用户邮件信息

    /home/coremail/bin/userutil --list-msg $USER

    #$USER 替换方式有三:1、替换为单个用户 eg:admin@a.cn; 2、替换为条件用户 eg:@"cos_id = 1" 表示服务等级为1的所有用户;3、替换为指定文件内的用户 eg:@/tmp/userlist.txt

    附录:list-msg中每个字段的含义
    img

  2. 查询用户邮件信头的信息

    /home/coremail/bin/userutil --display-msginfo $USER $MID

    #$USER 替换方式有三:1、替换为单个用户 eg:admin@a.cn; 2、替换为条件用户 eg:@"cos_id = 1" 表示服务等级为1的所有用户;3、替换为指定文件内的用户 eg:@/tmp/userlist.txt

    #$MID 替换为邮件的mid号 eg:1tbiAQAFB2DX5ccAAAACsU

  3. 查询用户自助查询中的信息

    /home/coremail/bin/sysutil --svr-cmd @all udsvr '_list_ext $USER_MBOX_ID ' #查看登录类型的内容

    #$USER_MBOX_ID 替换为用户的mbox_id eg:1_admin###_01_1000001s

  4. 查询用户匹配到的策略信息

    /home/coremail/bin/sautil userinfo --dump-policy $USER

    #$USER替换为用户 eg:admin@a.cn

  5. 查询用户的服务等级信息

    /home/coremail/bin/sautil userinfo $USER --mdkeys=cos

    #$USER替换为用户 eg:admin@a.cn

  6. 查询用户的个人通讯录信息和过滤器信息

    /home/coremail/bin/sautil userinfo $USER --udkeys=iaddress\&filter

    #$USER替换为用户 eg:admin@a.cn

  7. 查询用户开启的二次验证信息

    /home/coremail/bin/sautil userinfo $USER --ud-keys=second_auth_type\&altpwd

    #$USER替换为用户 eg:admin@a.cn

  8. 查询用户开启的客户端专用密码信息

    /home/coremail/bin/userutil --get-user-attr $USER staticpwd

    #$USER替换为用户 eg:admin@a.cn

  9. 查询邮件列表用户下包含的用户信息

    动态邮件列表

`/home/coremail/bin/userutil --get-user-attr $USER maillist_filter| awk -F'='` `'{print $NF}'| xargs -i /home/coremail/bin/sautil call-api` `"cmd=319&msgsize=1&filter={}"`

`#$USER替换为用户 eg:admin@a.cn`
  1. 查询用户代收设置的信息

`/home/coremail/bin/userutil --get-user-attr $USER popweb |grep -E` `'=.+`  `|sed` `"s/%2540/@/g"`  `|sed` `"s/%3D/=/g"` `|sed` `"s/%26/,/g"` `|sed` `"s/%0A0%20/:/g"` `|sed` `"s/%0A/ /g"` `|sed` `"s/%20/ /g"`

`#$USER 替换方式有三:1、替换为单个用户 eg:admin@a.cn;` `2、替换为条件用户 eg:@"cos_id = 1"` `表示服务等级为1的所有用户;3、替换为指定文件内的用户 eg:@/tmp/userlist.txt`
  1. 查询用户别名

`/home/coremail/bin/userutil --call-api` `"cmd=46\&user_at_domain=$USER"`

`#$USER 替换为单个用户 eg:admin@a.cn`
  1. 查询用户是否进入 UD灰名单 列表

`/home/coremail/bin/sysutil --svr-call` `@all` `udsvr` `'{cmd:5311,type:"userip"}'`
  1. 查询用户的日程数据

`/home/coremail/bin/userutil --adv-user-attr $USER  getrev calendar`

`#$USER 替换方式有三:1、替换为单个用户 eg:admin@a.cn;` `2、替换为条件用户 eg:@"cos_id = 1"` `表示服务等级为1的所有用户;3、替换为指定文件内的用户 eg:@/tmp/userlist.txt`
  1. 导出用户所有日程

`/home/coremail/bin/userutil --export-cm-calendar $USER $PATH`

`#$USER 替换方式有三:1、替换为单个用户 eg:admin@a.cn;` `2、替换为条件用户 eg:@"cos_id = 1"` `表示服务等级为1的所有用户;3、替换为指定文件内的用户 eg:@/tmp/userlist.txt`

`#$PATH 替换为保存日程文件的位置 eg:/tmp/`
  1. 获取个人通讯录内容

`/home/coremail/bin/sautil --call-ud $USER` `'{cmd:6001,abdbattr:{meta:{},grp:{},contact:{}}}'`

`#$USER替换为用户 eg:admin@a.cn`
  1. 查询用户反垃圾级别

`/home/coremail/bin/userutil --get-user-attr $USER antispam_option`

`#$USER 替换方式有三:1、替换为单个用户 eg:admin@a.cn;` `2、替换为条件用户 eg:@"cos_id = 1"` `表示服务等级为1的所有用户;3、替换为指定文件内的用户 eg:@/tmp/userlist.txt`

`#解析:antispam_option=01` `(关闭)、antispam_option=11` `(普通)、antispam_option=21` `(严格 - 把邮件保存到[垃圾邮件]文件夹,[推荐使用])、antispam_option=20` `(严格 系统直接删除邮件,您将无法查看这些可疑垃圾邮件,请慎重选择 )`
  1. 查看用户web上的信任设备列表

`/home/coremail/bin/sautil userinfo --ud-keys=authorized_list $USER --diag`

`#$USER替换为用户 eg:admin@a.cn`
  1. 查询用户的未读邮件列表

`/home/coremail/bin/sautil --callapi cmd=getNewMailInfos\&user_at_domain=$USER --options=format=xml`

`#$USER替换为用户 eg:admin@a.cn`
  1. 导出用户指定的某封邮件

`/home/coremail/bin/userutil --export-user-mails $USER /data/mails/`

`#$USER替换为用户 eg:admin@a.cn`
  1. 导出用户邮箱中所有邮件(指定时间范围条件可选)

`/home/coremail/bin/userutil --dump-msg $USER $MID time=$TIMERANGE > 名称.eml`

`#$USER替换为用户 eg:admin@a.cn`

`#$TIMERANGE 替换为时间访问 eg:120250314-20250317`
  1. 查询邮件标题中包含特定关键字的邮件

`/home/coremail/bin/userutil --search-msg @"cos_id!=3 and user_status!=100"` `"$Keywords"` `""` `"field=subj"` `| grep -vE` `"^\\* "` `| awk` `'/^[^@ ]+@[^@ )]+\\(MBoxID:/ { email = gensub(/^(.*)\\(MBoxID:.*/, "\\\1", ""); next; } /^[-]+$/ { next; } { print email "###" $2; }'` `> /tmp/$Keywords.txt`

`#$Keywords 更换为需要查询的关键字,比如中文 机密`
  1. 查询邮件正文中包含特定关键字的邮件

`/home/coremail/bin/userutil --search-msg @"cos_id!=3 and user_status!=100"` `"$Keywords"` `""` `"field=cont"` `| grep -vE` `"^\\* "` `| awk` `'/^[^@ ]+@[^@ )]+\\(MBoxID:/ { email = gensub(/^(.*)\\(MBoxID:.*/, "\\\1", ""); next; } /^[-]+$/ { next; } { print email "###" $2; }'` `> /tmp/$Keywords.txt`

`#$Keywords 更换为需要查询的关键字,比如中文 机密`
  1. 备份单个用户信息(包含邮件数据)

`/home/coremail/bin/userutil --backup-user $USER /data/`

`#$USER替换为用户 eg:admin@a.cn`
  1. 还原单个用户信息(包含邮件数据)

`/home/coremail/bin/userutil --restore-user $USER /data/xxxxx.cmbackup`

`#$USER替换为用户 eg:admin@a.cn`
  • 归档相关查询

  • 查询用户归档信息

    /home/coremail/bin/sysutil --svr-cmd @all archivesvr 'listuser $USER 14 0 9999999'

    #$USER替换为用户 eg:admin@a.cn

  • 查询归档索引是否正常

    /home/coremail/bin/sysutil --svr-cmd @all archivesvr 'checkindex $ARCH_INDEX'

    #$ARCH_INDEX 替换为归档的索引文件位置 eg:/home/coremail/var/index/00/2016/07.index

  • 查询归档数据是否正常

    /home/coremail/bin/sysutil --svr-cmd @all archivesvr 'checkfile $ARCH_DATA'

    #$ARCH_DATA 替换为归档的数据目录位置 eg:/data/00/ex201506/arch_in201006_0000

  • 导出一定时间范围内的归档邮件

    第一步:/home/coremail/bin/sysutil --svr-call @all archivesvr '{cmd:4,aqry:{ctimea:$cmx.date(\'$BEGINTIME\'), ctimeb:$cmx.date(\'$ENDTIME\')},size:99999999}' > /tmp/aid_info.txt #导出指定时间范围内的所有归档邮件的AID(归档ID),并将结果保存到/tmp/aid_info.txt文件中。

    #$BEGINTIME 替换为开始时间 eg:2020-01-01 00:00:00

    #$ENDTIME 替换为结束时间 eg:2021-01-23 23:59:59

    第二步:通过循环脚本,把/tmp/aid_info.txt中的邮件导出

    #!/bin/bash

     `awk -F'\\'` `'$2 ~ /^ach/ {print NR-6,$2}'` `/tmp/aid_info.txt |` `while` `read line aid;` `do`
    
         `test -d /data/all_mail_dir || mkdir -p /data/all_mail_dir`
    
         `/home/coremail/bin/sysutil --svr-cmd` `@all` `archivesvr` `"dumpmail $aid"` `| tail -n +2` `> /data/all_mail_dir/$line.eml`
    
     `done`
    
  • 导出特定用户的归档邮件

    for i in /home/coremail/bin/sysutil --svr-cmd@all`archivesvr "listuser $USER 14 0 99999" |awk -F":" '/END/{print $3}' ;do`/home/coremail/bin/sysutil --svr-cmd @all archivesvr "dumpmail $i" > /data/all_mail_dir/$i.eml;done

    #$USER 替换为真实用户 eg:admin@a.cn

  • 查询归档版本

    /home/coremail/bin/sautil license | grep ARCHTYPE

    #解析:10为基础版; 20为标准版; 30为专业版

  • 组织相关查询

  • 列出系统所有的组织ID

    /home/coremail/bin/userutil --call-api "cmd=43"

  • 查询一个部门下所有的子部门id

    userutil --call-api cmd=300\&org_id=$ORG_ID\&org_unit_id=$OU_ID

    #$ORG_ID 替换为组织ID

    #$OU_ID 替换为组织ID

  • 通过浏览器查询用户当前wmsvr的版本号

    http://$HOST/coremail/s?func=verify

    #$HOST 替换为用户的web地址 eg:mail.coremail.cn 或 192.168.x.x 等

  • 服务器负载相关查询

  • 查询系统历史的 平均负载、CPU、内存 和 磁盘IO 的情况

    sar -qprd -f $OLD_DATE_FILE

    #注意:要使用sar需要安装sysstat包

    #$OLD_DATE_FILE 替换为需要查询的日期文件 eg:/var/log/sa/sa4 表示查询当月4号的信息

  • 相隔时间查询当前进程负载高的情况

    pidstat -d -r -u 3

    # d表示IO,r表示内存,u表示CPU,每3秒刷新一次的情况

  • 查询某个进程的开始运行时间 和 总运行的时间

    ps -eo pid,lstart,etime | grep $PID

    #$PID 替换为需要查询的进程pid

  • 查询Tomcat的JVM缓存、线程数状态

    /home/coremail/bin/tomcatctl -m status | /home/coremail/bin/sautil html2text

  • 网络相关查询

  • 服务器本地网络抓包

    tcpdump -i $INTER -w $FILE

    #$INTER 替换为网卡的名称 eg:eth1

    #$FILE 替换为需要保存抓包的结果文件 eg:/tmp/result.pcap

  • 读取网络抓包后的报文(显示报文 ASCII 内容)

    tcpdump -A -r #$FILE

    #$FILE 替换为需要保存抓包的结果文件 eg:/tmp/result.pcap

  • 查询网络环境的丢包率

    ping -c 100 -f $HOST

    #$HOST 替换为目标地址 eg:mail.coremail.cn 或 192.168.x.x 等

  • 跟踪目标地址的路由信息

    traceroute $HOST

    #$HOST 替换为目标地址 eg:mail.coremail.cn 或 192.168.x.x 等

  • 查询域名的DNS网络解析情况

    dig $RESOURCE_RECORD $DOMAIN +trace @$DNS_SERVER

    #$RESOURCE_RECORD 替换为需要查询的记录 eg: a 或 mx 或 txt

    #$DOMAIN 替换为需要查询的域名 eg:coremail.cn

    #$DNS_SERVER 替换为需要使用的dns服务器进行查询,不写上默认以服务器的dns服务器进行查询。 eg:114.114.114.114 8.8.8.8

  • 系统相关的命令

  • 查询Tomcat版本和JAVA组件

    /home/coremail/bin/tomcatctl status

  • 查询数据库版本

    /home/coremail/mysql/bin/mysql --version

  • 查询邮件系统版本

    /home/coremail/bin/sautil chkver --withC

  • 查询奇安信反垃圾版本

    /home/coremail/bin/confutil --read /opt/360AVServer/conf/updatecfg.ini ENGINE_360_LINUX_SERVER/VER

  • 查询hxphone移动模板版本

    cat /home/coremail/web/webapp/hxphone/version-manifest.json

  • 所有服务的启停命令(包含自带数据库)

    /home/coremail/sbin/cmctrl.sh start|stop|restart

  • 单个服务的启停命令

    /home/coremail/bin/coremail start|stop|restart $server

    #$server 替换为具体的模块名称,例如udsvr、mdsvr、wmsvr等

  • 数据库相关查询

  • 查询不同登录类型的登录次数

    echo "SELECT DATE(access_time) AS date, COUNT(*) AS login_count FROM $database_type WHERE access_time >= '2024-12-01' AND access_time < '2024-12-31' GROUP BY DATE(access_time) ORDER BY date;" | /home/coremail/bin/cmxdb cm_logs_db

    #$database_type 可以替换为 tl_web 、tl_pop 、 tl_smtp 、 tl_imap

  • 统计发信人来自本站的邮件数量

    echo "SELECT DATE_FORMAT(log_time,'%Y-%m-%d') AS g, SUM(trycnt) AS trycnt, SUM(tryrcpt) AS tryrcpt, SUM(tryvol) AS tryvol, SUM(succcnt) AS succcnt, SUM(succrcpt) AS succrcpt, SUM(succvol) AS succvol FROM ax_mta_stat WHERE 1=1 AND log_time BETWEEN '$BEGINTIME' AND '$ENDTIME' AND type IN (1,2) GROUP BY DATE_FORMAT(log_time,'%Y-%m-%d') ORDER BY g DESC" | /home/coremail/bin/cmxdb cm_logs_db

    #$BEGINTIME 替换为开始时间 eg:2025-03-20 00:00:00

    #$ENDTIME 替换为结束时间 eg:2025-03-27 15:19:59

  • 统计发信人来自外站的邮件数量

    echo "SELECT DATE_FORMAT(log_time,'%Y-%m-%d') AS g, SUM(trycnt) AS trycnt, SUM(tryrcpt) AS tryrcpt, SUM(tryvol) AS tryvol, SUM(succcnt) AS succcnt, SUM(succrcpt) AS succrcpt, SUM(succvol) AS succvol FROM ax_mta_stat WHERE 1=1 AND log_time BETWEEN '$BEGINTIME' AND '$ENDTIME' AND type=0 GROUP BY DATE_FORMAT(log_time,'%Y-%m-%d') ORDER BY g DESC" | /home/coremail/bin/cmxdb cm_logs_db

    #$BEGINTIME 替换为开始时间 eg:2025-03-20 00:00:00

    #$ENDTIME 替换为结束时间 eg:2025-03-27 15:19:59

  • 统计投递到本站的邮件数量

    echo "SELECT DATE_FORMAT(log_time,'%Y-%m-%d') AS g, SUM(trycnt) AS trycnt, SUM(tryrcpt) AS tryrcpt, SUM(tryvol) AS tryvol, SUM(succcnt) AS succcnt, SUM(succrcpt) AS succrcpt, SUM(succvol) AS succvol FROM ax_da_stat WHERE 1=1 AND log_time BETWEEN '$BEGINTIME' AND '$ENDTIME' AND type=0 GROUP BY DATE_FORMAT(log_time,'%Y-%m-%d') ORDER BY g DESC" | /home/coremail/bin/cmxdb cm_logs_db

    #$BEGINTIME 替换为开始时间 eg:2025-03-20 00:00:00

    #$ENDTIME 替换为结束时间 eg:2025-03-27 15:19:59

  • 统计投递到外站的邮件数量

    echo "SELECT DATE_FORMAT(log_time,'%Y-%m-%d') AS g, SUM(trycnt) AS trycnt, SUM(tryrcpt) AS tryrcpt, SUM(tryvol) AS tryvol, SUM(succcnt) AS succcnt, SUM(succrcpt) AS succrcpt, SUM(succvol) AS succvol FROM ax_da_stat WHERE 1=1 AND log_time BETWEEN '$BEGINTIME' AND '$ENDTIME' AND type=1 GROUP BY DATE_FORMAT(log_time,'%Y-%m-%d') ORDER BY g DESC" | /home/coremail/bin/cmxdb cm_logs_db

    #$BEGINTIME 替换为开始时间 eg:2025-03-20 00:00:00

    #$ENDTIME 替换为结束时间 eg:2025-03-27 15:19:59

修改操作场景

  1. 修改用户密码,并让其登录强制修改密码

    /home/coremail/bin/userutil --call-api "cmd=1\&user_at_domain=$USER&org_id=$ORG_ID" "password={enc8}puUSjryImzbh7TfrCdlu105D7mA=&encrypt=none"

    #解析:{enc8}puUSjryImzbh7TfrCdlu105D7mA 明文密码为coremail

    #$USER 替换为单个用户 eg:admin@a.cn

    #$ORG_ID 替换为用户所在的组织ID eg:a 或 b 或 c .......

  2. 将符合条件的用户,跨组织移动到目标组织的指定部门下

    /home/coremail/bin/userutil --move-org @"$USER" '$TARGET'

    #$USER 替换方式有三:1、替换为单个用户 eg:admin@a.cn; 2、替换为条件用户 eg:@"org_id='a' and org_unit_id='a_1'" 表示组织是a,且部门id为 a_1 的用户;3、替换为指定文件内的用户 eg:@/tmp/userlist.txt

    #$TARGET 替换为目标位置 eg:org_id=c&ou_id=c_1 表示为组织id为c,且部门id为c_1。

  3. 跨组织移动(加速版)

    /home/coremail/bin/userutil --call-api "cmd=60\&user_at_domain=$USER" org_id=$ORG_ID

    #$ORG_ID 替换为需要设置的组织id eg:a 或 b 或 c .......

    #$USER 替换为单个用户 eg:admin@a.cn

  4. 对用户设置 密送 功能

    /home/coremail/bin/userutil --set-user-attr $USER "user_xbcc=$BCC_USER"

    #$USER 替换方式有三:1、替换为单个用户 eg:admin@a.cn; 2、替换为条件用户 eg:@"cos_id = 1" 表示服务等级为1的所有用户;3、替换为指定文件内的用户 eg:@/tmp/userlist.txt

    #$BCC_USER 替换为用户地址,如有多个用户则用 竖线(|) 分隔 eg:test1@a.cn|test2@a.cn .......

  5. 对整个组织设置 密送 功能

    /home/coremail/bin/userutil --call-api "cmd=23&org_id=$ORG_ID" "org_xbcc=$BCC_USER"

    #$ORG_ID 替换为需要设置的组织id eg:a 或 b 或 c .......

    #$BCC_USER 替换为用户地址,如有多个用户则用 竖线(|) 分隔 eg:test1@a.cn|test2@a.cn .......

  6. 移除被UD灰名单记录的用户

    /home/coremail/bin/sysutil --svr-cmd @local udsvr 'graylist user reset $USER_DN'

    #$USER_DN 替换为用户的dn信息 eg:1/a/test1 其中 1 表示provider_id,a表示org_id,test1表示 user_id

  7. 移除用户的客户端专用密码

    /home/coremail/bin/sautil callapi "{cmd:changeUser,user_at_domain:$USER,attrs:{altpwd:null}}"

    $USER 替换为单个用户 eg:admin@a.cn

  8. 移除用户的二次验证

    /home/coremail/bin/sautil call-api '{cmd:changeUser,user_at_domain:$USER,attrs:{second_auth_type:1}}'

    $USER 替换为单个用户 eg:admin@a.cn

  9. 移除IP被挂起

    /home/coremail/bin/sysutil --svr-cmd @all mtasvr "delhangup $IP"

    #$IP 替换为要移除的IP eg:192.168.x.x .......

  10. 修改用户名

`/home/coremail/bin/userutil --user-rename 原用户名@域名 新用户名`

`#用户名是在系统内唯一的标识,正常情况下不建议修改用户名,以免出现未知问题。`

增加操作场景

  1. 添加用户别名

    /home/coremail/bin/userutil --call-api "cmd=45\&user_at_domain=$USER&alias_user_at_domain=$ALIAS_USER"

    #$USER 替换为用户 eg:admin@a.cn

    #$ALIAS_USER 替换为需要新增的别名 eg:admin@test.cn

镜像操作场景

  1. 查询镜像的总体延迟情况

    /home/coremail/bin/sysutil --svr-cmd @all udsyncutil "dumplogthread"

  2. 同步用户属性以及邮件数据

    /home/coremail/bin/udsyncutil --syncuser $USER $NODE 255

    #$USER 替换方式有三:1、替换为单个用户 eg:admin@a.cn; 2、替换为条件用户 eg:@"cos_id = 1" 表示服务等级为1的所有用户;3、替换为指定文件内的用户 eg:@/tmp/userlist.txt

    #$NODE 替换为 主/镜像 节点的global.cf 下的 RegionId

  3. 检查用户的邮件是否一致

    /home/coremail/bin/udsyncutil --checkmail $USER @$NODE

    #$USER 替换方式有三:1、替换为单个用户 eg:admin@a.cn; 2、替换为条件用户 eg:@"cos_id = 1" 表示服务等级为1的所有用户;3、替换为指定文件内的用户 eg:@/tmp/userlist.txt

    #$NODE 替换为 主/镜像 节点的global.cf 下的 RegionId

  4. 检查用户节点组织架构属性是否一致

    /home/coremail/bin/udsyncutil --compareregion $SUBNODE "mode=3"

    #$SUBNODE 替换为主节点的global.cf 下的 RegionId

多活操作场景

  1. 对比用户的ud数据是否一致

    /home/coremail/bin/userutil --thread 10 --diffuserud $USER $DIFF_UID

    #$USER 替换方式有三:1、替换为单个用户 eg:admin@a.cn; 2、替换为条件用户 eg:@"cos_id = 1" 表示服务等级为1的所有用户;3、替换为指定文件内的用户 eg:@/tmp/userlist.txt

    #$DIFF_UID 替换为需要对比的udid号码 eg:1 2 3 ......

  2. 查询本站的ud数据状态是否一致

    /home/coremail/bin/userutil --checkhastat

  3. 查询节点成员列表

    /home/coremail//bin/etcdctl member list

  4. 查看节点健康状态

    /home/coremail/bin/etcdctl cluster-health

results matching ""

    No results matching ""

    results matching ""

      No results matching ""

      results matching ""

        No results matching ""