Linux 计算某个域每天发送的邮件数量

发布于 2025-01-12 03:16:38 字数 3514 浏览 3 评论 0原文

我有一些使用 postfix 代理的 Linux SMTP 服务器的日志。我想对日志执行操作,这样我就可以知道某个域每天发送了多少邮件,而无需编写脚本。

例如,我的 ma​​il.log 文件包含以下内容:

Jan  1 14:05:31 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 78B06EC0073)
Jan  1 15:05:00 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 874BE4587C4)
Jan  1 15:05:00 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example2.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 98C484E1571)
Jan  2 10:08:15 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 4456D154E12)
Jan  2 15:07:00 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example2.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 4F54515C154)
Jan  2 14:59:11 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example2.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 9856C984E16)
Feb  1 13:14:35 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as EC1874415E8)

我想要的输出是:

- 首先是发送邮件的域/地址

- 发送邮件的数量每个日期发送特定域(例如,1 月 1 日发送 2 封邮件)

所以这里的输出应该是这样的:

http://mail.example.org[127.0.0.1]:25
Jan 1 2
Jan 2 1
Feb 1 1

http://mail.example2.org[127.0.0.1]:25
Jan 1 1
Jan 2 2

现在我知道我有 2 个命令可以分别执行这些操作,但我真的不知道如何组合他们在一起:

1。统计某个域总共发送了多少封邮件:

[user@linux ~] grep -h "status=sent" mail.log | cut -d' ' -f9 | awk '{c[$0] += 1} END {for(i in c){printf "%6s %4d\n", i, c[i]}}' | sort -M

relay=http://mail.example2.org[127.0.0.1]:25,    3
relay=http://mail.example.org[127.0.0.1]:25,    4

2。计算每天发送的邮件数量

[user@linux ~]$ grep -h "status=sent" mail.log | cut -c-6 | awk '{c[$0] += 1} END {for(i in c){printf "%6s %4d\n", i, c[i]}}' | sort -k2

Feb  1    1
Jan  1    3
Jan  2    3

有谁知道一个可以帮助我完成此特定操作的好命令吗?任何帮助将不胜感激,谢谢!

I have some logs of a Linux SMTP server which uses the postfix agent. I want to perform an operation on the logs so I can know how many mails a certain domain sends per date without writing a script.

For example my mail.log file has these contents:

Jan  1 14:05:31 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 78B06EC0073)
Jan  1 15:05:00 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 874BE4587C4)
Jan  1 15:05:00 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example2.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 98C484E1571)
Jan  2 10:08:15 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 4456D154E12)
Jan  2 15:07:00 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example2.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 4F54515C154)
Jan  2 14:59:11 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example2.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 9856C984E16)
Feb  1 13:14:35 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as EC1874415E8)

The output I want is:

- First the domain/address the mail is sent from

- Amount of mails that specific domain sends per date (e.g. Jan 1 2 mails sent)

So here the output should be somehow:

http://mail.example.org[127.0.0.1]:25
Jan 1 2
Jan 2 1
Feb 1 1

http://mail.example2.org[127.0.0.1]:25
Jan 1 1
Jan 2 2

For now I know I have 2 commands that can do these operations seperately, but I really have no idea on how to combine them together:

1. Count how many mails a certain domain sends in total:

[user@linux ~] grep -h "status=sent" mail.log | cut -d' ' -f9 | awk '{c[$0] += 1} END {for(i in c){printf "%6s %4d\n", i, c[i]}}' | sort -M

relay=http://mail.example2.org[127.0.0.1]:25,    3
relay=http://mail.example.org[127.0.0.1]:25,    4

2. Count how many mails are sent per day

[user@linux ~]$ grep -h "status=sent" mail.log | cut -c-6 | awk '{c[$0] += 1} END {for(i in c){printf "%6s %4d\n", i, c[i]}}' | sort -k2

Feb  1    1
Jan  1    3
Jan  2    3

Does anyone know a good command that can help me with this specific operation? Any help would be appreciated, thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

久光 2025-01-19 03:16:38

对于显示的示例,请尝试执行以下 awk 代码。用 GNU awk 编写和测试应该适用于任何版本。

awk '
{
  gsub(/^relay=|,$/,"",$8)
}
{
  arr1[$1 OFS $2 OFS $8]++
}
END{
  for(i in arr1){
    split(i,arr2)
    arr3[arr2[3]]=(arr3[arr2[3]]?arr3[arr2[3]] ORS:"") (arr2[1] OFS arr2[2] OFS arr2[4] OFS arr1[i])
  }
  for(i in arr3){
    print i ORS arr3[i]
  }
}
'  Input_file

说明:awk的主程序中,首先将第7个字段中的开始relay= AND结束,全局替换为NULL。然后创建一个名为 arr1 的数组,其索引为 $1 OFS $2 OFS $8 ,并使用相同索引(此处为 1)不断增加其计数,对 Input_file 的所有行执行此操作。然后在 awk 代码的 END 块中,遍历 arr1 的所有元素,并将其索引 i 拆分到 arr2 中。然后使用 arr2 的 3 元素的索引创建新数组 arr3,该元素是 Input_file 中的 http 值。并将值赋给arr2[1] OFS arr2[2] OFS arr2[4] OFS arr1[i]。在所有循环中创建 arr3 后,然后通过 for 循环遍历其所有项目并打印其索引,然后是 ORS(换行),然后是 arr3 的值(负责打印所需的所需输出)。

With your shown samples, please try following awk code. Written and tested in GNU awk should work with any version.

awk '
{
  gsub(/^relay=|,$/,"",$8)
}
{
  arr1[$1 OFS $2 OFS $8]++
}
END{
  for(i in arr1){
    split(i,arr2)
    arr3[arr2[3]]=(arr3[arr2[3]]?arr3[arr2[3]] ORS:"") (arr2[1] OFS arr2[2] OFS arr2[4] OFS arr1[i])
  }
  for(i in arr3){
    print i ORS arr3[i]
  }
}
'  Input_file

Explanation: In main program of awk firstly globally substituting starting relay= AND ending , with NULL in 7th field. Then creating an array named arr1 which has index as $1 OFS $2 OFS $8 and keep increasing its count with same indexes with 1 here, doing this for all the lines for Input_file. Then in END block of awk code, traversing through arr1 all elements and splitting its index i into arr2. Then creating new array arr3 with index of arr2's 3 element which is http value in Input_file. And assigning value to arr2[1] OFS arr2[2] OFS arr2[4] OFS arr1[i]. Once in all cycles arr3 is created, then traversing through all of its items by for loop and printing its index followed by ORS(new line) followed by value of arr3(which is responsible for printing needed required output).

迷爱 2025-01-19 03:16:38

假设:

  • 一行最多可以有一个字符串 relay= 实例
  • relay= 可能并不总是显示在
  • 给定域/地址的相同空格分隔字段输出 中应按日历顺序(在本例中也应按照从 mail.log 读取日期的顺序)

添加几行不包含 relay= 的行:

$ cat mail.log
Jan  1 14:05:31 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 78B06EC0073)
Jan  1 14:17:27 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=rejected (250 2.0.0 Ok: queued as 78B06EC0073)
Jan  1 15:05:00 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 874BE4587C4)
Jan  1 15:05:00 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example2.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 98C484E1571)
Jan  2 10:08:15 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 4456D154E12)
Jan  2 12:13:31 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=rejected (250 2.0.0 Ok: queued as 78B06EC0073)
Jan  2 15:07:00 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example2.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 4F54515C154)
Jan  2 14:59:11 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example2.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 9856C984E16)
Feb  1 13:14:35 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as EC1874415E8)

使用 GNU 的一个想法awk(对于数组数组):

awk '
BEGIN         { regex = "\\<relay=[^, ]" }

/status=sent/ { date=$1 FS $2
                addr=""

                for (i=3;i<=NF;i++) {                     # loop through fields looking for "relay="
                    if ($i ~ regex) {                     # and if found then parse out the domain/address
                       split($i,arr,"=")
                       addr=arr[2]
                       gsub(",","",addr)
                       continue
                    }
                }

                if (addr != "") {                         # if we found an address then increment our counter
                   counts[addr][date]++

                   if (date != prevdate) {                # and keep track of the order in which dates have been processed
                      dates[++dtorder]=date
                      prevdate=date
                   }
                }
              }

END           { for (addr in counts) {
                    print addr

                    for (i=1;i<=dtorder;i++)              # loop through dates[] in the same order in which they were processed
                        if (dates[i] in counts[addr])
                           print dates[i],counts[addr][dates[i]]
                }
              }
' mail.log

注意:

  • for (addr in counts) 不保证以任何特定顺序处理数组条目
  • dates[ ++dtorder]=date 用于跟踪日期处理的顺序;然后在 END{...} 处理中使用它,以确保我们以相同的顺序输出日期;这假设日期按日历顺序显示在 mail.log 中,从而无需弄清楚如何对 JanFeb、< code>Mar 等(按日历顺序)

这会生成:

http://mail.example2.org[127.0.0.1]:25
Jan 1 1
Jan 2 2
http://mail.example.org[127.0.0.1]:25
Jan 1 2
Jan 2 1
Feb 1 1

Assumptions:

  • a line can have at most one instance of the string relay=
  • relay= may not always show up in the same spaced-delimited field
  • output for a given domain/address should be in calendar order (which in this case should also be the order in which dates are read from mail.log)

Adding a couple lines that do not include relay=:

$ cat mail.log
Jan  1 14:05:31 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 78B06EC0073)
Jan  1 14:17:27 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=rejected (250 2.0.0 Ok: queued as 78B06EC0073)
Jan  1 15:05:00 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 874BE4587C4)
Jan  1 15:05:00 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example2.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 98C484E1571)
Jan  2 10:08:15 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 4456D154E12)
Jan  2 12:13:31 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=rejected (250 2.0.0 Ok: queued as 78B06EC0073)
Jan  2 15:07:00 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example2.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 4F54515C154)
Jan  2 14:59:11 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example2.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 9856C984E16)
Feb  1 13:14:35 mail postfix/smtp[31349]: E6EC84105D: to=<[email protected]>, relay=http://mail.example.org[127.0.0.1]:25, delay=1.7, delays=0.22/0.05/0.36/1.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as EC1874415E8)

One idea using GNU awk (for array of arrays):

awk '
BEGIN         { regex = "\\<relay=[^, ]" }

/status=sent/ { date=$1 FS $2
                addr=""

                for (i=3;i<=NF;i++) {                     # loop through fields looking for "relay="
                    if ($i ~ regex) {                     # and if found then parse out the domain/address
                       split($i,arr,"=")
                       addr=arr[2]
                       gsub(",","",addr)
                       continue
                    }
                }

                if (addr != "") {                         # if we found an address then increment our counter
                   counts[addr][date]++

                   if (date != prevdate) {                # and keep track of the order in which dates have been processed
                      dates[++dtorder]=date
                      prevdate=date
                   }
                }
              }

END           { for (addr in counts) {
                    print addr

                    for (i=1;i<=dtorder;i++)              # loop through dates[] in the same order in which they were processed
                        if (dates[i] in counts[addr])
                           print dates[i],counts[addr][dates[i]]
                }
              }
' mail.log

NOTES:

  • for (addr in counts) is not guaranteed to process array entries in any specific order
  • dates[++dtorder]=date is used to keep track of the order in which dates are processed; this is then used in the END{...} processing to insure we ouput dates in the same order; this assumes dates show up in mail.log in calendar order which in turn eliminates the need to figure out how to sort Jan, Feb, Mar, etc in calendar order

This generates:

http://mail.example2.org[127.0.0.1]:25
Jan 1 1
Jan 2 2
http://mail.example.org[127.0.0.1]:25
Jan 1 2
Jan 2 1
Feb 1 1
浅沫记忆 2025-01-19 03:16:38

不是您想要的确切输出,但非常简单(使用 GNU 和 BSD awksortuniq 进行测试):

$ awk -F'=|,?[[:space:]]+' '{print $10,$1,$2}' mail.log | sort | uniq -c
      1 http://mail.example.org[127.0.0.1]:25 Feb 1
      2 http://mail.example.org[127.0.0.1]:25 Jan 1
      1 http://mail.example.org[127.0.0.1]:25 Jan 2
      1 http://mail.example2.org[127.0.0.1]:25 Jan 1
      2 http://mail.example2.org[127.0.0.1]:25 Jan 2

awk 字段分隔符由 -F'=|,?[[:space:]]+' 选项设置为 = 符号,或后跟可选逗号至少一个空格(或制表符、换页符...)据此,您感兴趣的字段是数字 10(来源)、1(月)和 2(日)。 排序 | uniq -c 排序并打印结果,每个唯一输入一行,前面带有计数。

