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 / user-52684

dot's questions

Martin Hope
dot
Asked: 2021-10-30 09:59:30 +0800 CST

script bash - tentando concatenar duas strings - falhando

  • 0

Eu quero escrever um script que pegue o nome da pasta atual e adicione o postfix _default a ele no final.

Meu script até agora está assim:

#!/usr/bin/env bash
baseDir=pwd | awk -F/ '{print $NF}'
networkName=$(baseDir)$('_default')

echo $networkName

Quando executo isso, recebo os seguintes erros:

codebrews@mymachine:/docker-local$ ./test.sh
./test.sh: line 3: baseDir: command not found
./test.sh: line 3: _default: command not found

Tenho certeza de que é algo simples que estou atrapalhando, mas não consigo ver. Obrigado.

EDIÇÃO 1

Eu também tentei isso:

#!/usr/bin/env bash
baseDir=pwd | awk -F/ '{print $NF}'
networkName=$($baseDir)_default
echo $networkName

Mas isso só retorna

_predefinição

Vejo agora que o problema é basedDir está em branco. Quando executo "pwd | awk -F/ '{print $NF}'" na linha de comando, funciona. Mas claramente não está funcionando neste arquivo de script.

bash
  • 1 respostas
  • 297 Views
Martin Hope
dot
Asked: 2018-06-28 06:13:26 +0800 CST

script de shell do busybox - mensagem de erro de operando desconhecido

  • 3

Eu preciso escrever um pequeno script de shell que executará um script python e obterá os resultados.

Quando tento executar desta forma funciona:

#!/bin/sh
/usr/bin/python /etc/scripts/backup.py
result=$?

if [ $result -gt 0 ];
    then echo 'PROBLEM';
else
    echo 'OK';
fi

Mas se eu tentar fazer dessa forma, ele falha:

#!/bin/sh
if [ $(/usr/bin/python /etc/scripts/backup.py) -gt 0 ];
    then echo 'PROBLEM';
else
    echo 'OK';
fi

Ele retorna:

lab-1:/etc/scripts# ./audit_test_wrapper.sh
sh: 0: unknown operand
OK

E os resultados estão errados. Deve estar imprimindo "PROBLEMA"" em vez de OK.

o que eu tentei até agora

if [ $(/usr/bin/python /etc/scripts/backup.py) -ne 0 ];

retorna

lab-1:/etc/scripts# ./audit_test_wrapper.sh
sh: 0: unknown operand
OK

E eu também tentei isso:

if [ "$(/usr/bin/python /etc/scripts/backup.py)" -gt 0 ];

ele retorna:

lab-1:/etc/scripts# ./audit_test_wrapper.sh
sh: out of range
OK

Alguém pode me apontar na direção certa?

Obrigado.

shell-script scripting
  • 2 respostas
  • 17143 Views
Martin Hope
dot
Asked: 2018-05-24 10:46:45 +0800 CST

linha de comando sqlite3 - como definir o modo e importar em uma etapa

  • 2

Eu preciso ser capaz de fazer isso via linha de comando em uma etapa:

lab-1:/etc/scripts# sqlite3 test.db
SQLite version 3.8.10.2 2015-05-20 18:17:19
Enter ".help" for usage hints.
sqlite> .mode csv ;
sqlite> .import /tmp/test.csv users
sqlite> select * from users;
John,Doe,au,0,"",1,5555,91647fs59222,audio
sqlite> .quit

Eu tentei o seguinte:

 lab-1:/etc/scripts# sqlite3 test.db ".mode csv ; .import /tmp/deleteme.csv users"

e

 lab-1:/etc/scripts# sqlite3 test.db ".mode csv .import /tmp/deleteme.csv users"

Não recebo erros, mas também não acabo com nenhum dado na tabela de usuários.

Qualquer dica seria apreciada.

command-line csv
  • 1 respostas
  • 2199 Views
Martin Hope
dot
Asked: 2018-03-23 12:38:06 +0800 CST

como alterar o hashbang para detectar automaticamente o tipo de script

  • 0

Eu tenho o seguinte roteiro:

 1 #!/usr/bin/env sh
 2 #calculate number of tests we will run
 3 lines="$(cat /etc/crontabs/root|wc -l)"
 4 tests="$(($lines - 2))"
 5
 6 echo "1..$tests"
 7 counter=1
 8 etc.... does other stuff

