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
Gianluca Frustagli
Asked: 2018-08-19 07:34:49 +0800 CST

ssh "-P", para que serve?

  • 22

Em um script antigo (2001?) para o sistema operacional Linux, encontrei o uso da -Popção para o sshcomando:

$ ssh -P host.domain -l user

Mas na sshpágina de manual não há menção de uma -Popção. No entanto, a execução ssh -P host.domainnão mostra nenhum aviso ou erro.

O que é isso? Poderia ser uma opção antiga/não documentada?

ssh
  • 1 respostas
  • 6463 Views
Martin Hope
Paul Stoner
Asked: 2018-08-01 12:45:12 +0800 CST

Loop através de variáveis

  • 22

Estou escrevendo um script bash para usar rsync e atualizar arquivos em cerca de 20 servidores diferentes.

Eu tenho a parte rsync descoberta. O que estou tendo problemas é passar por uma lista de variáveis.

Meu script até agora está assim:

#!/bin/bash
SERVER1="192.xxx.xxx.2"
SERVER2="192.xxx.xxx.3"
SERVER3="192.xxx.xxx.4"
SERVER4="192.xxx.xxx.5"
SERVER5="192.xxx.xxx.6"
SERVER6="192.xxx.xxx.7"

for ((i=1; i<7; i++))
do
    echo [Server IP Address]
done

Onde [Server IP Address]deve ser o valor da variável associada. Então, quando i = 1, devo ecoar o valor de $SERVER1.

Eu tentei várias iterações disso, incluindo

echo "$SERVER$i"    # printed the value of i
echo "SERVER$i"     # printer "SERVER" plus the value of i ex: SERVER 1 where i = 1
echo $("SERVER$i")  # produced an error SERVER1: command not found where i = 1
echo $$SERVER$i     # printed a four digit number followed by "SERVER" plus the value of i
echo \$$SERVER$i    # printed "$" plus the value of i

Já faz muito tempo desde que eu roteirizei, então eu sei que estou perdendo alguma coisa. Além disso, tenho certeza de que estou misturando o que posso fazer usando C#, que tenho usado nos últimos 11 anos.

O que estou tentando fazer é possível? Ou devo colocar esses valores em uma matriz e fazer um loop pela matriz? Eu preciso fazer a mesma coisa para endereços IP de produção, bem como nomes de locais.

Isso tudo é um esforço para não ter que repetir um bloco de código que usarei para sincronizar os arquivos no servidor remoto.

bash shell-script
  • 4 respostas
  • 25854 Views
Martin Hope
bashbin
Asked: 2018-07-22 08:35:59 +0800 CST

Netcat - Como escutar em uma porta TCP usando o endereço IPv6?

  • 22

Estou usando a versão mais recente do netcat ( v1.10-41.1) que parece não ter uma opção para endereços IPv6 (como -6nas versões mais antigas do nc).

Se eu digitar nc -lvnp 2222e verificar as portas de escuta com netstat -punta, o servidor parece estar escutando na porta 2222apenas para endereços IPv4:

tcp        0      0 0.0.0.0:2222            0.0.0.0:*               LISTEN      2839/nc  

tcp6 não está ativo como, por exemplo, meu servidor apache2:

tcp6       0      0 :::80                   :::*                    LISTEN      -
linux netcat
  • 2 respostas
  • 34757 Views
Martin Hope
Alex
Asked: 2018-06-11 07:58:43 +0800 CST

Como rastrear o carregamento da biblioteca?

  • 22

Tenho programa que depende de biblioteca que está vinculada a libboost 1.67, que instalou no sistema. Ao iniciar, tenho um erro que libboost_system.so.1.58não existe. LD_PRELOADe LD_LIBRARY_PATHnão estão definidos.

lddtreea execução não mostra esta biblioteca como dependência, mas lddsim.

Como posso rastrear de onde a biblioteca é necessária?

libraries
  • 2 respostas
  • 10257 Views
Martin Hope
Alexander Mills
Asked: 2018-05-28 23:14:37 +0800 CST

Retorno implícito em funções bash?

  • 22

Digamos que eu tenha uma função bash assim:

gmx(){
  echo "foo";
}

esta função retornará implicitamente o valor de saída do echocomando ou o uso de return é necessário?

gmx(){
  echo "foo";
  return $?
}

Presumo que, da maneira como o bash funciona, o status de saída do comando final da função bash é aquele que é "retornado", mas não é 100% certo.

bash shell-script
  • 3 respostas
  • 15278 Views
Martin Hope
flerb
Asked: 2018-05-20 10:21:47 +0800 CST

Como ${!#} funciona no bash para obter o último argumento da linha de comando?

  • 22

No Advanced Bash-Scripting Guide, para obter o último argumento da linha de comando:

Ou: lastarg=${!#} Esta é uma referência indireta à $#variável.
Note que lastarg=${!$#}não funciona.

bash
  • 1 respostas
  • 2212 Views
Martin Hope
user905686
Asked: 2018-04-26 04:01:24 +0800 CST

Como inverter a ordem das páginas de um arquivo PDF?

  • 22

Existe uma maneira fácil (de preferência de linha de comando) de inverter as páginas em um arquivo PDF?

pdf
  • 4 respostas
  • 6523 Views
Martin Hope
Mark VY
Asked: 2018-04-06 14:33:01 +0800 CST

Por que a tabela de inodes geralmente não é redimensionável?

  • 22

Os sistemas de arquivos Unix geralmente possuem uma tabela inode, e o número de entradas nessa tabela geralmente é fixado no momento em que o sistema de arquivos é criado. Às vezes, isso leva as pessoas com muito espaço em disco a receberem mensagens de erro confusas sobre a falta de espaço livre e, mesmo depois de descobrirem qual é o problema, não há uma solução fácil para o que fazer a respeito.

Mas parece (para mim) que seria muito desejável evitar toda essa confusão alocando inodes sob demanda, de forma totalmente transparente para usuários e administradores de sistema. Se você gosta de truques fofos, pode até transformar a própria tabela inode em um arquivo e, assim, reutilizar o código que já possui e que encontra espaço livre no disco. Se você tiver sorte, pode até acabar com os inodes próximos aos próprios arquivos, sem tentar explicitamente obter esse resultado.

Mas ninguém (que eu saiba) realmente faz isso, então provavelmente há um problema que estou perdendo. Alguma ideia do que pode ser?

filesystems inode
  • 3 respostas
  • 2531 Views
Martin Hope
rjm61
Asked: 2018-02-03 07:19:12 +0800 CST

Bash =~ regex e https://regex101.com/

  • 22

Usando https://regex101.com/ construí uma expressão regular para retornar a primeira ocorrência de um endereço IP em uma string.

RegExp:

(?:\d{1,3}\.)+(?:\d{1,3})

RegExp incluindo delimitadores:

/(?:\d{1,3}\.)+(?:\d{1,3})/

Com a seguinte string de teste:

eu-west                       140.243.64.99 

Ele retorna uma correspondência completa de:

140.243.64.99

Não importa o que eu tente com âncoras etc, o script bash a seguir não funcionará com a expressão regular gerada.

temp="eu-west                       140.243.64.99            "
regexp="(?:\d{1,3}\.)+(?:\d{1,3})"
if [[ $temp =~ $regexp ]]; then
  echo "found a match"
else
  echo "No IP address returned"
fi
bash regular-expression
  • 3 respostas
  • 80710 Views
Martin Hope
nxnev
Asked: 2017-12-22 10:03:27 +0800 CST

Possível bug no Bash?: foo() { echo "${var[0]}"; }; var=(bar baz) foo

  • 22

SO : Ubuntu 16.04.3

Shell : Bash 4.3.48


Sei que é possível alterar temporariamente o conteúdo de uma variável como em var=value command, sendo provavelmente IFS= read -r varo caso mais notável disso.

E, graças ao wiki de Greg , também entendo:

# Why this
foo() { echo "$var"; }
var=value foo

# And this does work
var=value; echo "$var"

# But this doesn't
var=value echo "$var"

O que escapa à minha compreensão é isto:

$ foo() { echo "${var[0]}"; }
$ var=(bar baz) foo
(bar baz)

Tanto quanto sei (e seguindo a lógica dos exemplos anteriores), deve imprimir bar, não (bar baz).

Isso só acontece comigo? Este é o comportamento pretendido e está faltando alguma coisa? Ou isso é um bug?

bash array
  • 3 respostas
  • 2834 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