但月份的排序是按字母顺序排列的。如果您希望输出首先按来源排序,然后按增加日期排序,我们可以添加 sort 选项:

$ awk -F'=|,?[[:space:]]+' '{print $10,$1,$2}' mail.log | sort -k1,1 -k2,2M -k3,3 |
  uniq -c
      2 http://mail.example.org[127.0.0.1]:25 Jan 1
      1 http://mail.example.org[127.0.0.1]:25 Jan 2
      1 http://mail.example.org[127.0.0.1]:25 Feb 1
      1 http://mail.example2.org[127.0.0.1]:25 Jan 1
      2 http://mail.example2.org[127.0.0.1]:25 Jan 2

-k2,2M 按日期对第二个键的月份名称进行排序,而不是按字母顺序排列。最后,如果您想要显示的准确输出,我们可以添加最后一个 awk 脚本来进行最终格式化:

$ awk -F'=|,?[[:space:]]+' '{print $10,$1,$2}' mail.log | sort -k1,1 -k2,2M -k3,3 |
  uniq -c | awk '$2!=p {p=$2; print (NR!=1) ? "\n" p : p} {print $3,$4,$1}'
http://mail.example.org[127.0.0.1]:25
Jan 1 2
Jan 2 1
Feb 1 1

http://mail.example2.org[127.0.0.1]:25
Jan 1 1
Jan 2 2

每次原点更改 ($2!=p) 时,这最后一个awk 脚本将新的原点存储在变量 p 中以供以后比较,打印换行符(第一行除外,因此 (NR!=1) ? " \n" p : p),以及打印新的原点。对于每一行,它还打印月份 ($3)、日期 ($4) 和计数 ($1)。

Not the exact output you want but quite simple (tested with GNU and BSD awk, sort and uniq):

$ awk -F'=|,?[[:space:]]+' '{print $10,$1,$2}' mail.log | sort | uniq -c
      1 http://mail.example.org[127.0.0.1]:25 Feb 1
      2 http://mail.example.org[127.0.0.1]:25 Jan 1
      1 http://mail.example.org[127.0.0.1]:25 Jan 2
      1 http://mail.example2.org[127.0.0.1]:25 Jan 1
      2 http://mail.example2.org[127.0.0.1]:25 Jan 2

The awk field separator is set by the -F'=|,?[[:space:]]+' option to either an = sign, or an optional comma followed by at least one space (or tab, formfeed...) According this, the fields you are interested in are number 10 (origin), 1 (month) and 2 (day). sort | uniq -c sorts and prints the result, one line per unique input, preceded with the count.

But the sorting of the months is alphabetical. If you want the output to be sorted first by origin and then by increasing date we can add sort options:

$ awk -F'=|,?[[:space:]]+' '{print $10,$1,$2}' mail.log | sort -k1,1 -k2,2M -k3,3 |
  uniq -c
      2 http://mail.example.org[127.0.0.1]:25 Jan 1
      1 http://mail.example.org[127.0.0.1]:25 Jan 2
      1 http://mail.example.org[127.0.0.1]:25 Feb 1
      1 http://mail.example2.org[127.0.0.1]:25 Jan 1
      2 http://mail.example2.org[127.0.0.1]:25 Jan 2

-k2,2M sorts the month names of the second key by date, instead of alphabetically. Finally, if you want the exact output you show, we can add a last awk script for the final formatting:

$ awk -F'=|,?[[:space:]]+' '{print $10,$1,$2}' mail.log | sort -k1,1 -k2,2M -k3,3 |
  uniq -c | awk '$2!=p {p=$2; print (NR!=1) ? "\n" p : p} {print $3,$4,$1}'
http://mail.example.org[127.0.0.1]:25
Jan 1 2
Jan 2 1
Feb 1 1

http://mail.example2.org[127.0.0.1]:25
Jan 1 1
Jan 2 2

Each time the origin changes ($2!=p) this last awk script stores the new origin in variable p for later comparisons, prints a newline (except for the first line, thus the (NR!=1) ? "\n" p : p), and prints the new origin. For each line it also prints the month ($3), the day ($4) and the count ($1).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文