Na linha 1, estou tentando codificá-lo de forma que não precise digitar "sh" para iniciá-lo. Anteriormente, o hashbang era assim:

#!/bin/sh

e o código funcionaria, mas você precisa dizer qual exe usar para iniciá-lo.

Eu gostaria agora de tentar alterá-lo para que o usuário não precise saber que tipo de script é. Acho que fiz algo errado porque quando tento executar meu script, recebo o seguinte erro:

lab-1:/tmp# crontab_test       
-ash: crontab_test: not found

Você pode me dizer onde eu me desviei?

shell-script shell
  • 1 respostas
  • 68 Views
Martin Hope
dot
Asked: 2018-03-23 11:41:02 +0800 CST

script bin/sh falha com erro de sintaxe: redirecionamento inesperado

  • 1

Eu tenho o seguinte script bash que agora estou tentando converter para executar usando o shell do sistema:

  1 #!/bin/sh
  2 #testtotal
  3 lines="$(crontab -l | awk '{if(NR>2)print}')"
  4 echo "1..$lines"
  5 counter=1
  6 while read p; do
  7         if [[ -x "$p" ]]
  8         then
  9             echo "ok $counter - $p is executable"
 10         else
 11             echo "not ok $counter - $p is not executable or found"
 12         fi
 13         counter=$((counter+1))
 14 done < <(crontab -l | awk '{if(NR>2)print}' | awk '{print $6}')

quando eu corro usando "sh" ele falha com o erro:

      ctest: line 14: syntax error: unexpected redirection 

Você pode me dizer como adaptar isso para rodar em bin/sh?

bash shell-script
  • 1 respostas
  • 12224 Views
Martin Hope
dot
Asked: 2018-03-16 05:08:50 +0800 CST

Como solucionar problemas de cron job com falha

  • 1

Eu tenho um crontab rootarquivo que se parece com isso:

lab-1:/var/www/cdd# crontab -l
# do daily/weekly/monthly maintenance
# min   hour    day     month   weekday command
*       *       *       *       *       /etc/scripts/script1
*/15    *       *       *       *       /etc/scripts/script2
0       *       *       *       *       /etc/scripts/script3

Posso ver que todos os trabalhos são acionados executando este comando:

lab-1:/var/www/cdd# cat /var/log/messages | grep cron.info
Mar 15 13:00:00 lab-1 cron.info crond[7897]: USER root pid 26217 cmd /etc/scripts/script2
Mar 15 13:00:00 lab-1 cron.info crond[7897]: USER root pid 26219 cmd /etc/scripts/script3        
Mar 15 13:01:00 lab-1 cron.info crond[7897]: USER root pid 26293 cmd /etc/scripts/script1     

O problema é que script3 (eu provei que script2 e script1 funcionam) não está realmente produzindo a saída esperada. É suposto criar arquivos em outra pasta. No entanto, quando eu o executo manualmente, funciona bem:

 lab-1:/etc/scripts# bash script3

Eu não sou um administrador de sistema real, então não tenho certeza de qual é a melhor maneira de solucionar isso.

A primeira coisa que vem à mente são as permissões.

lab-1:/etc/scripts# ls -lah                            
total 24                                                                     
drwxr-xr-x    2 root     root        4.0K Mar 15 12:20 .                     
drwxr-xr-x   34 root     root        4.0K Mar 14 17:11 ..                    
-rwxr-xr-x    1 root     root        5.0K Mar 15 12:19 script3
-rwxr-xr-x    1 root     root        1.8K Mar 14 15:26 script1
-rwxr-xr-x    1 root     root        1.9K Mar 14 15:26 script2

Embora ... tendo dito isso, se fosse um problema de permissão, ele apareceria como sendo acionado / iniciado em meu /var/log/messagesarquivo?

Como devo proceder?

EDITAR 1

lab-1:/etc/scripts# ./script3 | head -n 4                                             
Working folder set to: /tmp/tmp.kOfhip                                                                        
*****Grab SQL Data from Remote Server: spp.mydomain.net *****                                             
COPY 344                                                                                                      
Warning: Permanently added 'spp.mydomain.net,10.1.1.1' (ECDSA) to the list of known hosts.           
Evaluate /tmp/tmp.kOfhip/spp.mydomain.net.db                                                          
lab-1:/etc/scripts#                                                                     

EDITAR 2

É assim que meu script se parece:

https://paste.pound-python.org/show/90vAlrOsAYP0CtYqNWfl/

Como você pode ver, estou criando uma pasta temporária e fazendo todo o meu trabalho lá.

EDITAR 3

Para provar a mim mesmo que não é por causa de linhas como a linha 9, comentei tudo, exceto as linhas 1 a 15. Adicionei a linha 16 que faz isso:

 echo "done" >> /tmp/results.txt

E então mudei o cronograma do trabalho para executar a cada dois minutos a partir de uma hora. Eu posso ver que já foi executado 3 vezes. Acho que vou continuar com essa abordagem até encontrar algo que não funcione / exploda. Não entendo muito bem o comentário feito abaixo sobre o uso de uma variável PATH ... mas acho que vou pesquisar no Google.

EDITAR 4

Alterei o arquivo raiz do crontabs para que ele gere os resultados do script3 em um arquivo e é isso que vejo:

Working folder set to: /tmp/tmp.GeNGDJ
*****Grab SQL Data from Remote Server: servername *****
COPY 344
Warning: Permanently added 'spp.mydomain.net,10.1.1.132' (ECDSA) to the list of known hosts.
Permission denied (publickey,keyboard-interactive).
Evaluate /tmp/tmp.GeNGDJ/spp.mydomain.net.db
cat: can't open '/tmp/tmp.GeNGDJ/spp.mydomain.net.db': No such file or directory

Então está morrendo ao tentar scp o arquivo. O SQL remoto funciona bem e mostra a saída. Mas, como você pode ver, estou recebendo uma permissão negada. Mas se eu executar o mesmo comando manualmente, parece funcionar. Terá que continuar bisbilhotando. Tentarei despejar o ENV como sugerido na resposta abaixo.

bash shell-script
  • 1 respostas
  • 1810 Views
Martin Hope
dot
Asked: 2018-03-15 11:02:00 +0800 CST

como somar dois números usando o bash

  • 1

Eu tenho o seguinte arquivo:

lab1:/etc/scripts# cat /tmp/tmp.PGikhA/audit.txt                                
   344 server1                                                                            
     1 server2

Quero poder somar os números de cada linha - então, neste caso, quero somar 344 + 1 e terminar com 345.

Até agora, eu tenho os seguintes passos descobertos:

lab-1:/etc/scripts# cat /tmp/tmp.PGikhA/audit.txt |awk '{print $1}'              
344                                                                                                    
1                     

Mas não sei como juntá-los. Eu sei que posso usar apenas a sintaxe $a + $b, mas como coloco 344 e 1 em variáveis ​​separadas para fazer isso?

Obrigado.

EDITAR 1

Estou recebendo dois valores retornados em vez de apenas um total. Não consigo ver o que estou fazendo de errado:

lab-1:/etc/scripts# cat /tmp/tmp.jcbiih/audit.txt | awk '{print $1}' | awk '{ sum+=$1} {print      
sum}'                                                                                                                    
344                                                                                                                      
345                                                                                                                      
lab-1:/etc/scripts# cat /tmp/tmp.jcbiih/audit.txt  | awk '{ sum+=$1} {print sum}'                  
344                                                                                                                      
345                                                                                                                      
bash shell-script
  • 1 respostas
  • 649 Views
Martin Hope
dot
Asked: 2018-03-03 10:41:15 +0800 CST

como extrair apenas uma parte específica de um nome de arquivo no bash [duplicado]

  • 2
Esta pergunta já tem respostas aqui :
como extrair parte de um nome de arquivo antes de '.' ou antes da prorrogação (6 respostas)
Fechado há 4 anos .

Tenho a seguinte lista de arquivos:

lab-1:/tmp/tmp.NMFaDO# ls                                                                                              
webserver.123.net.1970-01-01.csv          webserver.123.net.2016-10-01.csv          webserver.123.net.2017-10-01.csv                
webserver.123.net.2015-11-01.csv          webserver.123.net.2016-11-01.csv          webserver.123.net.2017-11-01.csv                
webserver.123.net.2015-12-01.csv          webserver.123.net.2016-12-01.csv          webserver.123.net.2017-12-01.csv                
webserver.123.net.2016-01-01.csv          webserver.123.net.2017-01-01.csv          webserver.123.net.2018-01-01.csv                
webserver.123.net.2016-02-01.csv          webserver.123.net.2017-02-01.csv          webserver.123.net.2018-02-01.csv                
webserver.123.net.2016-03-01.csv          webserver.123.net.2017-03-01.csv          webserver.123.net.current.csv                   
webserver.123.net.2016-04-01.csv          webserver.123.net.2017-04-01.csv          webserver.123.net.db.done                       
webserver.123.net.2016-05-01.csv          webserver.123.net.2017-05-01.csv          webserver.123.net.records_to_delete.txt         
webserver.123.net.2016-06-01.csv          webserver.123.net.2017-06-01.csv          sip2.ci2.lab.jwm2.net.2018-02-01.csv               
webserver.123.net.2016-07-01.csv          webserver.123.net.2017-07-01.csv          sip2.ci2.lab.jwm2.net.db.done                      
webserver.123.net.2016-08-01.csv          webserver.123.net.2017-08-01.csv          sip2.ci2.lab.jwm2.net.records_to_delete.txt        
webserver.123.net.2016-09-01.csv          webserver.123.net.2017-09-01.csv                                                             

Dentro de um script bash, preciso percorrer essa lista e extrair apenas a parte da data do nome do arquivo. Consegui descobrir como fazer isso de dentro da
pasta que contém os arquivos usando este comando:

lab-1:/tmp/tmp.NMFaDO# ls webserver.123.net*.csv | sed 's/webserver.123.net.\(.*\)\.csv/\1/'                     
1970-01-01                                                                                                                                   
2015-11-01                                                                                                                                   
2015-12-01                                                                                                                                   
2016-01-01                                                                                                                                   
2016-02-01                                                                                                                                   
2016-03-01                                                                                                                                   
2016-04-01                                                                                                                                   
2016-05-01                                                                                                                                   
2016-06-01                                                                                                                                   
2016-07-01                                                                                                                                   
2016-08-01                                                                                                                                   
2016-09-01                                                                                                                                   
2016-10-01                                                                                                                                   
2016-11-01                                                                                                                                   
2016-12-01                                                                                                                                   
2017-01-01                                                                                                                                   
2017-02-01                                                                                                                                   
2017-03-01                                                                                                                                   
2017-04-01                                                                                                                                   
2017-05-01                                                                                                                                   
2017-06-01                                                                                                                                   
2017-07-01                                                                                                                                   
2017-08-01                                                                                                                                   
2017-09-01                                                                                                                         
2017-10-01                    
2017-11-01                   
2017-12-01               
2018-01-01              
2018-02-01  
current

mas não consigo fazer a lógica funcionar dentro do meu script bash:

dir=/tmp/tmp.NMFaDO
server=webserver.123.net
for csvfile in $dir/$server.*.csv
do 
  echo $csvfile | sed 's/$dir\/$server.\(.*\)\.csv/\1/'
done

No momento, está imprimindo o caminho completo do nome assim:

/tmp/tmp.NMFaDO/webserver.123.net.1970-01-01.csv
/tmp/tmp.NMFaDO/webserver.123.net.2015-11-01.csv

etc.

Alguém pode me dizer o que estou perdendo no meu script bash? obrigado.

bash shell-script
  • 2 respostas
  • 7057 Views
Martin Hope
dot
Asked: 2018-02-27 06:14:58 +0800 CST

como extrair apenas o endereço IP de uma consulta DNS

  • 17

Gostaria de saber como extrair apenas o endereço IP de uma consulta DNS/dig. A consulta que estou executando se parece com isso:

lab-1:/var/# dig +answer smtp.mydomain.net +short   
smtp.ggs.mydomain.net
10.11.11.11

Eu gostaria de ser capaz de obter apenas o endereço IP retornado. No momento, estou brincando com o bash pipe e o comando awk. Mas até agora, nada que eu tentei está funcionando.

Obrigado.

bash dns
  • 2 respostas
  • 22544 Views
Martin Hope
dot
Asked: 2018-02-16 06:28:30 +0800 CST

script bash: capturar o tráfego tcp em um servidor remoto às vezes funciona, às vezes falha. Sem erros

  • 2

Fundo

Estou executando o BusyBox no servidor remoto.

Eu tenho um script bash que faz duas coisas:
1. via ssh, inicia um subprocesso para monitorar o tráfego tcp usando o comando tcpdump. Salve os resultados em um arquivo - na máquina remota ou na máquina local. Tentei ambos.
2. inicia um segundo subprocesso para gerar tráfego TCP.

Fragmento de código:

#html_tcpdumpfile="$(ssh remotemachine.mydomain.net \"mktemp\")"
html_tcpdumpfile=$(mktemp)

test_steps=(
    #"{ ssh remotemachine.mydomain.net \"timeout -t 20 tcpdump -nvi eth0 port 5060 > "$html_tcpdumpfile" \" ; }" 
    "{ ssh remotemachine.mydomain.net \"timeout -t 20 tcpdump -i eth0 port 5060 \"> $html_tcpdumpfile; }"   
    "{ ssh remotemachine.mydomain.net \"timeout -t 15 cat /tmp/htmlemail.txt | /etc/postfix/process_email.py \"; }"
 )
pids=()
for index in ${!test_steps[@]}; do       
      (echo "${test_steps[$index]}" | bash) &
      pids[${index}]=$!
      echo "$pids[${index}] is the pid"
done

#shouldn't really need this because of the timers but... just in case...
for pid in ${pids[*]}; 
do   
  wait $pid; 
done;
# ============ ANALYZE TEST RESULTS
echo "========== html_tcpdumpfile CONTENTS ============="
cat $html_tcpdumpfile
echo "========== html_tcpdumpfile CONTENTS ============="

Problema

Às vezes, o comando tcpdump não captura nada e, outras vezes, sim. Não há mensagens de erro quando há falha na captura.

O que eu tentei até agora

  1. Como você pode ver, tentei alterar a localização do arquivo dump entre a máquina remota e a local. Isso não parece fazer diferença.

  2. Eu provei que o tráfego TCP SEMPRE é gerado ... toda vez que executo o script porque tenho outra sessão ssh aberta e posso ver o tráfego sendo gerado. É que meu script falha intermitentemente em capturá-lo.

  3. Tentei aumentar o valor do tempo limite na sessão tcp para algo enorme para garantir que eu desse tempo suficiente. Mas não acho que seja esse o problema.

Qualquer sugestão seria apreciada. Obrigado.

EDITAR 1

Tentei introduzir um sono entre o lançamento de cada subprocesso:

pids=()
for index in ${!test_steps[@]}; do       
      (echo "${test_steps[$index]}" | bash) &
      sleep 5
      pids[${index}]=$!
      echo "$pids[${index}] is the pid"
done

Mas isso também não faz diferença.

EDITAR 2

Alterei o comando tcpdump para ficar assim:

test_steps=(     
    "{ ssh remotemachine.mydomain.net \"timeout -t 30 tcpdump -nlc 100 -i eth0 port 5060 \"> $rtf_tcpdumpfile; }" 
    "{ ssh remotemachine.mydomain.net \"timeout -t 20 tail -f /var/log/messages \" > $syslog; }"    
    "{ ssh remotemachine.mydomain.net \"timeout -t 15 cat /tmp/htmlemail.txt | /etc/postfix/process_email.py \"; }"
 )

O tcpdump ainda falha na captura de forma intermitente, mas... o interessante é que o syslog sempre é capturado com sucesso. (o script python realmente grava no syslog quando é invocado e assim posso ver/provar que o script está funcionando)

bash shell-script
  • 1 respostas
  • 2306 Views
Martin Hope
dot
Asked: 2018-02-15 12:33:55 +0800 CST

script bash: valor de argumento incorreto sendo definido

  • 4

Problema

Eu tenho um script que aceita alguns argumentos de linha de comando diferentes (opcionais). Para um argumento específico, estou obtendo o valor "menos", mas não sei por quê.

Código Bash

while getopts ":d:f:p:e:" o; do
  case "${o}" in
        d)
            SDOMAIN=${OPTARG}
            ;;
        f)
            FROM=${OPTARG}
            ;;
        p)
            PAGER=${OPTARG}
            ;; 
        e)
            DESTEXT=${OPTARG}
            ;;                       
        *)
            show_usage
            ;;          
    esac
done

source "./utils.sh"
test #test includes

echo "$SDOMAIN is the sdomain"
echo "$FROM is the from"
echo "$PAGER is the pager"
echo "$DESTEXT is the extension"

exit

Resultado

Quando executo meu script, é isso que vejo:

lab-1:/tmp/jj# bash mssp.sh -d testdomain.net         
Utils include worked!                                       
testdomain.net is the sdomain                                               
 is the from                                                                    
less is the pager                                                               
 is the extension                                 

Não consigo ver por que estou obtendo o valor "menos" no pager. Eu esperava ver uma string vazia. Se você pode ver o meu bug, por favor me avise. Eu estive olhando para isso por muito tempo.

bash variable
  • 2 respostas
  • 499 Views

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