RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-193962

Hellseher's questions

Martin Hope
Hellseher
Asked: 2021-12-30 05:01:04 +0000 UTC

如何在 Go 中复制所有不相关的文件?

  • 0

我有少量不相关的文件(它们不是模块或项目的一部分),只是各种草图和注释。

如何一次收集它们,而无需每次明确指定需要编译的内容?

go run .
# _/mnt/library/projects/hck/Go
./listen.go:12:6: main redeclared in this block
    previous declaration at ./array.go:7:6
go build .
# _/home/Sharlatan/Projects/hck/Go
./listen.go:12:6: main redeclared in this block
        previous declaration at ./array.go:7:6

/array.go/

package main

import (
    "fmt"
)

func main() {
    var a1 [10]int
    a2 := [...]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

    fmt.Println(a1)
    fmt.Println(a2)
}

/listen.go/

package main

import (
    "fmt"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hi there!")
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8181", nil)
}
golang
  • 2 个回答
  • 10 Views
Martin Hope
Hellseher
Asked: 2020-02-13 05:12:58 +0000 UTC

如何查看用户登录的方法是什么?

  • 2

在建立血腥企业的过程中,我自己了解到授权类型的顺序会影响基地的行为。

如果方法是 trustedafter md5,那么它会取消没有密码的登录。

具有匹配连接类型、客户端地址、请求的数据库和用户名的第一条记录用于执行身份验证。没有“fall-through”或“backup”:如果选择了一条记录并且认证失败,则不考虑后续记录。如果没有记录匹配,则拒绝访问。

如何跟踪选择了哪些授权方法?

链接

  • https://www.postgresql.org/docs/9.6/auth-pg-hba-conf.html
postgresql
  • 1 个回答
  • 10 Views
Martin Hope
Hellseher
Asked: 2020-11-16 06:59:30 +0000 UTC

在系统启动的哪个阶段定义环境变量?

  • 1

该脚本crontab使用参数运行:

/usr/spool/cron/crontab/root

@reboot /path/to/script

观察到一个有趣的功能,并非所有环境变量都存在,其中一个主要$USER是空的,您必须手动定义它:

脚本

#!/usr/bin/env bash
...
export USER=$(id -un)
...

为此还有一些缺失的方法$PATH,我加载了缺失的:

#!/usr/bin/env bash

source /etc/profile
...

在哪个引导阶段可以使用完整范围的环境变量?在启动由 运行的脚本之前是否值得等待 N 秒cron?

linux
  • 1 个回答
  • 10 Views
Martin Hope
Hellseher
Asked: 2020-08-14 05:22:53 +0000 UTC

locate 有什么版本的正则表达式?

  • 2

locate我在使用密钥查找文件时遇到问题-r,--regexp

~$ locate --help | grep regex
  -r, --regexp REGEXP    search for basic regexp REGEXP instead of patterns
      --regex            patterns are extended regexps

在 PCRE 中有一个不良模式列表,如下所示:

'.*/[0-9]{1,3}-.{16}\.txt'

例子

~$ ls -gaG *-*txt | head
-rw-rw-r--. 1 0 Aug 13 21:32 100-gp9hQhTvaySlmrua.txt
-rw-rw-r--. 1 0 Aug 13 21:32 10-nvvYcrUpduSbWuaj.txt
-rw-rw-r--. 1 0 Aug 13 21:32 11-GEDkBMpKspWsdFu1.txt
-rw-rw-r--. 1 0 Aug 13 21:32 12-O2gSsKGP1KLl56ae.txt
-rw-rw-r--. 1 0 Aug 13 21:32 13-Q1dx492pLFGAiTTs.txt
-rw-rw-r--. 1 0 Aug 13 21:32 14-Lco6Gcisfl5QCvYG.txt
-rw-rw-r--. 1 0 Aug 13 21:32 15-kR75W2oeZ3PoibrE.txt
-rw-rw-r--. 1 0 Aug 13 21:32 16-QicUkZaseC5zr7p8.txt
-rw-rw-r--. 1 0 Aug 13 21:32 17-7ERZ7lnUX7RQQXZI.txt
-rw-rw-r--. 1 0 Aug 13 21:32 18-XbvGQcvrToIqNOSA.txt

~$ ls -gaG | head | grep -oP '[0-9]{1,3}-.{16}\.txt'
100-gp9hQhTvaySlmrua.txt
10-nvvYcrUpduSbWuaj.txt
11-GEDkBMpKspWsdFu1.txt
12-O2gSsKGP1KLl56ae.txt
13-Q1dx492pLFGAiTTs.txt
14-Lco6Gcisfl5QCvYG.txt

~$ locate 100 | grep -o 100-gp9hQhTvaySlmrua.txt
100-gp9hQhTvaySlmrua.txt

我更新了数据库,试图用相同的模板找到它,但无济于事。

~$ time locate -r '[0-9]{1,3}-.{16}\.txt'
real    0m1.574s
user    0m1.567s
sys     0m0.004s

~$ time locate -r '*./[0-9]\{1,3\}-.\{16\}\.txt$'
real    0m0.168s
user    0m0.165s
sys     0m0.003s

问题:什么类型的正则表达式引擎locate呢?

linux
  • 1 个回答
  • 10 Views
Martin Hope
Hellseher
Asked: 2020-08-13 08:30:53 +0000 UTC

如何计算 Rust 中唯一字符的数量?

  • 1

根据我在网络上找到的内容,我抛出了一些代码,但我仍然无法弄清楚如何将其应用于所有行(它只给出了第一个的值)

任务:打印字符串的长度和每个字符串的唯一字符数stdin

use std::io;

/// Retrun unique characters count of a string.
fn uniq_chars_count(string: &str) -> usize {
    let string_vector: Vec<char> = string.chars().collect();
    let mut y = string_vector.clone();

    y.dedup();
    y.len()
}

fn main() -> io::Result<()> {
    let mut input = String::new();

    io::stdin().read_line(&mut input)?;

    let u_chars = uniq_chars_count(input.trim());

    println!("Unique char lenght: {}", u_chars );
    println!("Line length: {}", input.trim().len());
}
текст
  • 1 个回答
  • 10 Views
Martin Hope
Hellseher
Asked: 2020-08-13 06:01:17 +0000 UTC

在 Rust 中读取传入流

  • 0

(如果标题错误,请纠正我)

如何 stdin在 *nix 上处理 Rust 中的所有字符串?

例子:

~$ cat file | rust_cmd # и что то делаем дальше
~$ rust_cmd < file
~$ xargs -I% rust_cmd % < file

文档中的代码仅生成第一行

use std::io;

fn main() -> io::Result<()> {
    let mut input = String::new();

    io::stdin().read_line(&mut input)?;

    println!("You typed: {}", input.trim());
    Ok(())
}

当我自己开始朝这个方向阅读时,请指出文档中描述这一点的部分。

linux
  • 2 个回答
  • 10 Views
Martin Hope
Hellseher
Asked: 2020-08-12 07:24:33 +0000 UTC

如何在 rustc 1.28.0 的 match 中使用字符串比较?

  • 2

我在新版书上继续学习Rust,我正在经历一个“猜数字”中的游戏创作

有这段代码:

let guess: u32 = match guess.trim().parse() {
    Ok(num) => num,
    Err(_) => {
        println!("Enter a number, please.");
        continue;
    }
};

如果输入的不是数字,请继续。

exit 如果您输入程序将结束,如何添加与带有条件的字符串的比较?

在不同版本的 Rust 中,对字符串数据的处理match是不同的,现在的版本是什么?

链接

  • https://doc.rust-lang.org/book/2018-edition/ch02-00-guessing-game-tutorial.html
rust
  • 1 个回答
  • 10 Views
Martin Hope
Hellseher
Asked: 2020-07-27 01:07:35 +0000 UTC

Ansible 如何为组设置配置变量(ansible.cfg)?

  • 2

项目分为3大组

Group-1 - 密码连接

Group-2 - 按键连接,Group-3 - 按键连接

在 ansible.cfg 中,默认授权是密码。如何根据群体改变行为?

我尝试了什么:

  • 删除了ask_pass的ansible.cfg设置
  • 将 ask_pass 添加到 group_vars/[all:vars],添加到 inventory/[group_name:vars]
  • 添加到剧本

配置:

ansible --version
ansible 2.6.0
  config file = Ansible/ansible.cfg
  configured module search path = [ u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.15 (default, May 16 2018, 17:50:09) [GCC 8.1.1 20180502 (Red Hat 8.1.1-1)]

ls -gG ansible.cfg group_vars/
-rw-r--r--. 1 3257 Jul 26 20:17 ansible.cfg
group_vars/:
total 56
-rw-rw-r--. 1  847 Jan 26 20:02 DE.yml
-rw-rw-r--. 1  681 Nov 30  2017 DK.yml
-rw-rw-r--. 1 1048 Jan 26 20:02 ES.yml
-rw-rw-r--. 1 1422 Jan 30 16:53 FI.yml
-rw-rw-r--. 1 2145 Nov 15  2017 IE.yml
-rw-rw-r--. 1  877 Feb  2 15:53 LT.yml
-rw-rw-r--. 1  874 Feb  2 11:12 LV.yml
-rw-rw-r--. 1  467 Jan 29 08:39 NL.yml
-rw-rw-r--. 1 1939 Jan 26 20:02 NO.yml
-rw-rw-r--. 1 1334 Jan 29 08:39 SE.yml
lrwxrwxrwx. 1    6 Feb  3 00:34 _signoff_de.yml -> DE.yml
lrwxrwxrwx. 1    6 Feb  3 00:34 _signoff_dk.yml -> DK.yml
lrwxrwxrwx. 1    6 Feb  3 00:34 _signoff_es.yml -> ES.yml
lrwxrwxrwx. 1    6 Feb  3 00:34 _signoff_fi.yml -> FI.yml
lrwxrwxrwx. 1    6 Feb  3 00:34 _signoff_ie.yml -> IE.yml
lrwxrwxrwx. 1    6 Feb  3 00:34 _signoff_lt.yml -> LT.yml
lrwxrwxrwx. 1    6 Feb  3 00:34 _signoff_lv.yml -> LV.yml
lrwxrwxrwx. 1    6 Feb  3 00:34 _signoff_nl.yml -> NL.yml
lrwxrwxrwx. 1    6 Feb  3 00:34 _signoff_no.yml -> NO.yml
lrwxrwxrwx. 1    6 Feb  3 00:34 _signoff_se.yml -> SE.yml
lrwxrwxrwx. 1    8 Feb  3 00:34 _signoff_test.yml -> TEST.yml
lrwxrwxrwx. 1   10 Feb  3 00:34 _signoff_uk_dcm.yml -> UK_DCM.yml
lrwxrwxrwx. 1   12 Feb  3 00:34 _signoff_uk_odeon.yml -> UK_ODEON.yml
lrwxrwxrwx. 1    9 Feb  3 00:34 _signoff_uk_pd.yml -> UK_PD.yml
lrwxrwxrwx. 1   10 Feb  3 00:34 _signoff_uk_vue.yml -> UK_DCM.yml
-rw-rw-r--. 1 2145 Jan 29 08:39 TEST.yml
-rw-rw-r--. 1 2154 Feb  2 15:00 UK_DCM.yml
-rw-rw-r--. 1 2202 Jan 29 08:39 UK_ODEON.yml
-rw-rw-r--. 1 2034 Jan 30 15:18 UK_PD.yml
lrwxrwxrwx. 1   10 Feb  3 00:34 UK-VUE.yml -> UK_DCM.yml
ansible
  • 1 个回答
  • 10 Views
Martin Hope
Hellseher
Asked: 2020-07-21 01:58:32 +0000 UTC

如何在 Ansible Tower 或 AWX 中使用库存

  • 1

在 Ansible (CLI) 中创建了一个项目,任务是将所有内容传输到 Ansible Tower (AWX) 图形前端。

./inventory 中静态列出的所有服务器都基于不同的剧本和角色组。问题是,有没有一种方法可以使用已经完成的项目,而不必重写 Ansible Tower (AWX) 下的所有内容?

到目前为止,我只看到了对 Ansible Tower 数据库中所有主机的完整手动重写,这非常耗时。

ansible
  • 1 个回答
  • 10 Views
Martin Hope
Hellseher
Asked: 2020-02-01 03:58:19 +0000 UTC

报告失败的 Ansible 任务

  • 1

Ansible 中是否有一个变量来存储每个主机的失败任务的值?

任务是向电报发送通知,其中包含主机列表,其中 playbook 没有播放到最后,但因错误而完成。

ansible
  • 2 个回答
  • 10 Views
Martin Hope
Hellseher
Asked: 2020-01-05 07:36:30 +0000 UTC

打破逻辑链或分成单独的行(Ansible)

  • 1

晚上好。

如何将很长的链或分成几行以提高可读性?

- degub:
    msg: "Сообщить если одно из условий выполнено"
  when: long_variable_name != none or long_variable_name in check_list or long_variable_name in check_list_2
ansible
  • 1 个回答
  • 10 Views
Martin Hope
Hellseher
Asked: 2020-12-30 11:08:40 +0000 UTC

获取网关给定的主机地址和掩码(Python3 ipaddress)

  • 2

晚上好。

我正在 Ansible 中编译生成 host_vars 文件。

输入端有一个“原始”文件,其中包含未来的主机地址(将根据模板生成 /etc/network/interface 文件),掩码始终为常量 - 255.255.255.128,以及网关 - *. *.*.1

host_vars.yml.j2

---

sys_hostname: "{{ cfg_hostname }}"
sys_type: "{{ type }}"

sys_eth0_ipv4_address: "{{ tb_eth0 }}"
sys_eth0_ipv4_gateway: "{{ tb_eth0_gw }}"
sys_eth0_ipv4_netmask: "255.255.255.128"

原始值文件:

raw_host_vars

ES:TB-MT:SiteHostName-1:10.58.11.111
ES:TB-MT:SiteHostName-2:10.58.12.111
ES:TB-MT:SiteHostName-3:10.58.13.111

生成文件的脚本

#!/usr/bin/env python3
import os
import sys
import yaml
import ipaddress

from jinja2 import Environment, FileSystemLoader, Template

ENV = Environment(loader=FileSystemLoader('./templates'))

with open('./raw_host_vars') as file:
    raw_host_vars = file.read().split("\n")

template = ENV.get_template("host_vars.yml.j2")

for line in raw_host_vars:
    iso = line.split(":")[0]
    type = line.split(":")[1]
    cfg_hostname = line.split(":")[2]
    tb_eth0 = line.split(":")[3]
    tb_eth0_gw = # Нужно сформировать гейтвей по шаблону \*.\*.\*.1
                 # изменить только последний октет

    print(template.render(cfg_hostname=cfg_hostname,
                          iso=iso,
                          type=type,
                          tb_eth0=tb_eth0,
                          tb_eth0_gw=tb_eth0_gw))
# End of script

如何使用ipaddress模块从有关子网的可用数据和主机本身的地址生成新地址(网关) (文档几乎不包含示例)?

工作技巧:

tb_eth0_gw = ".".join(line.split(":")[2].split(".")[:3])+".1",
python
  • 1 个回答
  • 10 Views
Martin Hope
Hellseher
Asked: 2020-12-29 09:12:14 +0000 UTC

单个主机的剧本执行时间测量

  • 2

晚上好。

有这样的蚀刻问题,目前还没有达到足够的决定。

在 Telegram 中编译报告消息需要如何计算每个主机播放剧本所花费的时间。

到目前为止,如果 playbook 为多个主机并行执行,这样的存根并不总是显示正确的时间:

pl-signoff.yml

#!/usr/bin/ansible-playbook
- hosts: _signoff
  gather_facts: false

  vars:
    - playbook_name: "pl-signoff"
    - build_version: 1.41 

  pre_tasks:
    - local_action: shell date
      register: pl_begin
      become: false

  roles:
    - role-1
    - role-2
    # etc
    - inspector

角色/检查员/任务/main.yml

- name: "last probe of facts"
  setup:

- local_action: shell date
  register: pl_end
  become: false

- name: "shout it loud to signoff_test"
  telegram:
    msg_format: plain
    token: 'my_tocken'
    chat_id: my_id
    msg: |
         BEGIN: "{{ pl_begin }}"
         PL: "{{ playbook_name }}"
         MSG: task complete for the site "{{ site-id }}"
         END: "{{ pl_end }}"
ansible
  • 1 个回答
  • 10 Views
Martin Hope
Hellseher
Asked: 2020-12-18 10:28:09 +0000 UTC

分配从目录中删除文件的权限

  • 0

晚上好。

有点混乱,需要在目录上设置什么权限,以便一个组的用户可以从中删除它。

可用的:

~# grep "vsftpd\|app_usr" /etc/passwd
app_usr:x:1001:1001::/home/app_usr:/bin/bash
vsftpd:x:1002:1002::/home/vsftpd:/bin/false

~# grep vsftpd /etc/group
app_usr:x:1001:vsftpd,distribution
vsftpd:x:1002:app_user

~# ls -la / | grep library
drwxr-xr-x+   9 vsftpd app_usr  4096 Dec 18 02:15 library

~# mount | grep " / "
/dev/vda1 on / type ext4 (rw,errors=remount-ro)

vsftpd 配置:

chroot_local_user=YES
guest_username=vsftpd
local_root=/library
allow_writeable_chroot=YES
file_open_mode=0777

您需要为app_usr用户设置权限,以删除通过 FTP 上传到 /library 的文件,这些文件是在vsftpd用户下本地创建的。用户app_usr是vsftpd组的成员,反之亦然。

报错时:

/library# ls -la 123
-rwxrwxr-x+ 1 vsftpd vsftpd 0 Dec 18 02:15 123

/library# su app_usr
/library$ rm 123
rm: cannot remove `123': Permission denied

UPD

问题出在 Ubuntu 12.04 LTS 的一些神奇设置中,Ubuntu 16.04 LTS 上的所有内容都被删除了。这两项检查都考虑了讨论中的意见和建议。

linux
  • 1 个回答
  • 10 Views
Martin Hope
Hellseher
Asked: 2020-12-16 10:52:52 +0000 UTC

nc (netcat) 毫秒等待

  • 1

有一个服务器列表,您需要“环” nc(ping 不可用)如何将-w参数设置为毫秒值?

-w timeout
    If a connection and stdin are idle 
    for more than timeout seconds, then 
    the connection is silently closed.

这是 Ansilbe 的“事实”的一部分,即每个受管节点最多有 10 台服务器要检查(最多 3000 台),每台服务器等待一秒钟将导致 10 x 3000 秒的停机时间。

  • https://linux.die.net/man/1/nc
linux
  • 2 个回答
  • 10 Views
Martin Hope
Hellseher
Asked: 2020-11-04 07:26:37 +0000 UTC

如何将变量传递给任务名称(“-name:”)?

  • 2

晚上好。

如何将变量从with_items:任务头传递- name:?

- name: "build {{ item.dir }} with cargo"
  shell: |
    cd ~/.local/src/rust/{{ item.dir }}
    cargo build --release
  with_items: "{{ rust.gits }}"

字面上的问题build {{ item.dir }} with cargo

我希望 Ansible 输出显示现在正在构建哪个项目。

链接到源

https://github.com/Hellseher/iwi/blob/master/iwi-ansible/roles/iwi-lang-rust/tasks/rust_apps.yml

ansible
  • 1 个回答
  • 10 Views
Martin Hope
Hellseher
Asked: 2020-10-30 09:30:02 +0000 UTC

如果剧本是由root启动的,Ansible如何以另一个用户身份运行脚本?

  • 3

晚安,

编译一个角色来安装 Rust。

整个 playbook 在become_user = root下运行

执行最后一个任务后游戏失败,您需要从become_user之前的用户运行下载的脚本:

iwi.yml

---

- hosts: localhost
  become: True
  become_method: su
  become_user: root
  roles:
    - iwi-sys-upgrade-install
    - iwi-lang-rust

iwi-lang-rast/tasks/main.yml

---

- name: "download rustup-init.sh from https://www.rustup.rs"
  get_url:
    url: https://sh.rustup.rs
    dest: /tmp/rustup-init.sh
    mode: 0755

- name: "install Rust with /tmp/rustup-init.sh, run by {{ ansible_user_id }}"
  become: yes
  become_user: {{ ansible_user_id }}
  shell: '/tmp/rustup-init.sh -y' 

由于某种原因,它给出了语法错误:

ERROR! Syntax Error while loading YAML.


The error appears to have been in '/home/Sharlatan/Projects/prj/iwi/Ansible/roles/iwi-lang-rust/tasks/main.yml': line 11, column 17, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

  become: yes
  become_user: {{ ansible_user_id }}
                ^ here
ansible
  • 1 个回答
  • 10 Views
Martin Hope
Hellseher
Asked: 2020-07-07 04:59:26 +0000 UTC

显示列表中目录的大小

  • 1

面对这样的任务。

给定要查找和删除的dir_list目录名称列表。对于报告,您必须先将列表保存到具有以下参数的文件中:

РАЗМЕР ИМЯ ВРЕМЯ_МОДИФИКАЦИИ

到目前为止,您必须手动编辑输出

~# while read dir; do find /library -maxdepth 1 -type d -name "$dir" -print0 | xargs -0 du -hs; done < dir_list

~# while read dir; do find /library -maxdepth 1 -type d -name "$dir" -printf "%f %c\n"; done < dir_list

带有一组标准实用程序的 Ubuntu GNU/Linux 系统。外壳 - 重击。搜索量 20.0TB。

linux
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5