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 / Perguntas / 406535
Accepted
user262325
user262325
Asked: 2017-11-24 03:16:40 +0800 CST2017-11-24 03:16:40 +0800 CST 2017-11-24 03:16:40 +0800 CST

o que grep -v grep faz

  • 772

Estou tentando entender o que grep -v grepfaz abaixo:

ssh  $server -p $port -o "ConnectTimeout 5" |   grep -v "Connection refused" | grep "Connected to" | grep -v grep | wc -l

Ou existe uma maneira melhor de encontrar o teste de conexão TCP?

shell-script shell
  • 2 2 respostas
  • 7575 Views

2 respostas

  • Voted
  1. Stéphane Chazelas
    2017-11-24T03:45:51+08:002017-11-24T03:45:51+08:00

    Se você quiser verificar se consegue estabelecer uma conexão ssh em 5 segundos e executar um comando, basta fazer:

    if ssh -o BatchMode=yes -o ConnectTimeout=5 -p "$port" "$server" true; then
      printf '%s\n' "$server is up"
    fi
    

    Seu comando como está faz pouco sentido. Como você não fornece um comando para executar no servidor remoto, sshserá executado no rloginmodo, onde um pseudo-terminal é solicitado e o shell de login do usuário remoto é iniciado (ou possivelmente um ForcedCommand).

    Em seguida, você está aplicando vários filtros à saída:

    • grep -v "Connection refused": filtre qualquer linha da saída que contenha Connection refused. Isso faz pouco sentido, pois essa mensagem de erro, se aparecesse, seria escrita em stderr, não na saída padrão que grepestá filtrando, e também porque:
    • grep "Connected to": selecione apenas as linhas que contêm Connected to. Isso também excluiria as linhas que contêm Connection refused, pois é improvável que uma linha contenha ambos.
    • grep -v grep, remova também as linhas que contêm grep(para que sejam linhas que contenham Connected toe grepe não Connection refused!)
    • wc -l: conte o número de linhas resultantes (portanto, as linhas em sshstdout de 's que contêm, Connected toexceto aquelas que também contêm grepou Connection refused). Observe que wcsó produzirá esse número quando a conexão for fechada, quando a sessão do shell for encerrada, como quando o usuário insere exit. Mas, novamente, como o usuário não verá nenhuma saída (já que tudo acaba wceventualmente), o usuário terá poucas pistas de que precisa entrar exitpara encerrar a sessão.
    • 5
  2. Best Answer
    Richard Neumann
    2017-11-24T03:17:34+08:002017-11-24T03:17:34+08:00

    Exclui todas as linhas que contêm a sequência grepde letras da saída do pipe anterior.

    • 3

relate perguntas

  • Um script que imprime as linhas de um arquivo com seu comprimento [fechado]

  • exportar variáveis ​​​​env programaticamente, via stdout do comando [duplicado]

  • Dividir por delimitador e concatenar problema de string

  • Como salvar um caminho com ~ em uma variável?

  • MySQL Select com função IN () com array bash

Sidebar

Stats

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

    Matriz JSON para bash variáveis ​​usando jq

    • 4 respostas
  • Marko Smith

    A data pode formatar a hora atual para o fuso horário GMT? [duplicado]

    • 2 respostas
  • Marko Smith

    bash + lê variáveis ​​e valores do arquivo pelo script bash

    • 4 respostas
  • Marko Smith

    Como posso copiar um diretório e renomeá-lo no mesmo comando?

    • 4 respostas
  • Marko Smith

    conexão ssh. Conexão X11 rejeitada devido a autenticação incorreta

    • 3 respostas
  • Marko Smith

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

    • 7 respostas
  • Marko Smith

    comando systemctl não funciona no RHEL 6

    • 3 respostas
  • Marko Smith

    rsync porta 22 e 873 uso

    • 2 respostas
  • Marko Smith

    snap /dev/loop em 100% de utilização -- sem espaço livre

    • 1 respostas
  • Marko Smith

    chave de impressão jq e valor para todos no subobjeto

    • 2 respostas
  • Martin Hope
    EHerman Matriz JSON para bash variáveis ​​usando jq 2017-12-31 14:50:58 +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
  • Martin Hope
    Drux A data pode formatar a hora atual para o fuso horário GMT? [duplicado] 2017-12-26 11:35:07 +0800 CST
  • Martin Hope
    AllisonC Como posso copiar um diretório e renomeá-lo no mesmo comando? 2017-12-22 05:28:06 +0800 CST
  • Martin Hope
    Steve Como as permissões de arquivo funcionam para o usuário "root"? 2017-12-22 02:46:01 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST
  • Martin Hope
    Cbhihe Altere o editor padrão para vim para _ sudo systemctl edit [unit-file] _ 2017-12-03 10:11:38 +0800 CST
  • Martin Hope
    showkey Como baixar o pacote não instalá-lo com o comando apt-get? 2017-12-03 02:15:02 +0800 CST
  • Martin Hope
    youxiao Por que os diretórios /home, /usr, /var, etc. têm o mesmo número de inode (2)? 2017-12-02 05:33:41 +0800 CST
  • Martin Hope
    user223600 gpg — o comando list-keys gera uid [ desconhecido ] depois de importar a chave privada para uma instalação limpa 2017-11-26 18:26:02 +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
subwaysurfers
my femboy roommate

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve