AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-146312

Avihai Marchiano's questions

Martin Hope
Avihai Marchiano
Asked: 2013-04-22 03:39:07 +0800 CST

SSH 直接标准输入和粗壮进出 postgres 客户端

  • 3

我的本地可以连接到远程,但无法连接到数据库服务器。远程可以连接到 dbserver(使用 psql)。

我想从本地针对数据库运行 sql 脚本。

我正在寻找一种在远程打开 psql 并使用 ssh 将我的 stdin 和 stdout 定向到本地的方法。

现在在愚蠢的选择中我这样做:

ssh remote
psql -h db report
password
run my commands

我可以用这种方式在脚本中完成,但它的丑陋和 dosnt 允许我与 psql 进行交互式会话。

PSQL="PGPASSWORD=mypassword psql -h dbserver  -d report"
SQL="SELECT 1"
ssh remote "$PSQL --command 'COPY ($SQL) TO STDOUT WITH CSV;'"

Ps- Python 也可以。

ssh
  • 2 个回答
  • 4339 Views
Martin Hope
Avihai Marchiano
Asked: 2012-11-28 09:35:13 +0800 CST

如何使用 tcpdump 仅打印 tcpsequence 编号

  • 1

我正在寻找一种方法来限制或更改 tcpdump 的输出格式以仅打印 tcp 序列号,但我没有找到执行此操作的方法。你能请教吗?

在 Ubuntu 上运行。如果没有办法在 tcpdump 中执行此操作,则使用一些 linux 命令执行此操作的其他方法也不错,但更喜欢直接通过 tcpdump 执行此操作的方法。

linux
  • 1 个回答
  • 821 Views
Martin Hope
Avihai Marchiano
Asked: 2012-11-23 06:03:08 +0800 CST

需要一次服务器时钟同步进行延迟测试,我应该使用 ntdate 还是 ntpd

  • 0

所有机器都是 Ubuntu 我需要为所有机器同步一次时钟以便进行延迟测试。

我读过这篇文章说 -

ntpdate 是一个有点生硬的工具——它每天只能调整一次时间

我很困惑。我以为我可以随时运行 ntpdate。

如果我只想对这些计算机进行一次同步。你推荐我使用 ntpd 还是 ntpdate?(简单性和准确性)我应该设置 ntp 服务器还是因为它们都同时连接到同一个 ntp 全局服务器而不是合理地获得相同的偏移量(我不在乎它们是否会有偏移量,只希望它们全部会有相同的偏移量)?哪个服务器配置最简单?

ubuntu
  • 1 个回答
  • 346 Views
Martin Hope
Avihai Marchiano
Asked: 2012-11-01 01:29:08 +0800 CST

net-snmp snptranslate dosnt 为我的 MIB 工作(snmpget 工作)

  • 0

我将自己的 MIB 模块添加到 net-snmp。

我将我的 Mib txt 文件放在 - '/usr/local/share/snmp/mibs' 下

我看到如果我更改 net-snmp 文件,他们的更改会反映出来,所以这个 mibs 加载正确。似乎它没有从那里加载我的 MIB 文件。

当我像这样在我的 Mib 上运行 snmptranslate 时:

snmptranslate .1.3.6.1.4.1.8077

我得到:

SNMPv2-SMI::enterprises.8077

我的 MIB 定义:

TEST-MIB DEFINITIONS ::= BEGIN
IMPORTS
    MODULE-IDENTITY, enterprises FROM SNMPv2-SMI;

testMib MODULE-IDENTITY
    DESCRIPTION
    "First draft"
    ::= { enterprises 8077}

testMibObject              OBJECT IDENTIFIER ::= {testMib 1}


END
snmp
  • 2 个回答
  • 5333 Views
Martin Hope
Avihai Marchiano
Asked: 2012-10-26 06:17:59 +0800 CST

如何查看 netcat 发送/接收的数据?

  • 6

我按照这篇文章用 netcat 检查速度,但是在他的博客中,当他这样做时ctrl-c,他获得了关于发送的接收字节的数据。

在他跑的帖子中:

time yes|nc -v -v -n 192.168.0.8 2222 >/dev/null
than after ctrl-c het get:
sent 87478272, rcvd 0
real 0m9.993s
user 0m2.075s
sys 0m0.939s

当我这样做时ctrl-c,我没有得到这些数据。

我怎样才能通过 netcat 获取发送/接收的数据?

linux
  • 2 个回答
  • 21464 Views
Martin Hope
Avihai Marchiano
Asked: 2012-10-26 02:04:10 +0800 CST

Linux测量网络带宽

  • 0

我在两台计算机(都是 Ubuntu)之间建立了单向连接。我正在寻找一种简单的方法来找到最大带宽。我需要找到计算机 A 和计算机 B 之间没有丢失数据包的最大传输速率。有人可以建议吗?

目前我正在为此使用netcat,但我正在寻找更好的方法。

linux
  • 1 个回答
  • 171 Views
Martin Hope
Avihai Marchiano
Asked: 2012-10-12 08:12:45 +0800 CST

eth在Promisc模式下有没有适合iptables的链?

  • 1

我有一台前端机器。机器有 2 个 eth 卡。我想使用 netfilter queue 对数据包进行一些检查。

我这样设置 eth: ifconfig eth0 0.0.0.0 promisc up ifconfig eth1 0.0.0.0 promisc up

我想要一个像这样的 iptable 规则(仅示例): iptables -A INPUT -i eth0 -j LOG --log-prefix " eth0 packet "

但是数据包没有通过 iptables,因为它没有指向这个 MAC。Promisc 模式没有帮助。

我看到有一种方法可以为 PROMISC 添加 iptables 链,但需要编译...当数据包不是针对此 eth 时,有没有更简单的方法来使用 iptables 规则。

目前我通过在 2 eth 之间创建一个桥梁并将规则放在 FORWARD 上来绕过这个,但我确实想创建桥梁。

networking
  • 2 个回答
  • 2563 Views
Martin Hope
Avihai Marchiano
Asked: 2012-10-10 07:26:50 +0800 CST

同一主机上 2 个以太网卡之间的 INPUT 上的 iptables 规则

  • 0

我在同一台主机上有 2 张 eth 卡。两者都直接通过 LAN 电缆连接。

I set eth0 with ip - 192.168.1.2
I set eth1 with ip - 192.168.1.1

我设定了这个规则:

iptables -A INPUT -p tcp -j NFQUEUE --queue-num 0

没有其他规则。(我运行了 iptables -X,-F)

我从 192.168.1.2 向 192.168.1.1 发送 TCP syn 数据包(通过使用原始套接字的 C++ 程序)

在 wireshark 中,我看到在 eth0 上收到了数据包,但是 iptables 规则(上面)不适用这个数据包。当我将数据包发送到远程主机并在远程主机上应用此规则时,它工作正常。

所以,我猜这是因为两张 eth 卡都存在于同一个主机上。. 我需要为本地 eth 卡(dest 和 src 在同一台机器上)创建 iptables INPUT 规则。我需要它来简化测试。

我猜对了问题吗?有没有办法绕过这个?

Ps - 通过开关连接它们没有帮助。该规则未应用。在 Ubuntu 上运行。

TCDUMP 显示数据包:

10:48:42.365002 IP 192.168.1.2.38550 > 192.168.1.1.34298: Flags [S], seq 0, win 5840, length 0

但是像这样记录 iptables 什么也没有:

iptables -A INPUT -p tcp -j LOG  --log-prefix '*****************'
iptables -A OUTPUT -p tcp -j LOG  --log-prefix '#################'

root@test:~# ip ad sh
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 80:1f:02:2f:d1:bb brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0
    inet6 fe80::821f:2ff:fe2f:d1aa/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 70:f3:55:0d:ef:31 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/24 brd 192.168.1.255 scope global eth1
    inet6 fe80::72f3:95ff:fe0d:ef31/64 scope link 
       valid_lft forever preferred_lft forever
root@test:~# ip ro sh
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.1 
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.2 
iptables
  • 2 个回答
  • 1213 Views
Martin Hope
Avihai Marchiano
Asked: 2012-10-04 08:33:54 +0800 CST

IPTables 输入规则过滤器按设备 dosnt 工作

  • 0

此规则有效(数据包被添加到队列中):

iptables -A INPUT -p tcp -j NFQUEUE --queue-num 0

但是,这条规则不起作用(没有添加到队列中):

iptables -A INPUT -m physdev --physdev-in eth1 -p tcp -j NFQUEUE --queue-num 0

知道为什么在输入时它不向队列中添加数据包吗?

没有额外的规则。我跑过

iptables -X
iptables -F
iptables
  • 1 个回答
  • 384 Views
Martin Hope
Avihai Marchiano
Asked: 2012-09-25 06:23:57 +0800 CST

TCP keepalive 是如何工作的

  • 1

我在 Ubuntu 上运行,我想使用 TCP keepalive 来实现主从之间的心跳。两台服务器都是我的 impl (c++)。我阅读了这篇概述并进行了一些谷歌搜索。我不明白 TCP keepalive 发送什么,我知道在 TCP keepalive 中使用时连接是否不再有效?。我需要检查恢复的内容吗?

目标是在 master-slave 之间建立心跳,所以如果一个失败,另一个将成为主人。在这篇文章中,建议是使用 tcp keepalive 机制实现 hearbeat,所以这就是我问在使用 tcp keepalive 时如何识别断开的连接的原因。

tcp
  • 1 个回答
  • 1772 Views
Martin Hope
Avihai Marchiano
Asked: 2012-09-20 00:25:06 +0800 CST

ps ww axco 命令 dosnt 显示完整命令

  • 1

我查看了 man ps 并取消了与 ww 一起使用会给我完整的命令。但是运行:

ps ww axco command,pcpu

不要给出完整的命令名称。我想要完整的进程名称。结果是这样的:

gnome-fallback-              0.0 39312

有什么建议吗?

在 Ubuntu 上运行

linux
  • 1 个回答
  • 1516 Views
Martin Hope
Avihai Marchiano
Asked: 2012-09-14 07:51:52 +0800 CST

SNMP DisplayString 的最大长度是多少

  • 1

我在语法 DisplayString (SNMPv2) 的 MIB 中可以拥有的最大长度是多少

openConnectionsList OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The textual"
    ::= {  MONITOR-MIB 2 }
snmp
  • 1 个回答
  • 4265 Views
Martin Hope
Avihai Marchiano
Asked: 2012-09-13 05:41:10 +0800 CST

snmp.conf 如何允许任何远程客户端

  • 1

使用带有 net-snmp 的 linux (Ubuntu)。

我想允许任何远程客户端执行 snmpget。远程客户端不必来自同一个子网,所以我不能通过定义子网来做到这一点。

现在我在 snmpd.conf 中为每个 ip 添加行。像这样:

rwcommunity community 10.0.0.1
rwcommunity community 10.0.0.2

有没有办法对所有 ip 执行此操作?另外尝试使用这个:

#  Listen for connections on all interfaces (both IPv4 *and* IPv6)
#agentAddress udp:161,udp6:[::1]:161

没用,所以我需要写监听ip。

谢谢你!!!!

snmp
  • 1 个回答
  • 8011 Views
Martin Hope
Avihai Marchiano
Asked: 2012-08-31 07:29:48 +0800 CST

Ubuntu 程序 RAM 和 CPU OID

  • -2

在 Ubuntu 上运行。我需要监控我的程序 CPU 和 RAM,我更喜欢的方式是通过 SNMP 进行监控。

有人知道程序 CPU 和 RAM 的 OID(不是全部)吗?

如果没有,那么获得的简单方法是什么?解析ps命令?

linux
  • 1 个回答
  • 1133 Views
Martin Hope
Avihai Marchiano
Asked: 2012-08-29 06:39:35 +0800 CST

为什么 SNMP 代理需要 MIB 文件?

  • 5

在阅读了 SNMP 和一些问题后,我认为将代理角色理解为设备的 SNMP 服务(像 SQL 一样,它是存储的 API)。

当您执行 SQL 查询时,SQL 引擎会完成所有工作并返回结果——您无需了解存储方式和存储位置。

但是 MIB 不是实际存储,那么我的代理的作用是什么?
如果代理仅像我在本教程中所遵循的那样注册 MIB ,那么它根本不用作处理程序,这意味着有一个 pyhiscal 存储,您可以设置并到达那里而无需绕过处理程序。在本教程中,您可以这样做:

netsnmp_register_int_instance("my example int variable",
                                  my_registration_oid,
                                  OID_LENGTH(my_registration_oid),
                                  &example1, NULL);

无需在处理程序中处理调用。

假设我想监控我的应用程序的待处理请求队列,所以我想要一个代理,它会为它触发所有 application_pending_request 的 SNMP 请求,它会返回队列深度。当我需要轮询我的应用程序队列以获得结果时,为什么我需要有一个实际的 MIB?

snmp
  • 1 个回答
  • 6905 Views
Martin Hope
Avihai Marchiano
Asked: 2012-08-29 06:08:02 +0800 CST

我可以给自己的 MIB 任何我想要的 OID 吗?应用程序 MIB OID 是否有约定?

  • 7

我为我的应用程序创建了一个标量 MIB,监控 request_queue_size。我遵循了编写 MIB 教程。OID 有一个长层次的OID。我想知道我是否可以提供一个简短的分层 OID,如 1.1 。有约定吗?

我的应用程序托管在 Ubuntu 上。

snmp
  • 1 个回答
  • 9283 Views
Martin Hope
Avihai Marchiano
Asked: 2012-08-27 02:43:20 +0800 CST

关于 SNMP 代理和管理器的说明

  • 0

我很难理解在谈论 SNMP 时使用的一些术语,尤其是谁负责 MIB——代理或管理站。

让我们看一个简单的场景:

  • 我通过已知的 OID(比如 CPU 利用率)监控我的 linux 机器
  • 当我为处理请求的 CPU 利用率 OID 发送 SNMP 请求时 - 代理或管理站?
  • 如果所做的只是从 MIB 中读取数据,那么代理在这里的作用是什么?
  • 代理有用于获取的同步 API,但如果我直接转到存储,为什么我有这个获取。

谁能帮助我理解这个简单的 CPU OID 示例,那里发生了什么?

linux
  • 1 个回答
  • 187 Views
Martin Hope
Avihai Marchiano
Asked: 2012-08-23 23:06:08 +0800 CST

snmp命令中的-c参数是什么意思?

  • -2

我是 snmp 的新手。我想监控我的 Ubuntu 机器。我执行这个命令(在网上找到):

snmpget -v 1 -c "community" localhost .1.3.6.1.4.1.2021.10.1.3.1

我想知道 -c 参数是什么(没有成功地从那个人那里弄清楚)。

在他们用这个例子解释的人中:

snmpget -c public

它将检索...使用社区字符串public ,社区的含义是什么?

谢谢

snmp
  • 2 个回答
  • 83 Views
Martin Hope
Avihai Marchiano
Asked: 2012-08-23 03:34:34 +0800 CST

我是否需要启用一些标志才能使用 SNMP 监视 Ubuntu?

  • 3

Snmpd 正在运行。我通过运行检查状态snmpwalk(snmpwalk -v 1 -c public localhost)。

我运行它是为了获取 CPU 信息:

snmpget -v 1 -c "community" localhost .1.3.6.1.4.1.2021.10.1.3.1

但我得到一个错误:

Timeout: No Response from localhost

我是否需要启用某些功能才能启用 SNMP 监控?

snmpd.conf:

###############################################################################
#
# EXAMPLE.conf:
#   An example configuration file for configuring the Net-SNMP agent ('snmpd')
#   See the 'snmpd.conf(5)' man page for details
#
#  Some entries are deliberately commented out, and will need to be explicitly activated
#
###############################################################################
#
#  AGENT BEHAVIOUR
#

#  Listen for connections from the local system only
agentAddress  udp:127.0.0.1:161
#  Listen for connections on all interfaces (both IPv4 *and* IPv6)
#agentAddress udp:161,udp6:[::1]:161



###############################################################################
#
#  SNMPv3 AUTHENTICATION
#
#  Note that these particular settings don't actually belong here.
#  They should be copied to the file /var/lib/snmp/snmpd.conf
#     and the passwords changed, before being uncommented in that file *only*.
#  Then restart the agent

#  createUser authOnlyUser  MD5 "remember to change this password"
#  createUser authPrivUser  SHA "remember to change this one too"  DES
#  createUser internalUser  MD5 "this is only ever used internally, but still change the password"

#  If you also change the usernames (which might be sensible),
#  then remember to update the other occurances in this example config file to match.



###############################################################################
#
#  ACCESS CONTROL
#

                                                 #  system + hrSystem groups only
view   systemonly  included   .1.3.6.1.2.1.1
view   systemonly  included   .1.3.6.1.2.1.25.1

                                                 #  Full access from the local host
#rocommunity public  localhost
                                                 #  Default access to basic system info
 rocommunity public  default    -V systemonly

                                                 #  Full access from an example network
                                                 #     Adjust this network address to match your local
                                                 #     settings, change the community string,
                                                 #     and check the 'agentAddress' setting above
#rocommunity secret  10.0.0.0/16

                                                 #  Full read-only access for SNMPv3
 rouser   authOnlyUser
                                                 #  Full write access for encrypted requests
                                                 #     Remember to activate the 'createUser' lines above
#rwuser   authPrivUser   priv

#  It's no longer typically necessary to use the full 'com2sec/group/access' configuration
#  r[ou]user and r[ow]community, together with suitable views, should cover most requirements



###############################################################################
#
#  SYSTEM INFORMATION
#

#  Note that setting these values here, results in the corresponding MIB objects being 'read-only'
#  See snmpd.conf(5) for more details
sysLocation    Sitting on the Dock of the Bay
sysContact     Me <[email protected]>
                                                 # Application + End-to-End layers
sysServices    72


#
#  Process Monitoring
#
                               # At least one  'mountd' process
proc  mountd
                               # No more than 4 'ntalkd' processes - 0 is OK
proc  ntalkd    4
                               # At least one 'sendmail' process, but no more than 10
proc  sendmail 10 1

#  Walk the UCD-SNMP-MIB::prTable to see the resulting output
#  Note that this table will be empty if there are no "proc" entries in the snmpd.conf file


#
#  Disk Monitoring
#
                               # 10MBs required on root disk, 5% free on /var, 10% free on all other disks
disk       /     10000
disk       /var  5%
includeAllDisks  10%

#  Walk the UCD-SNMP-MIB::dskTable to see the resulting output
#  Note that this table will be empty if there are no "disk" entries in the snmpd.conf file


#
#  System Load
#
                               # Unacceptable 1-, 5-, and 15-minute load averages
load   12 10 5

#  Walk the UCD-SNMP-MIB::laTable to see the resulting output
#  Note that this table *will* be populated, even without a "load" entry in the snmpd.conf file



###############################################################################
#
#  ACTIVE MONITORING
#

                                    #   send SNMPv1  traps
 trapsink     localhost public
                                    #   send SNMPv2c traps
#trap2sink    localhost public
                                    #   send SNMPv2c INFORMs
#informsink   localhost public

#  Note that you typically only want *one* of these three lines
#  Uncommenting two (or all three) will result in multiple copies of each notification.


#
#  Event MIB - automatically generate alerts
#
                                   # Remember to activate the 'createUser' lines above
iquerySecName   internalUser       
rouser          internalUser
                                   # generate traps on UCD error conditions
defaultMonitors          yes
                                   # generate traps on linkUp/Down
linkUpDownNotifications  yes



###############################################################################
#
#  EXTENDING THE AGENT
#

#
#  Arbitrary extension commands
#
 extend    test1   /bin/echo  Hello, world!
 extend-sh test2   echo Hello, world! ; echo Hi there ; exit 35
#extend-sh test3   /bin/sh /tmp/shtest

#  Note that this last entry requires the script '/tmp/shtest' to be created first,
#    containing the same three shell commands, before the line is uncommented

#  Walk the NET-SNMP-EXTEND-MIB tables (nsExtendConfigTable, nsExtendOutput1Table
#     and nsExtendOutput2Table) to see the resulting output

#  Note that the "extend" directive supercedes the previous "exec" and "sh" directives
#  However, walking the UCD-SNMP-MIB::extTable should still returns the same output,
#     as well as the fuller results in the above tables.


#
#  "Pass-through" MIB extension command
#
#pass .1.3.6.1.4.1.8072.2.255  /bin/sh       PREFIX/local/passtest
#pass .1.3.6.1.4.1.8072.2.255  /usr/bin/perl PREFIX/local/passtest.pl

# Note that this requires one of the two 'passtest' scripts to be installed first,
#    before the appropriate line is uncommented.
# These scripts can be found in the 'local' directory of the source distribution,
#     and are not installed automatically.

#  Walk the NET-SNMP-PASS-MIB::netSnmpPassExamples subtree to see the resulting output


#
#  AgentX Sub-agents
#
                                           #  Run as an AgentX master agent
 master          agentx
                                           #  Listen for network connections (from localhost)
                                           #    rather than the default named socket /var/agentx/master
#agentXSocket    tcp:localhost:705
ubuntu
  • 2 个回答
  • 2828 Views
Martin Hope
Avihai Marchiano
Asked: 2012-08-13 05:28:15 +0800 CST

测试 - 如何生成有限速率的 tcp 流?

  • 0

使用 ubuntu 运行。

我的客户传输率有限。我需要测试我的服务器以查看它支持多少传输速率有限的客户端?

是否有任何实用程序可以让我从服务器下载文件并限制下载速率?

流量是tcp。

谢谢你

networking
  • 2 个回答
  • 260 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve