AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / 问题

All perguntas(unix)

Martin Hope
TheYokai
Asked: 2024-11-23 06:21:05 +0800 CST

Permissão negada no contêiner curl simples do podman oneliner (sistema CoreOS)

  • 5

Em um sistema CoreOS relativamente novo e simples, tentando executar o seguinte comando:

podman run --rm docker.io/curlimages/curl -v host.containers.internal:2040

Resulta no seguinte erro:

{"msg":"exec container process `/entrypoint.sh`: Permission denied","level":"error","time":"2024-11-22T22:12:56.046889Z"}

Para o qual estou completamente perdido. Eu tentei o seguinte:

  • sudo setenforce 0para desabilitar o SELinux temporariamente, o que não alterou o erro recebido.

  • Adicionado o --userns=keep-idsinalizador ao comando, o que também não alterou os resultados.

POR EXEMPLO:

podman run --userns=keep-id --rm docker.io/curlimages/curl -v host.containers.internal:2040
  • Para outros contêineres podman mais complexos, tentei definir o :zsinalizador para montagens de volume, mas sem sucesso.

Deve haver algo que estou fazendo errado no meu sistema. A única parte anormal do meu sistema é que tenho podman e docker instalados na mesma máquina por questões de compatibilidade, mas meu entendimento é que isso não deve ser um conflito.

permissions
  • 1 respostas
  • 29 Views
Martin Hope
Wad
Asked: 2024-11-23 05:48:34 +0800 CST

Envio de socket do kernel Linux vs gravação de arquivo

  • 6

Entendo que quando escrevo em um arquivo no meu disco rígido, um thread do kernel (pdflush em kernels anteriores a 3.6) irá, em algum momento, realmente liberar isso para o arquivo. Tenho lido sobre redes em "Understanding the Linux Kernel, Second Edition" (desculpe, não há nenhum e-book para o qual eu possa vincular) e parece sugerir que, ao chamar send(), descemos direto para o kernel, terminando com os dados sendo colocados na fila de saída da placa de rede.

Não há menção de nenhum outro tópico.

Alguém pode esclarecer que não interpretei mal ou entendi mal, e que para cada chamada send() que faço, o thread que faz a chamada no meu processo vai direto para o ponto em que o kernel a coloca na fila TX da NIC?

Se for esse o caso, estou confuso sobre como isso acontece com envios assíncronos; ou, neste caso, assíncrono significa simplesmente que recebemos uma notificação posteriormente de que o envio ocorreu?

Confuso.

(Eu já perguntei isso no SO normal, mas me disseram que essa era a melhor área para isso.)

linux
  • 1 respostas
  • 28 Views
Martin Hope
TheYokai
Asked: 2024-11-23 05:38:37 +0800 CST

Podman e Docker: Compartilhando uma rede e/ou resolução de nome de host entre serviços?

  • 5

Então, eu tenho uma rede docker chamada homeonde todos os meus contêineres baseados em raiz (ou contêineres docker que eram simplesmente muito difíceis de portar para o podman) ficam armazenados.

sudo docker network ls
NETWORK ID     NAME                 DRIVER    SCOPE
9d5788b45048   bridge               bridge    local
b1f4756feab4   home                 bridge    local
5d7ee6579f19   host                 host      local
8678a773e2f2   none                 null      local

E, para o podman, tenho uma configuração muito semelhante.

podman network ls
NETWORK ID    NAME        DRIVER
8b17ae3d5d67  home        bridge  
2f259bab93aa  podman      bridge

O problema? Bem, acontece que minha resolução de nomes para contêineres não funciona de uma rede para outra. Então, por exemplo, eu tenho o nginx-proxy-managerpodman em execução e quero redirecionar http://domain/freshrsspara o serviço freshrss especificando freshrsse o número da porta associado. Isso não funciona, e isso faz sentido para mim, pois a rede docker e a rede podman são fundamentalmente separadas uma da outra.

Então, minha pergunta é simples: Existe alguma maneira de tratar essas duas redes como uma rede unindo-as sem prejudicar a santidade das configurações de rede individualizadas ? Alternativamente, existe alguma maneira de contornar esse problema de comunicação sem ter que especificar novamente o nome de domínio no nome e na porta de encaminhamento? Por exemplo, pensei que encaminhar para 127.0.0.1:<freshrss port>funcionaria, pois iria para o host e, em seguida, conectaria à porta apropriada, mas isso não funcionou.

docker/podman composeRespostas personalizadas são bem-vindas, pois é assim que estou configurando meus serviços.

networking
  • 1 respostas
  • 11 Views
Martin Hope
A.L
Asked: 2024-11-23 05:11:43 +0800 CST

Como lidar com diferentes interfaces enp*s0 com networking.service?

  • 5

Eu uso a rede através do networking.servicee do /etc/network/interfacesarquivo de configuração em um sistema Debian 12 (como mostrado aqui ).

Problema

Adicionei uma GPU e depois de reiniciar, o computador ficou offline. É um NAS sem display, então tive que conectar uma tela e um teclado.

E vi que ip addrreportou uma nova interface: enp3s0.

Problema: minha configuração é /etc/network/interfacesmencionada apenas enp2s0:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp2s0

iface enp2s0 inet dhcp

Solução temporária

Tive que substituir enp2s0e enp3s0correr systemctl restart networkingpara recuperar a rede, e funcionou.

Se algum dia eu remover a GPU ou adicionar um dispositivo PCI-Express, o nome da interface de rede poderá mudar novamente e o servidor ficará offline.

Então eu alterei o arquivo conf para gerenciar enp2s0ou enp3s0:

# The primary network interface
# without GPU
allow-hotplug enp2s0

iface enp2s0 inet dhcp

# with GPU
allow-hotplug enp3s0

iface enp3s0 inet dhcp

Solução definitiva?

É seguro declarar conf para interfaces que podem ou não existir? Existe uma maneira mais limpa?

debian
  • 2 respostas
  • 62 Views
Martin Hope
elbarna
Asked: 2024-11-23 00:22:29 +0800 CST

O que muda se eu usar o tipo de partição 8309 Linux LUKS em vez do clássico Linux 8300?

  • 5

Quando eu crio as partições luks eu sempre usei o tipo Linux 8300 (eu uso isso desde 2000!), hoje eu encontrei um novo id de partição

sgdisk -L|grep -i luks
8309 Linux LUKS

alguma vantagem em usar isso em vez de 8300?

luks
  • 1 respostas
  • 24 Views
Martin Hope
Z0q
Asked: 2024-11-23 00:00:04 +0800 CST

Como executar o node v20.x no CentOs 7.9?

  • 6

Estou preso nessa questão há muito tempo. Basicamente, tenho um aplicativo node v20.x que gostaria de executar em um servidor CentOS 7.9. Por motivos, não queremos atualizar o SO agora, mas tenho certeza de que deve haver uma maneira de executar o node v20?

Criei e instalei o GCC 10.3 a partir do código-fonte, que li ser necessário para o nó 20, mas ainda está apresentando erros.

Estes são os erros que tenho atualmente ao executarnode .

node .
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)

node: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20 not found (required by node) node: /lib64/libstdc++.so.6: version CXXABI_1.3.9 not found (required by node) node: /lib64/libstdc++.so.6: version GLIBCXX_3.4.21 not found (required by node)

Isso seria possível? E como devo proceder?

Além disso, tomo cuidado para não interromper o servidor apache/mysql em execução nesse meio tempo.

Li que atualizar o glibc no CentOS 7 pode ser extremamente perigoso, tornando o sistema impossível de inicializar?

Não existe realmente uma maneira segura de contornar isso?

centos
  • 2 respostas
  • 80 Views
Martin Hope
tdog4224
Asked: 2024-11-22 23:36:06 +0800 CST

Lendo diretório em lftp - A data alterada não é inequívoca

  • 5

Estou usando lftp para ler de um servidor ftp - Quando leio o diretório atual com ls -R, o resultado para a data nem sempre é o mesmo:

-rwxr-xr-x   1 30020    30021     1213487 Mar 10  2024 A2024031004000171.zip
-rwxr-xr-x   1 30020    30021     1147352 Apr 21  2024 A2024042104000172.zip
-rwxr-xr-x   1 30020    30021     1146095 May 12  2024 A2024051204000173.zip
-rwxr-xr-x   1 30020    30021     1148535 Jun  9 04:29 A2024060904000174.zip
-rwxr-xr-x   1 30020    30021     1155371 Jul 14 04:27 A2024071404000175.zip
-rwxr-xr-x   1 30020    30021     1150829 Aug 11 04:23 A2024081104000176.zip
-rwxr-xr-x   1 30020    30021     1151742 Sep  8 05:09 A2024090804000177.zip
-rwxr-xr-x   1 30020    30021     1154313 Oct 13 04:24 A2024101304000178.zip
-rwxr-xr-x   1 30020    30021     1153442 Nov 10 04:25 A2024111004000179.zip
-rwxr-xr-x   1 30020    30021     1203416 Jan 14  2024 A2024011404000169.zip
-rwxr-xr-x   1 30020    30021     1214387 Feb 11  2024 A2024021104000170.zip

Às vezes, ele indica a hora na 8ª posição - às vezes, o ano. Alguém sabe por que isso está acontecendo? Preciso verificar se um arquivo foi alterado ou não, e também preciso da data específica - então preciso de ambos, hora e ano.

lftp
  • 1 respostas
  • 12 Views
Martin Hope
Slen
Asked: 2024-11-22 23:13:40 +0800 CST

incompatibilidade de ID do sistema, o nó pertence a um cluster diferente

  • 5

Tenho um cluster etcd e agora estou tentando inicializar o patroni (no servidor A e no servidor B), mas sempre que tento fazer isso, recebo o erro sobre incompatibilidade de cluster. Tentei remover 'initialize' do etcd, tentei limpar completamente a configuração salva do etcd, mas nenhuma funcionou

Então se eu iniciar o patroni no servidor A, ele inicializará com sucesso, mas se eu executá-lo no servidor B, ele falhará com esse erro. O primeiro que inicializar vence, eu poderia dizer


Patroni no servidor A (B tem o mesmo, mas com posicionamento diferente de endereços):

scope: postgres-cluster
name: vb-psql2
namespace: /service/

restapi:
  listen: 192.168.8.141:8008
  connect_address: 192.168.8.141:8008
  authentication:
    username: patroni
    password: '*'

etcd:
  hosts: 192.168.8.141:2379,192.168.8.164:2379

bootstrap:
  method: initdb
  dcs:
    ttl: 60
    loop_wait: 10
    retry_timeout: 27
    maximum_lag_on_failover: 2048576
    master_start_timeout: 300
    synchronous_mode: true
    synchronous_mode_strict: false
    synchronous_node_count: 1
    # standby_cluster:
      # host: 127.0.0.1
      # port: 1111
      # primary_slot_name: patroni
    postgresql:
      use_pg_rewind: false
      use_slots: true
      parameters:
        max_connections: 800
        superuser_reserved_connections: 5
        max_locks_per_transaction: 64
        max_prepared_transactions: 0
        huge_pages: try
        shared_buffers: 512MB
        work_mem: 128MB
        maintenance_work_mem: 256MB
        effective_cache_size: 4GB
        checkpoint_timeout: 15min
        checkpoint_completion_target: 0.9
        min_wal_size: 2GB
        max_wal_size: 4GB
        wal_buffers: 32MB
        default_statistics_target: 1000
        seq_page_cost: 1
        random_page_cost: 4
        effective_io_concurrency: 2
        synchronous_commit: on
        autovacuum: on
        autovacuum_max_workers: 5
        autovacuum_vacuum_scale_factor: 0.01
        autovacuum_analyze_scale_factor: 0.02
        autovacuum_vacuum_cost_limit: 200
        autovacuum_vacuum_cost_delay: 20
        autovacuum_naptime: 1s
        max_files_per_process: 4096
        archive_mode: on
        archive_timeout: 1800s
        archive_command: cd .
        wal_level: replica
        wal_keep_segments: 130
        max_wal_senders: 10
        max_replication_slots: 10
        hot_standby: on
        hot_standby_feedback: True
        wal_log_hints: on
        shared_preload_libraries: pg_stat_statements,auto_explain
        pg_stat_statements.max: 10000
        pg_stat_statements.track: all
        pg_stat_statements.save: off
        auto_explain.log_min_duration: 10s
        auto_explain.log_analyze: true
        auto_explain.log_buffers: true
        auto_explain.log_timing: false
        auto_explain.log_triggers: true
        auto_explain.log_verbose: true
        auto_explain.log_nested_statements: true
        track_io_timing: on
        log_lock_waits: on
        log_temp_files: 0
        track_activities: on
        track_counts: on
        track_functions: all
        log_checkpoints: on
        logging_collector: on
        log_statement: mod
        log_truncate_on_rotation: on
        log_rotation_age: 1d
        log_rotation_size: 0
        log_line_prefix: '%m [%p] %q%u@%d '
        log_filename: 'postgresql-%a.log'
        log_directory: /var/log/postgresql

  initdb:  # List options to be passed on to initdb
    - encoding: UTF8
    - data-checksums

  pg_hba:
    - host all all 0.0.0.0/0 md5
    - host replication replicator 127.0.0.1/32 md5
    - host replication replicator 10.0.2.0/24 md5

postgresql:
  listen: 192.168.8.141,127.0.0.1:5432
  connect_address: 192.168.8.141:5432
  use_unix_socket: true
  data_dir: /var/lib/postgresql/11/main
  bin_dir: /usr/lib/postgresql/11/bin
  config_dir: /etc/postgresql/11/main
  pgpass: /var/lib/postgresql/.pgpass_patroni
  authentication:
    replication:
      username: replicator
      password: ****
    superuser:
      username: postgres
      password: ****
  parameters:
    unix_socket_directories: /var/run/postgresql
    stats_temp_directory: /var/lib/pgsql_stats_tmp

  remove_data_directory_on_rewind_failure: false
  remove_data_directory_on_diverged_timelines: false

#  callbacks:
#    on_start:
#    on_stop:
#    on_restart:
#    on_reload:
#    on_role_change:

  create_replica_methods:
    - basebackup
  basebackup:
    max-rate: '100M'
    checkpoint: 'fast'

watchdog:
  mode: off  # Allowed values: off, automatic, required
  device: /dev/watchdog
  safety_margin: 5

tags:
  nofailover: false
  noloadbalance: false
  clonefrom: false
  nosync: false

  # specify a node to replicate from (cascading replication)
#  replicatefrom: (node name)

etcd:

ETCD_NAME="etcd2"
ETCD_LISTEN_CLIENT_URLS="http://192.168.8.141:2379,http://127.0.0.1:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.8.141:2379"
ETCD_LISTEN_PEER_URLS="http://192.168.8.141:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.8.141:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-postgres-cluster"
ETCD_INITIAL_CLUSTER="etcd1=http://192.168.8.164:2380,etcd2=http://192.168.8.141:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_DATA_DIR="/var/lib/etcd"
ETCD_ELECTION_TIMEOUT="10000"
ETCD_HEARTBEAT_INTERVAL="2000"
ETCD_INITIAL_ELECTION_TICK_ADVANCE="false"
ETCD_ENABLE_V2="true"

Como posso consertar isso? Eu já enfrentei esse problema várias vezes naquela época (não consegui consertar)

linux
  • 1 respostas
  • 18 Views
Martin Hope
mYnDstrEAm
Asked: 2024-11-22 20:58:07 +0800 CST

dolphin-emu: erro ao carregar bibliotecas compartilhadas: libLLVM-11.so.1

  • 5

Ao executar o emulador Dolphin a partir dos repositórios estáveis ​​do Debian no Debian 12 com o KDE, recebo o erro abaixo. No entanto, nenhum erro é exibido em uma máquina quase idêntica onde o emulador Dolphin funciona bem. Já tentei remover e reinstalar o dolphin-emu, mas ainda recebo o mesmo erro. libllvm13 é a versão mais antiga disponível nos repositórios. Instalar isso não ajudou. Não há nada llvm-libsnos repositórios que seja recomendado em outra pergunta semelhante a esta. Parece que na máquina onde ele funciona, tenho o llvm11 instalado localmente (não dos repositórios), mas o llvm não está nos repositórios do Debian. Relatório de bug 1

Quando executo, env QT_QPA_PLATFORM=xcb dolphin-emuele mostra:

dolphin-emu: error while loading shared libraries: libLLVM-11.so.1: cannot open shared object file: No such file or directory

Atualização: funciona no Lutris (se a variável de ambiente estiver configurada nas configurações do Dolphin), então é uma solução alternativa, assim como compilar o Dolphin .

Atualização: depois de atualizar o Dolphin runner no Lutris, o Dolphin runner também não funciona mais: ele mostra isso no console: /home/username/.local/share/lutris/runners/dolphin/dolphin-emu: error while loading shared libraries: libavformat.so.60: cannot open shared object file: No such file or directorye eu só tenho o pacote .59 . Provavelmente é um bug no Lutris (?). O Dolphin pode ser iniciado ao alterar o executável nas /usr/games/dolphin-emuconfigurações do Lutris para o Dolphin.

debian
  • 1 respostas
  • 88 Views
Martin Hope
wobtax
Asked: 2024-11-22 05:36:00 +0800 CST

Executar programa somente em linhas correspondentes

  • 5

Digamos que eu tenha um programa blackboxe um arquivo com o seguinte conteúdo:

in this file
  this line contains =TAG=
    so does =TAG= this one
      as =TAG= does this other line
    this line does not
nor does this line
  =TAG= here again
    gone again

Como posso executar blackboxsomente nas linhas que contêm =TAG=?

Nota 1: Uma maneira é usar um while readloop, mas isso é considerado uma prática ruim . Então, qual é a maneira canônica e correta de fazer isso (se houver uma)?

Nota 2: Claro, se eu estivesse apenas editando texto, uma solução com AWKou sedseria apropriada — mas blackboxpode ter efeitos colaterais desejados. Esta pergunta é para aquelas situações em que preciso executar outro processo .

Nota 3: Você pode perguntar o que acontece se blackboxfor algo como nlou sort—onde executá-lo em várias linhas juntas tem um resultado diferente de executar um novo processo em cada linha. Nesse caso, eu quero ser capaz de fazer isso de cada uma dessas três maneiras :

  • Por bloco: substitua cada bloco de linhas contíguas contendo =TAG=pelo resultado daquele blackboxbloco.

    Saída esperada com blackbox= nl:

    in this file
    1  this line contains =TAG=
    2    so does =TAG= this one
    3      as =TAG= does this other line
        this line does not
    nor does this line
    1  =TAG= here again
        gone again
    
  • Linha a linha: substitua cada linha que contém =TAG=pelo resultado de blackboxnaquela linha.

    Saída esperada com blackbox= nl:

    in this file
    1  this line contains =TAG=
    1    so does =TAG= this one
    1      as =TAG= does this other line
        this line does not
    nor does this line
    1  =TAG= here again
        gone again
    
  • Continuamente: envia todas as linhas que contêm =TAG=um blackboxprocesso e substitui cada bloco pelas linhas que seriam impressas antes de blackboxreceber o próximo bloco.

    Saída esperada com blackbox= nl:

    in this file
    1  this line contains =TAG=
    2    so does =TAG= this one
    3      as =TAG= does this other line
        this line does not
    nor does this line
    4  =TAG= here again
        gone again
    

    (Se usássemos sort, todas as linhas correspondentes acabariam classificadas no último bloco correspondente, porque elas não seriam impressas até o final.)

Não encontrei nenhuma pergunta aqui sobre o problema geral, mas todos esses são casos especiais deste problema:

  • Como escrever chaves de prefixo de script com barras invertidas (linha a linha)
  • Editar arquivo com base na existência de uma string (linha a linha)
  • Substituir condicionalmente as linhas do arquivo1 pelas linhas correspondentes do arquivo2 (linha a linha)
  • É possível acelerar isso ao ler o script bash? (linha por linha)
  • Substituir string pelo conteúdo de um arquivo usando sed (linha a linha)
  • alterar nova linha com espaço em determinada condição com sed (bloco a bloco)
  • Classificação de blocos de linhas que correspondem apenas à primeira (por bloco)
  • Remover linhas que correspondem ao padrão, além de quaisquer linhas que o seguem que correspondem a um padrão diferente (em blocos)
  • Substituir linhas que correspondem a um padrão por linhas de outro arquivo em ordem (continuamente)
  • Algo como `colar` mas com um alinhamento vertical após um delimitador? (continuamente)
  • Passar vários argumentos de linha de comando para um executável com arquivos de texto (continuamente)
  • Exclua a enésima linha de cada linha que corresponda a um padrão (continuamente)
shell
  • 2 respostas
  • 68 Views
Prev
Próximo

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve