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-39069

RonJohn's questions

Martin Hope
RonJohn
Asked: 2024-12-13 02:18:11 +0800 CST

Retornar saída ssh multilinha para variáveis ​​separadas?

  • 5

RHEL 8.10

OpenSSH_8.0p1, OpenSSL 1.1.1k FIPS 25 de março de 2021

Como esperado, esta linha (com dois comandos incorporados) retorna duas linhas:

$ ssh -q remoteserver "ls -1 /proc/${p}/fd | wc -l ; ps -Ostate  -p${p} | tail -n1"
969
1353432 S S ?        00:00:12 pgpool: wait for accept lock

Como faço para armazenar cada linha em uma variável separada no servidor local? (Como preciso executar sshcentenas de vezes, e cada uma leva mais de 0,25 segundos, estou tentando minimizar o número de vezes que chamo o ssh.)

O objetivo é que, por exemplo, a variável FDcnttenha o valor 969 e PidStateseja 1353432 S S ? 00:00:12 pgpool: wait for accept lock.

Isso funciona, mas parece um pouco complicado:

blarge=()
while read -r
do 
    blarge+=("$REPLY")
done <<<$(ssh -q FISPCDSPGS202c "ls -1 /proc/${p}/fd | wc -l ; ps -Ostate  -p${p} | tail -n1")
echo ${blarge[0]}
970
$ echo ${blarge[1]}
1353432 S S ? 00:00:12 pgpool: fis_cds cdsbmop 10.55.96.151(33710) idle
bash
  • 1 respostas
  • 70 Views
Martin Hope
RonJohn
Asked: 2024-09-12 23:58:51 +0800 CST

gnu grep vários filtros em uma regex

  • 3

RHEL 8, se for importante.

Preciso encontrar todas as linhas em um arquivo de texto que correspondem a estes três filtros:

cut -f1 -d: .pgpass | grep ^FISP | grep -E 'CDS|TAP' | grep PGS401
FISPCDSPGS401A
FISPCDSPGS401B
FISPTAPPGS401AA
FISPTAPPGS401AB
FISPTAPPGS401BA
FISPTAPPGS401BB
FISPTAPPGS401CA
FISPTAPPGS401CB
FISPTAPPGS401DA
FISPTAPPGS401DB

Isso, semelhante ao globbing estendido do bash, é o tipo de comando que estou procurando, mas não corresponde.

cut -f1 -d: .pgpass | grep '^FISP@(CDS|TAP)PGS401'
cut -f1 -d: .pgpass | grep -E '^FISP@(CDS|TAP)PGS401'

Qual é o segredo?

EDIT1: todos os dados

$ cut -f1 -d: .pgpass | grep -v '^$'
FISPCDSPGS202a
FISPCDSPGS202a
FISPCDSPGS202c
FISPCDSPGS202b
FISPCDSPGS202b
FISPCDSPGS202c
FISPCDSPGS202
FISPCCPGS302a
FISPCCPGS302b
FISPCCPGS302a
FISPCCPGS302b
FISPCCPGS302c
FISPCCPGS302
FISPCDSPGS302a
FISPCDSPGS302b
FISPCDSPGS302a
FISPCDSPGS302b
FISPCDSPGS302c
FISPCDSPGS302
FISPTAPPGS302a
FISPTAPPGS302b
FISPTAPPGS302a
FISPTAPPGS302b
FISPTAPPGS302c
FISPTAPPGS302
FISPCCPGS405a
FISPCCPGS405b
FISPCCPGS405a
FISPCCPGS405b
FISPCCPGS405c
FISPCCPGS405
FISPCDSPGS405a
FISPCDSPGS405b
FISPCDSPGS405a
FISPCDSPGS405b
FISPCDSPGS405c
FISPCDSPGS405
FISPTAPPGS405a
FISPTAPPGS405b
FISPTAPPGS405a
FISPTAPPGS405b
FISPTAPPGS405c
FISPTAPPGS405
FISPCDSPGS202c
FISPCCPGS302c
FISPCDSPGS302c
FISPTAPPGS302c
FISPCCPGS405c
FISPCDSPGS405c
FISPTAPPGS405c
FISSLBXPGS202a
FISSLBXPGS202b
FISSLBXPGS302a
FISSLBXPGS302b
FISSLBXPGS405a
FISSLBXPGS405b
FISPCDSPGS401A
FISPCDSPGS401B
FISPTAPPGS401AA
FISPTAPPGS401AB
FISPTAPPGS401BA
FISPTAPPGS401BB
FISPTAPPGS401CA
FISPTAPPGS401CB
FISPTAPPGS401DA
FISPTAPPGS401DB
FISQCCPGS401A
FISQCCPGS401B
FISQCCPGS401A
FISQCCPGS401B
FISQCCPGS401C
FISQCCPGS401
FISQCDSPGS401A
FISQCDSPGS401B
FISQCDSPGS401A
FISQCDSPGS401B
FISQCDSPGS401C
FISQCDSPGS401
FISQTAPPGS401A
FISQTAPPGS401B
FISQTAPPGS401A
FISQTAPPGS401B
FISQTAPPGS401C
FISQTAPPGS401

EDIT1: "ponto e asterisco" parece não funcionar.

$ cut -f1 -d: .pgpass | grep '^FISP.*(CDS|TAP).*PGS401'
$ 
bash
  • 3 respostas
  • 46 Views
Martin Hope
RonJohn
Asked: 2024-06-20 21:57:08 +0800 CST

Por que df mostra o mesmo que "du --apparent-size"?

  • 8
A recompensa expira em 2 dias . As respostas a esta pergunta são elegíveis para uma recompensa de +200 reputação. RonJohn quer chamar mais atenção para esta questão.

Isso parece completamente ao contrário. (O tamanho do bloco neste compartilhamento NFS é de 512 KB, causando 20% de desperdício, mas esse é um problema diferente.)

$ df -BM --output=used,target /Database/backups
    Used Mounted on
3842164M /Database/backups

$ du -cd0 -BM --apparent-size /Database/backups
3841946M        /Database/backups
3841946M        total

$ du -cd0 -BM /Database/backups
4631230M        /Database/backups
4631230M        total
filesystems
  • 1 respostas
  • 39 Views
Martin Hope
RonJohn
Asked: 2024-06-14 15:46:23 +0800 CST

Por que definir uma variável somente leitura no escopo externo impede a definição de uma variável local com o mesmo nome?

  • 17

Não encontrei nada sobre isso em todas as minhas pesquisas.

No código abaixo, Bar1age como eu esperaria que uma variável "normal" agisse (já que help declarediz que -gsó é "vista" em chamadas de função): ela muda de valor dependendo do escopo (externo ou interno).

Bar2, sendo declarado "simplesmente", também age como eu esperava (estando gfhjnfdno escopo externo e blatno escopo interno.

Mas Fooé uma variável globalmente imutável. help declarediz apenas "para tornar NAMEs somente leitura". Onde esse recurso estendido (e indesejado) está documentado?

$ cat test.sh
#!/bin/bash

declare -r Foo=bar
declare -g Bar1=fdhtbn
declare Bar2=gfhjnfd

X()
{
    local Foo=$1
    local Bar1=snorkel
    local Bar2=$2
    echo Foo in X = $Foo
    echo Bar1 in X = $Bar1
    echo Bar2 in X = $Bar2
}

echo Foo, above X, = $Foo
echo Bar1, above X = $Bar1
echo Bar2, above X = $Bar2
echo
X baz blat
echo
echo Foo, below X, = $Foo
echo Bar1, below X = $Bar1
echo Bar2, below X = $Bar2

$ ./test.sh
Foo, above X, = bar
Bar1, above X = fdhtbn
Bar2, above X = gfhjnfd

./test.sh: line 9: local: Foo: readonly variable
Foo in X = bar
Bar1 in X = snorkel
Bar2 in X = blat

Foo, below X, = bar
Bar1, below X = fdhtbn
Bar2, below X = gfhjnfd
bash
  • 3 respostas
  • 1131 Views
Martin Hope
RonJohn
Asked: 2024-06-12 22:58:38 +0800 CST

set -o xtrace para apenas uma linha? [duplicado]

  • 7
Esta pergunta já tem respostas aqui :
Existe uma maneira de definir sinalizadores bash para um único comando? (4 respostas)
Depuração embutida (xtrace) em scripts (1 resposta)
Fechado há 7 dias .

bash 4.4.20(1) no RHEL 8.4.

set -x ; ./blarge ; set +x funciona , é claro, mas há muito mais coisas para lembrar de remover quando terminar. E fica pegajoso se você estiver executando ssh, sudo, etc.

Assim, conforme mencionado no Assunto, existe alguma maneira de dizer set -xpara trabalhar apenas em uma linha, já que FOO=bar ./blargedefine a variável FOO como barge apenas para aquela execução de blarge?

declare Srv=s1.example.com
declare DB=a_db
declare Tables="-t table1 -t table2"

date +"%F %T, %a Starting"
set -x
vacuumdb --host=$Srv -j2 --dbname=$DB $Tables --analyze
set +x
date +"%F %T, %a Finished"
bash
  • 2 respostas
  • 53 Views
Martin Hope
RonJohn
Asked: 2024-01-07 21:12:16 +0800 CST

O que está usando todo o espaço em uma partição aparentemente vazia?

  • 10

SO: RHEL8 Sistema de arquivos: xfs

Suponho que algum processo zumbi esteja ocupando o espaço, mas não consigo encontrá-lo.

O problema está em /var/lib/pgsql/14, que dfdiz estar usando 1,1 TB de espaço:

$ sudo df -T -xtmpfs -xdevtmpfs -h --sync  
Filesystem                                 Type  Size  Used Avail Use% Mounted on
/dev/sda2                                  xfs   126G   14G  113G  11% /
/dev/sda1                                  xfs   2.0G  658M  1.4G  33% /boot
/dev/mapper/pgsql14vg-pgsql141v            xfs   5.4T  1.1T  4.4T  20% /var/lib/pgsql/14
/dev/mapper/pglogvg-pglog1v                xfs    15G  292M   15G   2% /var/log/postgresql
FISPFILNAS01.xxxxxxxxxxxx:/DB_backups_TAPb nfs4   15T  2.3T   13T  16% /var/lib/pgsql/14/backups

No entanto, dudiz que possui apenas 12 GB de arquivos:

$ du -x -d2 -h /var/lib/pgsql/14 | sort -k2
12G     /var/lib/pgsql/14
12G     /var/lib/pgsql/14/data
42M     /var/lib/pgsql/14/data/base
2.8M    /var/lib/pgsql/14/data/global
0       /var/lib/pgsql/14/data/pg_commit_ts
0       /var/lib/pgsql/14/data/pg_dynshmem
4.0K    /var/lib/pgsql/14/data/pg_logical
16K     /var/lib/pgsql/14/data/pg_multixact
0       /var/lib/pgsql/14/data/pg_notify
0       /var/lib/pgsql/14/data/pg_replslot
0       /var/lib/pgsql/14/data/pg_serial
0       /var/lib/pgsql/14/data/pg_snapshots
0       /var/lib/pgsql/14/data/pg_stat
976K    /var/lib/pgsql/14/data/pg_stat_tmp
192K    /var/lib/pgsql/14/data/pg_subtrans
0       /var/lib/pgsql/14/data/pg_tblspc
0       /var/lib/pgsql/14/data/pg_twophase
12G     /var/lib/pgsql/14/data/pg_wal
112K    /var/lib/pgsql/14/data/pg_xact

Até tentei desmontar o dispositivo (depois de desligar o PostgreSQL), mas ele está ocupado, embora lsof diga que nenhum processo o está usando:

$ export PS1="$ "
$ sudo lsof /var/lib/pgsql/14
$ 

Saída adicionada lsof +L1:

$ sudo lsof +L1
COMMAND     PID    USER   FD   TYPE DEVICE SIZE/OFF NLINK      NODE NAME
dbus-daem  1182    dbus   22r   REG    8,2 11567160     0 135113565 /var/lib/sss/mc/initgroups (deleted)
polkitd    1887 polkitd    3r   REG    8,2 11567160     0 134903325 /var/lib/sss/mc/initgroups (deleted)
python.or  1899    root    6w   REG    8,2     1434     0  67157239 /var/log/venv-salt-minion.log-20231217 (deleted)
python.or  1899    root    7r   REG    8,2 11567160     0 134903325 /var/lib/sss/mc/initgroups (deleted)
sssd      16382    root   14r   REG    8,2 11567160     0 134903325 /var/lib/sss/mc/initgroups (deleted)
sssd_be   16383    root   18r   REG    8,2 11567160     0 134903325 /var/lib/sss/mc/initgroups (deleted)
filesystems
  • 2 respostas
  • 384 Views
Martin Hope
RonJohn
Asked: 2023-11-22 06:39:49 +0800 CST

Encontrar todas as linhas entre dois padrões, EXCLUSIVO do segundo padrão?

  • 5

Considere que tenho o arquivo listado abaixo. Preciso selecionar todas as linhas de cada instância do padrão regex antesWord A do padrão regex .Word D

Word A
Word B
Word C
Word D
Word E
Word F
Word G
Word A
Word H
Word I
Word D
Word J
Word A
Word K
Word D
Word L
Word M
Word A
Word D

Observe o número variável de linhas entre Ae D. Às vezes, Dé a próxima linha. Aqui está o que preciso que seja a saída:

Word A
Word B
Word C
Word A
Word H
Word I
Word A
Word K
Word A

Pode ser feito com awk, perl, python ou sed. Não importa, desde que esteja instalado no servidor RHEL6 onde o arquivo está.

awk
  • 6 respostas
  • 229 Views
Martin Hope
RonJohn
Asked: 2021-12-06 08:45:09 +0800 CST

ssh, heredoc e variáveis ​​de ambiente [duplicado]

  • -1
Essa pergunta já tem resposta aqui :
passando e definindo variáveis ​​em um heredoc (1 resposta)
Fechado há 10 meses .

(Este é o RHEL 8.4, se for importante.)

Os echocomandos nas linhas 5 e 7 deste script são executados no host local, mas os hostnamecomandos nas linhas 6 e 8 são executados no host remoto conforme o esperado.

Por que as linhas 5 e 7 são executadas no host local? Mais importante, como faço para executá-los no host remoto?

EDIT: não quero passar variáveis . Eu quero que as variáveis ​​sejam definidas e usadas exclusivamente no servidor remoto.

 1 #!/bin/bash
 2 export foo=bar
 3 ssh -q ${1} <<EOF
 4     export foo=blarge
 5     echo $foo
 6     hostname
 7     echo $foo
 8     hostname
 9 EOF
10 hostname
shell-script here-document
  • 1 respostas
  • 347 Views
Martin Hope
RonJohn
Asked: 2020-01-05 10:31:25 +0800 CST

Como selecionar a primeira ocorrência entre dois padrões incluindo apenas o primeiro?

  • 2

Semelhante, mas não exatamente como Como selecionar a primeira ocorrência entre dois padrões, incluindo-os ... dado este arquivo de entrada:

something P1 something
content1
content2
something P1 something
content3
content4

Eu preciso apenas desta saída:

something P1 something
content1
content2
awk sed
  • 4 respostas
  • 1360 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