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

lylklb's questions

Martin Hope
lylklb
Asked: 2024-08-05 16:33:57 +0800 CST

Por que a lista de pares ntptrace é inconsistente com a lista de pares ntpq?

  • 7

Ambiente: Clientes NTP (AIX 6.1 TL07) + Servidores P/S NTP (ST1 GPS).

Sintoma:

  1. o ntpq -pncomando gera o servidor NTP primário e secundário (candidato).
  2. o ntptracecomando apenas gera o loopback e o servidor NTP primário.

Questões:

  1. Por que o loopback apareceria na ntptrace peerslista mesmo sem esta entrada no ntpq( ntp.conf)?
  2. Por que a entrada do servidor NTP secundário (candidato) não apareceria na ntptrace peerslista?
# grep -Ev "^(#|$)" /etc/ntp.conf
driftfile /etc/ntp.drift
tracefile /etc/ntp.trace
server 10.16.27.24
server 10.18.12.15
# ntpq -pn
     remote           refid      st t when poll reach   delay   offset    disp
==============================================================================
*10.16.27.24   .GPS.            1 -   42  128  377     0.98   -0.078    0.11
+10.18.12.15   .GPS.            1 -   20   16  377     1.89   -0.056    0.41
# ntptrace
loopback: stratum 2, offset -0.000290, synch distance 0.00131
10.16.27.24: stratum 1, offset -0.000308, synch distance 0.00000, refid 'GPS'
aix
  • 2 respostas
  • 176 Views
Martin Hope
lylklb
Asked: 2024-07-21 21:18:10 +0800 CST

Por que o servidor NTP que usa o relógio local deve usar o IP de loopback padrão (127.127.1.0)?

  • 9

Parece que o servidor NTP que usa o relógio local deve usar o endereço IP de loopback padrão (127.127.1.0).
Se eu usar o endereço IP Ethernet local para o servidor NTP como o relógio local de origem, ele ficará preso em .INIT. estado.

root@THCDB:/root# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*LOCAL(0)        .LOCL.           5 l   53   64    1    0.000    0.000   0.000
root@THCDB:/root# grep ^server /etc/ntp.conf
server 127.127.1.0
root@THCDB:/root# sed -i '/^server/s/127.127.1.0/172.25.180.170/' /etc/ntp.conf
root@THCDB:/root# grep ^server /etc/ntp.conf
server 172.25.180.170
root@THCDB:/root# service ntpd restart
Shutting down ntpd:                                        [  OK  ]
Starting ntpd:                                             [  OK  ]
root@THCDB:/root# ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 172.25.180.170  .INIT.          16 u    -   64    0    0.000    0.000   0.000
root@THCDB:/root# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 THCDB          .INIT.          16 u    -   64    0    0.000    0.000   0.000
ntp
  • 1 respostas
  • 649 Views
Martin Hope
lylklb
Asked: 2024-07-08 21:08:28 +0800 CST

Por que o ntpq -c subcmds não gera nada recebido, mas ainda pode sincronizar corretamente seu horário

  • 5

Ambiente: RHEL 6.4 com ntp-4.2.6p5-15.el6_10.x86_64
Pergunta: O seguinte cliente NTP pode sincronizar seu tempo com o servidor NTP remoto, mas por que ele não pode executar os subcmds ntpq -c com o servidor NTP remoto?

# 
# 
# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*10.130.22.10    .GPS.            1 u   17 1024  377    0.859   -0.178   0.428
# 
# 
# ntpq -n -cas 

ind assid status  conf reach auth condition  last_event cnt
===========================================================
  1 15314  963a   yes   yes  none  sys.peer    sys_peer  3
# 
# 
# 
# ntpq 
ntpq> as

ind assid status  conf reach auth condition  last_event cnt
===========================================================
  1 15314  963a   yes   yes  none  sys.peer    sys_peer  3
ntpq> 
ntpq> 
ntpq> quit
# 
# 
# 
# ntpq 10.130.22.10
ntpq> as
10.130.22.10: timed out, nothing received
***Request timed out
ntpq> 
ntpq> 
ntpq> pe
10.130.22.10: timed out, nothing received
***Request timed out
ntpq> 
ntpq> 
ntpq> quit
# 
# 
ntp
  • 1 respostas
  • 21 Views
Martin Hope
lylklb
Asked: 2024-06-26 20:58:06 +0800 CST

A dúvida sobre o redirecionamento de algum padrão dentro do seu período de transição

  • 3

Como manter o stdout completo com sua saída do período de transição?
Como no exemplo típico a seguir, você pode ver que o status de atualização dos metadados yum não seria redirecionado para seu yr.log.
Portanto, a minha pergunta é como reter estes resultados durante o período de transição.

# 
# yum  -v repolist
Not loading "rhnplugin" plugin, as it is disabled
Not loading "product-id" plugin, as it is disabled
Loading "refresh-packagekit" plugin
Loading "security" plugin
Not loading "subscription-manager" plugin, as it is disabled
Config time: 0.015
Yum Version: 3.2.29
RHEL_6.4_x86-64                                    | 3.9 kB     00:00 ... 
RHEL_6.4_zlocal                                    | 2.9 kB     00:00 ... 
Setting up Package Sacks
pkgsack time: 0.012
Repo-id      : RHEL_6.4_x86-64
Repo-name    : RHEL_6.4_x86-64_dvd_all
Repo-revision: 1359576928
Repo-updated : Thu Jan 31 04:22:56 2013
Repo-pkgs    : 3,648
Repo-size    : 3.2 G
Repo-baseurl : file:///mnt/
Repo-expire  : 21,600 second(s) (last: Wed Jun 26 08:26:11 2024)

Repo-id      : RHEL_6.4_zlocal
Repo-name    : RHEL_6.4_x86-64_dvd_zlocal
Repo-revision: 1715738735
Repo-updated : Wed Mar 31 17:26:56 2021
Repo-pkgs    : 3,720
Repo-size    : 3.2 G
Repo-baseurl : file:///install/rhel_6.4_x86_64/
Repo-expire  : 21,600 second(s) (last: Wed Jun 26 08:26:11 2024)

repolist: 7,368
# 
# 
# 
# yum -v repolist 1> /tmp/yr.log 2> /tmp/yr.err
# 
# 
# cat /tmp/yr.log
Not loading "rhnplugin" plugin, as it is disabled
Not loading "product-id" plugin, as it is disabled
Loading "refresh-packagekit" plugin
Loading "security" plugin
Not loading "subscription-manager" plugin, as it is disabled
Config time: 0.069
Yum Version: 3.2.29
Setting up Package Sacks
pkgsack time: 0.712
Repo-id      : RHEL_6.4_x86-64
Repo-name    : RHEL_6.4_x86-64_dvd_all
Repo-revision: 1359576928
Repo-updated : Thu Jan 31 04:22:56 2013
Repo-pkgs    : 3,648
Repo-size    : 3.2 G
Repo-baseurl : file:///mnt/
Repo-expire  : 21,600 second(s) (last: Wed Jun 26 15:24:26 2024)

Repo-id      : RHEL_6.4_zlocal
Repo-name    : RHEL_6.4_x86-64_dvd_zlocal
Repo-revision: 1715738735
Repo-updated : Wed May 15 10:06:56 2024
Repo-pkgs    : 3,720
Repo-size    : 3.2 G
Repo-baseurl : file:///install/rhel_6.4_x86_64/
Repo-expire  : 21,600 second(s) (last: Wed Jun 26 15:24:27 2024)

repolist: 7,368
# 
io-redirection
  • 1 respostas
  • 54 Views
Martin Hope
lylklb
Asked: 2024-06-16 20:20:26 +0800 CST

Como verificar algumas variáveis ​​de configuração do yum no RHEL 5

  • 5

Poderíamos usar o yum-config-manager para verificar as variáveis ​​de configuração do yum no RHEL 6 e superior ...
Mas no RHEL 5, não havia o programa yum-config-manager, e também nem o yum-debug-dump nem o python poderia realizar tal função.

Aqui apenas um exemplo com RHEL 6:

# 
# yum-config-manager  main|grep -Ei "metadata|keep"
keepalive = True
keepcache = False
metadata_expire = 21600
# 
yum
  • 1 respostas
  • 25 Views
Martin Hope
lylklb
Asked: 2024-05-21 21:08:11 +0800 CST

A dúvida sobre o mecanismo de atualização forçada do status com o yum repolist

  • 5

Percebi que haveria um processo adicional de "status de atualização" sempre que fosse executado com o yum repolist por um longo intervalo de tempo...
Notas: aqui "um longo intervalo de tempo" significa cerca de alguns dias (pelo menos mais de 3 dias ), mas não algumas horas ...

# 
# yum repolist                                                                    <<<  a few days interval
Loaded plugins: security, verify
Cluster                                                                                                                                    | 1.5 kB     00:00     
ClusterStorage                                                                                                                             | 1.5 kB     00:00     
RHEL_5.8_local                                                                                                                             |  951 B     00:00     
Server                                                                                                                                     | 1.5 kB     00:00     
VT                                                                                                                                         | 1.3 kB     00:00     
repo id                                                                               repo name                                                                                 status
Cluster                                                                               Cluster_r58                                                                                  32
ClusterStorage                                                                        ClusterStorage_r58                                                                           39
RHEL_5.8_local                                                                        RHEL_5.8_x86-64_all_local                                                                 3,414
Server                                                                                Server_r58                                                                                3,285
VT                                                                                    VT_r58                                                                                       58
repolist: 6,828
# 
# 
# yum repolist                                                                    <<<  a few hours interval
Loaded plugins: security, verify
repo id                                                                               repo name                                                                                 status
Cluster                                                                               Cluster_r58                                                                                  32
ClusterStorage                                                                        ClusterStorage_r58                                                                           39
RHEL_5.8_local                                                                        RHEL_5.8_x86-64_all_local                                                                 3,414
Server                                                                                Server_r58                                                                                3,285
VT                                                                                    VT_r58                                                                                       58
repolist: 6,828
# 

Atualização:

seria muito estranho que meu tempo de vida útil dos metadados do repositório yum fosse apenas 3600 segundos (s),
então aqui como explicar o tempo de vida real dos metadados do meu repositório yum um pouco mais tarde do que o padrão?
# yum -v repolist
Not loading "katello" plugin, as it is disabled
Not loading "product-id" plugin, as it is disabled
Not loading "rhnplugin" plugin, as it is disabled
Loading "security" plugin
Not loading "subscription-manager" plugin, as it is disabled
Loading "verify" plugin
Config time: 0.068
Yum Version: 3.2.22
Cluster                                                                                                                                                                                                                                                | 1.5 kB     00:00     
ClusterStorage                                                                                                                                                                                                                                         | 1.5 kB     00:00     
Server                                                                                                                                                                                                                                                 | 1.5 kB     00:00     
VT                                                                                                                                                                                                                                                     | 1.3 kB     00:00     
Setting up Package Sacks
pkgsack time: 0.032
Repo-id      : Cluster
Repo-name    : Cluster_r58
Repo-updated : Fri Feb  3 02:38:19 2012
Repo-pkgs    : 32
Repo-size    : 83 M
Repo-baseurl : file:///mnt/Cluster/
Repo-expire  : 3,600 second(s) (last: Fri May 24 18:27:23 2024)

Repo-id      : ClusterStorage
Repo-name    : ClusterStorage_r58
Repo-updated : Fri Feb  3 02:39:28 2012
Repo-pkgs    : 39
Repo-size    : 11 M
Repo-baseurl : file:///mnt/ClusterStorage/
Repo-expire  : 3,600 second(s) (last: Fri May 24 18:27:23 2024)

Repo-id      : RHEL_5.8_local
Repo-name    : RHEL_5.8_x86-64_all_local
Repo-updated : Tue Apr 23 10:43:03 2024
Repo-pkgs    : 3,414
Repo-size    : 3.6 G
Repo-baseurl : file:///install/rhel_5.8_x86-64_local
Repo-expire  : 3,600 second(s) (last: Fri May 24 18:20:41 2024)

Repo-id      : Server
Repo-name    : Server_r58
Repo-updated : Fri Feb  3 02:39:04 2012
Repo-pkgs    : 3,285
Repo-size    : 3.3 G
Repo-baseurl : file:///mnt/Server/
Repo-expire  : 3,600 second(s) (last: Fri May 24 18:27:23 2024)

Repo-id      : VT
Repo-name    : VT_r58
Repo-updated : Fri Feb  3 02:38:17 2012
Repo-pkgs    : 58
Repo-size    : 193 M
Repo-baseurl : file:///mnt/VT/
Repo-expire  : 3,600 second(s) (last: Fri May 24 18:27:23 2024)

repolist: 6,828
#
yum
  • 1 respostas
  • 18 Views
Martin Hope
lylklb
Asked: 2024-05-16 21:20:42 +0800 CST

Por que a terceira coluna de alguns pacotes na saída da lista yum foi "instalada" no RHEL 6/7

  • 5

Na verdade, pode haver as duas subquestões a seguir no título do problema acima:
1) Qualquer que seja o design de desenvolvimento da estrutura do pacote rpm, poderia resultar na saída nula do repoquery -i ?
2) Se sem o atributo "from_repo" na estrutura do pacote rpm poderia resultar na lista "instalado" via yum?

#
#  
# yum list installed|grep -i installed
Installed Packages
storcli.x86_64                     007.1108.0000.0000-1           installed     
# 
# 
# 
# yum list installed|grep -i zabbix
zabbix-agent.x86_64                4.0.2-1.el7                    @zabbix  
# 
# 
# 
# yum info storcli.x86_64
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Installed Packages
Name        : storcli
Arch        : x86_64
Version     : 007.1108.0000.0000
Release     : 1
Size        : 7.1 M
Repo        : installed
Summary     : Storage Command Line Tool.
URL         : http://www.avagotech.com
License     : AVAGO Technologies
Description : storcli is used to manage storage controllers.

# 
# 
# yumdb info storcli.x86_64
Loaded plugins: fastestmirror
storcli-007.1108.0000.0000-1.x86_64
# 
# 
# 
# repoquery -i  storcli.x86_64
# 
# 
# repoquery -i  storcli.x86_64
# 
# 
# yum info zabbix-agent.x86_64
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Installed Packages
Name        : zabbix-agent
Arch        : x86_64
Version     : 4.0.2
Release     : 1.el7
Size        : 1.5 M
Repo        : installed
From repo   : zabbix
Summary     : Zabbix Agent
URL         : http://www.zabbix.com/
License     : GPLv2+
Description : Zabbix agent to be installed on monitored systems.

# 
# 
# repoquery -i zabbix-agent.x86_64

Name        : zabbix-agent
Version     : 4.0.2
Release     : 1.el7
Architecture: x86_64
Size        : 1559464
Packager    : None
Group       : Applications/Internet
URL         : http://www.zabbix.com/
Repository  : zabbix
Summary     : Zabbix Agent
Source      : zabbix-4.0.2-1.el7.src.rpm
Description :
Zabbix agent to be installed on monitored systems.
# 
# 
yum
  • 2 respostas
  • 30 Views
Martin Hope
lylklb
Asked: 2023-07-24 20:56:00 +0800 CST

Por que o ksh93 não suporta o especificador de formato %T de seu printf integrado no AIX?

  • 9

Testamos os seguintes comandos com ksh93 printfem muitos sistemas AIX 5.3/6.1, mas todos falharam com o mesmo resultado.

Por que é que?

# 
# oslevel -s                               
6100-07-09-1341
# 
# 
# ksh93 -c 'echo ${.sh.version}'
Version M-12/28/93e
# 
# 
# ksh93 -c 'printf "%T\n" "now"'      
ksh93[1]: printf: T: unknown format specifier
# 
# 
ksh
  • 2 respostas
  • 387 Views
Martin Hope
lylklb
Asked: 2023-06-15 21:01:36 +0800 CST

Como obter o formato de saída especificado via sh -c 'grep ...' com comandos find -exec

  • 5

Queremos grep os arquivos correspondentes que incluem algumas strings fixas e, em seguida, produzir esses arquivos apenas no formato ls -l.
Por exemplo:
A) o método a seguir com saída múltipla -exec grep e ls -l.

# 
# 
# find /usr/bin -type f -exec grep -Eil '#\!\/usr\/bin\/csh' {} \; -exec ls -l  {} \; >scripts_csh_list 2>&1
# 
# 
# 
# cat scripts_csh_list      
/usr/bin/which
-r-xr-xr-x    1 bin      bin            1191 Sep 06 2007  /usr/bin/which
#  
#  

B) Mas queremos a melhor saída do método apenas com ls -l ... , e então falhamos via sh -c 'grep ... {}'
Notas: todos os seguintes comandos combinados diferentes para find -exec .. .emita o mesmo resultado com falha.

#                                                                                                                
# 
# find /usr/bin -type f -exec sh -c 'grep -Eil '\/usr\/bin\/csh' {} && ls -ltr  {}' \; >scripts_csh_list 2>&1t
#  
# 
# tail -6 scripts_csh_list
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
# 
# 
# 
# find /usr/bin -type f -exec sh -c ' grep -Eil '\/usr\/bin\/csh' {} '  \; >scripts_csh_list 2>&1  
# 
# 
# tail -6 scripts_csh_list                                                                         
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
# 
# 
# find /usr/bin -type f -exec sh -c ' grep -Eil '\/usr\/bin\/csh' "{}" '  \; >scripts_csh_list 2>&1  
# 
# 
# tail -6 scripts_csh_list                                                                         
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
# 
# 
# 
# find /usr/bin -type f -exec sh -c " grep -Eil '\/usr\/bin\/csh' {} "  \; >scripts_csh_list 2>&1  
# 
# 
# tail -6 scripts_csh_list                                                                         
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
# 
# 
# 
# find /usr/bin -type f -exec sh -c " grep -Eil '\/usr\/bin\/csh' {} "  \; >scripts_csh_list 2>&1  
# 
# 
# tail -6 scripts_csh_list                                                                         
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
grep: 0652-033 Cannot open {}.
# 
# 
shell
  • 2 respostas
  • 30 Views
Martin Hope
lylklb
Asked: 2023-06-13 20:48:15 +0800 CST

Como usar a opção -E do grep correspondente a algum nome de variável

  • 5

Queremos saber sobre o método correto para combinar algum nome de variável (incluindo seu prefixo $) usando a opção grep -E.
Parece que esta função grep macthing só pode funcionar com nenhuma opção ou opção -e ......

> 
> 
> grep ""'$'status"" /home/ewpadm/.sapenv_wzwms1.csh
if ( $status == 0 ) then
if ( $status == 0 ) then 
    set rc1 = $status
    set rc2 = $status
    set rc3 = $status
    set rc4 = $status
    set rc5 = $status
    set rc6 = $status
    set rc7 = $status
    set rc8 = $status
> 
> 
> grep -E ""'$'status"" /home/ewpadm/.sapenv_wzwms1.csh
> 
> 
> grep -E """'$'status"""" /home/ewpadm/.sapenv_wzwms1.csh
> 
> 
> grep -e ""'$'status"" /home/ewpadm/.sapenv_wzwms1.csh 
if ( $status == 0 ) then
if ( $status == 0 ) then 
    set rc1 = $status
    set rc2 = $status
    set rc3 = $status
    set rc4 = $status
    set rc5 = $status
    set rc6 = $status
    set rc7 = $status
    set rc8 = $status
> 
> 
> grep -e "= "'$'status"" /home/ewpadm/.sapenv_wzwms1.csh
    set rc1 = $status
    set rc2 = $status
    set rc3 = $status
    set rc4 = $status
    set rc5 = $status
    set rc6 = $status
    set rc7 = $status
    set rc8 = $status
> 
>  
shell
  • 1 respostas
  • 49 Views
Martin Hope
lylklb
Asked: 2022-12-06 04:52:31 +0800 CST

O operador lógico de && não pode funcionar dentro do padrão awk if regex

  • 5

Parece um pouco estranho que o operador lógico de && não possa funcionar dentro do padrão awk if regex, o que versus o operador lógico de || poderia funcionar bem!
Nota: mas o operador lógico de && pode funcionar dentro do padrão awk regex puro e simples, então por quê?

# 
# 
# cat /etc/passwd|awk '$0 ~/[Ss]ystem/ || /puls/ {print $0}'
dbus:x:81:81:System message bus:/:/sbin/nologin
pulse:x:497:495:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
# 
# 
# 
# cat /etc/passwd|awk '$0 ~/[Ss]ystem/ &&  /puls/ {print $0}'
pulse:x:497:495:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
# 
# 
# 
# cat /etc/passwd|awk '$0 ~/[Ss]ystem|puls/ {print $0}'
dbus:x:81:81:System message bus:/:/sbin/nologin
pulse:x:497:495:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
# 
# 
# 
# cat /etc/passwd|awk '{k1[NR]=$0}END{for(i=1;i<=NR;i++)if(k1[i] ~/[Ss]ystem/ || /puls/){print k1[i]}}'
dbus:x:81:81:System message bus:/:/sbin/nologin
pulse:x:497:495:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
# 
# 
# cat /etc/passwd|awk '{k1[NR]=$0}END{for(i=1;i<=NR;i++)if(k1[i] ~/[Ss]ystem/ && /puls/){print k1[i]}}'
# 
# 
# cat /etc/passwd|awk '{k1[NR]=$0}END{for(i=1;i<=NR;i++)if(k1[i] ~/[Ss]ystem/ && /puls/){print k1[i]}}'
# 
# 
# cat /etc/passwd|awk '$0 ~/[Ss]ystem/ &&  /puls/ {print $0}'
pulse:x:497:495:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
# 
# 


Agora, a situação mais recente pode se tornar muito mais estranha do que antes, depois que fiz algumas modificações!
Por que o mesmo padrão regex abaixo com a variável de matriz e o operador lógico && pode funcionar?
Nota: isso deve explicar que o problema de && dentro de alguns padrões if regex não tem nada a ver com a própria variável de array, pelo menos.
# 
# 
# cat /etc/passwd|awk '{k0[NR]=$0;if(k0[NR] ~/[Ss]ystem/ && /puls/){print k0[NR]}}'
pulse:x:497:495:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
# 
# 
# cat /etc/passwd|awk '{k0[NR]=$0;if(k0[NR] ~/[Ss]ystem/ || /puls/){print k0[NR]}}'
dbus:x:81:81:System message bus:/:/sbin/nologin
pulse:x:497:495:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
# 
# 
# cat /etc/passwd|awk '{k0[NR]=$0;if(k0[NR] ~/[Ss]ystem/ && /puls/){print k0[NR]}}'
pulse:x:497:495:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
# 
# 
awk
  • 3 respostas
  • 90 Views
Martin Hope
lylklb
Asked: 2022-09-21 04:26:06 +0800 CST

O comportamento estranho com a variável de comando | getline em awk

  • -5

Problema: o valor da variável de comando de li12[q]não pode ser referenciado como seu próprio conteúdo real.

Sintoma: Uma vez que eu realmente faço referência ao valor da variável de comando de li12[q], falhou com fatal: expressão para |redirecionamento tem valor de string nulo.

Notas:

  1. Mas a variável de comando de li12[q]tem seu próprio valor, que é exatamente o mesmo que a getlinevariável anterior de k5!
  2. A sintaxe e a estrutura correspondentes não devem ter problemas, pois o li12[q]próprio nome da variável de comando pode ser referenciado.
# 
# 
# lspci -v|grep -Ei "fib|scsi|raid|sas|net|ide|ata"|grep -i ^[0-9]|awk  '{kin1[NR]=$1; prt[NR]="";for(ik=2;ik<=NF;ik++){prt[NR]=prt[NR]$ik" "}}END\
{while("ls -l /sys/class|grep -Ei \"scsi|sas|fc|net|ide|ata\"|grep -Eiv \"disk|tape|device|gen\""|getline){li11[++h1]=$9}; for(i=1;i<=NR;i++)\
{for(s=1;s<=h1;s++){h2=0;d3="(find /sys/class/"li11[s]" -type l -exec bash -c '\''echo s `ls -l {}`'\'' \\;|grep -i devices|grep -Ei \""kin1[i]"(/|$)\")\
2>/dev/null"; while(d3|getline){k5=li12[++h2]=$10$11$12; k6=h2}; for(q=1;q<=h2;q++){if(li12[q] ~/[a-zA-Z]/){ while("echo -e \"li12[q]\""|getline k7); k2=k7; k3=$1;\
if( q == h2 ){s=h1+1}; if(q>1){kin1[i]=prt[i]=""};printf " %-16s%-6s%-16s%-16s%-100s%-16s\n",kin1[i],k6,k5,k3,prt[i],k2}}}}}'
 03:00.0         1     /sys/class/scsi_host/host0/device->../../../devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0s RAID bus controller: Hewlett-Packard Company Smart Array Gen8 Controllers (rev 01)                  li12[q]         
 04:00.0         1     /sys/class/net/eth0/device->../../../devices/pci0000:00/0000:00:02.0/0000:04:00.0s Ethernet controller: Emulex Corporation OneConnect 10Gb NIC (be3) (rev 01)                          li12[q]         
 04:00.1         1     /sys/class/net/eth1/device->../../../devices/pci0000:00/0000:00:02.0/0000:04:00.1s Ethernet controller: Emulex Corporation OneConnect 10Gb NIC (be3) (rev 01)                          li12[q]         
 04:00.2         1     /sys/class/iscsi_host/host3/device->../../../devices/pci0000:00/0000:00:02.0/0000:04:00.2/host3s Mass storage controller: Emulex Corporation OneConnect 10Gb iSCSI Initiator (be3) (rev 01)          li12[q]         
 04:00.3         1     /sys/class/iscsi_host/host4/device->../../../devices/pci0000:00/0000:00:02.0/0000:04:00.3/host4s Mass storage controller: Emulex Corporation OneConnect 10Gb iSCSI Initiator (be3) (rev 01)          li12[q]         
 05:00.0         1     /sys/class/fc_host/host1/device->../../../devices/pci0000:00/0000:00:03.0/0000:05:00.0/host1s Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02)             li12[q]         
 05:00.1         1     /sys/class/fc_host/host2/device->../../../devices/pci0000:00/0000:00:03.0/0000:05:00.1/host2s Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02)             li12[q]         
# 
# 
# 
# lspci -v|grep -Ei "fib|scsi|raid|sas|net|ide|ata"|grep -i ^[0-9]|awk  '{kin1[NR]=$1; prt[NR]="";for(ik=2;ik<=NF;ik++){prt[NR]=prt[NR]$ik" "}}END\         
{while("ls -l /sys/class|grep -Ei \"scsi|sas|fc|net|ide|ata\"|grep -Eiv \"disk|tape|device|gen\""|getline){li11[++h1]=$9}; for(i=1;i<=NR;i++)\
{for(s=1;s<=h1;s++){h2=0;d3="(find /sys/class/"li11[s]" -type l -exec bash -c '\''echo s `ls -l {}`'\'' \\;|grep -i devices|grep -Ei \""kin1[i]"(/|$)\")\
2>/dev/null"; while(d3|getline){k5=li12[++h2]=$10$11$12; k6=h2}; for(q=1;q<=h2;q++){if(li12[q] ~/[a-zA-Z]/){ while("echo -e "li12[q]""|getline k7); k2=k7; k3=$1; \
if( q == h2 ){s=h1+1}; if(q>1){kin1[i]=prt[i]=""};printf " %-16s%-6s%-16s%-16s%-100s%-16s\n",kin1[i],k6,k5,k3,prt[i],k2}}}}}'
awk: cmd. line:3: (FILENAME=- FNR=7) fatal: expression for `|' redirection has null string value
# 
#

EDIT aqui está o código acima formatado de forma muito mais legível, cortesia de @glennjackman:

lspci -v \
| grep -Ei "fib|scsi|raid|sas|net|ide|ata" \
| grep -i ^[0-9] \
| awk  '
    {
        kin1[NR] = $1
        prt[NR] = ""
        for (ik = 2; ik <= NF; ik++) {prt[NR] = prt[NR] $ik " "}
    }
    END {
        while ("ls -l /sys/class | grep -Ei \"scsi|sas|fc|net|ide|ata\" | grep -Eiv \"disk|tape|device|gen\"" | getline) {
            li11[++h1] = $9
        }
        for (i = 1; i <= NR;i++) {
            for (s = 1; s <= h1;s++) {
                h2 = 0
                d3 = "(find /sys/class/"li11[s]" -type l -exec bash -c '\''echo s `ls -l {}`'\'' \\; | grep -i devices | grep -Ei \""kin1[i]"(/|$)\") 2>/dev/null"
                while (d3 | getline){
                    k5 = li12[++h2] = $10 $11 $12
                    k6 = h2
                }
                for (q = 1; q <= h2;q++){
                    if (li12[q] ~/[a-zA-Z]/) {
                        while ("echo -e "li12[q]"" | getline k7)
                            k2 = k7
                        k3 = $1
                        if (q == h2) {s = h1+1}
                        if (q > 1) {kin1[i] = prt[i] = ""}
                        printf " %-16s%-6s%-16s%-16s%-100s%-16s\n", kin1[i], k6, k5, k3, prt[i], k2
                    }
                }
            }
        }
    }
'

Agora há um resultado/progresso com falha diferente com o mesmo script awk acima no sistema RHEL 6.4.
Notas: Todos os resultados anteriores com falha sobre o mesmo valor de cadeia nula são executados apenas nos sistemas RHEL 5.8.
sh: ../../../devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0: No such file or directory
 03:00.0         1     /sys/class/scsi_host/host0/device->../../../devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0s               RAID bus controller: Hewlett-Packard Company Smart Array Gen8 Controllers (rev 01)                                  
sh: ../../../devices/pci0000:00/0000:00:02.0/0000:04:00.0: No such file or directory
 04:00.0         1     /sys/class/net/eth0/device->../../../devices/pci0000:00/0000:00:02.0/0000:04:00.0s               Ethernet controller: Emulex Corporation OneConnect 10Gb NIC (be3) (rev 01)                                          
sh: ../../../devices/pci0000:00/0000:00:02.0/0000:04:00.1: No such file or directory
 04:00.1         1     /sys/class/net/eth1/device->../../../devices/pci0000:00/0000:00:02.0/0000:04:00.1s               Ethernet controller: Emulex Corporation OneConnect 10Gb NIC (be3) (rev 01)                                          
sh: ../../../devices/pci0000:00/0000:00:02.0/0000:04:00.2/host3: No such file or directory
 04:00.2         1     /sys/class/iscsi_host/host3/device->../../../devices/pci0000:00/0000:00:02.0/0000:04:00.2/host3s               Mass storage controller: Emulex Corporation OneConnect 10Gb iSCSI Initiator (be3) (rev 01)                          
sh: ../../../devices/pci0000:00/0000:00:02.0/0000:04:00.3/host4: No such file or directory
 04:00.3         1     /sys/class/iscsi_host/host4/device->../../../devices/pci0000:00/0000:00:02.0/0000:04:00.3/host4s               Mass storage controller: Emulex Corporation OneConnect 10Gb iSCSI Initiator (be3) (rev 01)                          
sh: ../../../devices/pci0000:00/0000:00:03.0/0000:05:00.0/host1: No such file or directory
 05:00.0         1     /sys/class/fc_host/host1/device->../../../devices/pci0000:00/0000:00:03.0/0000:05:00.0/host1s               Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02)                             
sh: ../../../devices/pci0000:00/0000:00:03.0/0000:05:00.1/host2: No such file or directory
 05:00.1         1     /sys/class/fc_host/host2/device->../../../devices/pci0000:00/0000:00:03.0/0000:05:00.1/host2s               Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02)  
awk
  • 2 respostas
  • 66 Views
Martin Hope
lylklb
Asked: 2019-03-21 07:06:34 +0800 CST

Por que partx não pode ler a tabela de partição de alguns discos

  • 2

partx não consegue ler a tabela de partição /dev/sdbneste sistema. Por que ele retorna esta 'falha ao ler a tabela de partição' mostrada abaixo, em vez de null/empty ? Este resultado de 'falha' sempre significa que a tabela de partições do dispositivo está danificada?

Notas: aqui o sdb pode funcionar bem como LVM sem qualquer partição!

    # pvs
      PV         VG                                        Fmt  Attr PSize    PFree  
      /dev/sda3  vgroot                                    lvm2 a--    89.00g   4.00m
      /dev/sda4  vgroot                                    lvm2 a--   746.78g 746.78g
      /dev/sdb   vgdata                                    lvm2 a--  <836.99g      0 

    # 
    # 
    # sfdisk -l /dev/sdb

    Disk /dev/sdb: 109262 cylinders, 255 heads, 63 sectors/track
    # 
    #
    # sfdisk -l /dev/sda

    Disk /dev/sda: 109262 cylinders, 255 heads, 63 sectors/track
    Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/sda1          0+ 109262- 109263- 877647871+  ee  GPT
    sfdisk:                 start: (c,h,s) expected (0,0,2) found (0,0,1)

    /dev/sda2          0       -       0          0    0  Empty
    /dev/sda3          0       -       0          0    0  Empty
    /dev/sda4          0       -       0          0    0  Empty
    # 
    # 
    # partx -s /dev/sdb 
    partx: /dev/sdb: failed to read partition table
    # 
    # partx -s /dev/sda
    NR     START        END    SECTORS   SIZE NAME                 UUID
     1      2048     411647     409600   200M EFI System Partition 255f05dd-3c30-4eb5-b4ef-e222216eb27e
     2    411648    2508799    2097152     1G                      0eba1772-1106-4a63-bad6-6d20be988dba
     3   2508800  189171711  186662912    89G                      39fab8c9-bd96-47a2-b5db-495e43159055
     4 189171712 1755295710 1566123999 746.8G                      9e3d6237-5c7f-4443-8b60-b258052a8b32

    # 
    # 
    # pvdisplay /dev/sdb
      --- Physical volume ---
      PV Name               /dev/sdb
      VG Name               vgdata
      PV Size               836.99 GiB / not usable 2.00 MiB
      Allocatable           yes (but full)
      PE Size               4.00 MiB
      Total PE              214269
      Free PE               0
      Allocated PE          214269
      PV UUID               IsOr0G-UBTt-Qn1E-bx6R-dzvY-HqSE-bNiCaq

    # 
    # 
    # lsb_release -a
        LSB Version:    :core-4.1-amd64:core-4.1-noarch
        Distributor ID: RedHatEnterpriseServer
        Description:    Red Hat Enterprise Linux Server release 7.4 (Maipo)
        Release:        7.4
        Codename:       Maipo
    # 
    # 

Outra fragrância do sistema:

O seguinte partx pode produzir diretamente nulo/vazio sem qualquer partição, por que?
Notas: o seguinte sdb também pode funcionar bem como LVM sem qualquer partição!

# 
# 
# partx  /dev/sdb
# 
# 
# 
# pvdisplay  /dev/sdb
  --- Physical volume ---
  PV Name               /dev/sdb
  VG Name               vgdoc
  PV Size               600.00 GB / not usable 4.00 MB
  Allocatable           yes (but full)
  PE Size (KByte)       4096
  Total PE              153599
  Free PE               0
  Allocated PE          153599
  PV UUID               mMPvrE-NBP5-9n3J-77w5-57p0-1R7E-ggFCEj

# 
#  
# 
# lsb_release -a
LSB Version:    :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: RedHatEnterpriseServer
Description:    Red Hat Enterprise Linux Server release 5.5 (Tikanga)
Release:        5.5
Codename:       Tikanga
# 
# 

1) Meu pensamento é que o partx não deve sair com "falha ao ler ..." se o disco realmente não tiver partição.
Notas: como você pode ver, o partx apenas produz nulo/vazio em outro sistema com o disco não particionado.

2) É normal que os PV/LVMs possam ser criados e usados ​​nas partições do disco, não é?

 Device Boot Start     End   #cyls    #blocks   Id  System
   /dev/sda1   *      0+     25-     26-    204800   83  Linux
   /dev/sda2         25+  36404-  36380- 292215808   8e  Linux LVM
partition sfdisk
  • 1 respostas
  • 2199 Views
Martin Hope
lylklb
Asked: 2018-06-07 06:42:58 +0800 CST

A última linha de comando no script de shell sem uma nova linha

  • 4

Por que a última linha de comando no script de shell ( uptimeabaixo) pode ser executada com sucesso sem a nova linha no final do arquivo?

Por exemplo:

root@jcdb:/tmp# 
root@jcdb:/tmp# 
root@jcdb:/tmp# cat dp
date
pwd
uptimeroot@jcdb:/tmp# 
root@jcdb:/tmp# 
root@jcdb:/tmp# 
root@jcdb:/tmp# ./dp
Wed Jun  6 16:27:26 EAT 2018
/tmp
  4:27pm  up 1 day, 17:25,  2 users,  load average: 0.39, 0.40, 0.41
root@jcdb:/tmp# 
root@jcdb:/tmp#
shell-script
  • 1 respostas
  • 783 Views
Martin Hope
lylklb
Asked: 2017-12-03 00:56:25 +0800 CST

Comportamento estranho para localizar se o padrão seguinte -name não estiver entre aspas

  • 0

É tão estranho que às vezes o seguinte padrão de -name em find poderia pesquisar inesperadamente todos os nomes de arquivos correspondentes com sucesso. Por direitos, ele só poderia pesquisar um nome de arquivo correspondente no diretório atual por meio da análise do shell (não encontrar utilitário sem aspas).

find /tmp -type f -name *.txt

/tmp/amp_iostat.txt
/tmp/awrrpt_1_7950_7973.txt
/tmp/oplanlog/osys/2014-07-01-12-26-28/log.txt
/tmp/oplanlog/osys/2014-07-01-13-15-33/log.txt
/tmp/oplanlog/osys/2014-07-01-13-17-58/log.txt
/tmp/oplanlog/osys/2014-07-01-13-30-27/log.txt
/tmp/oplanlog/osys/2016-10-27-19-38-50/log.txt
/tmp/pms2_20170427.txt
/tmp/pmsdb1_20170622.txt
/tmp/pmssh1_20160728.txt
/tmp/pmssh1_20160831.txt
/tmp/pmssh1_20161227.txt
/tmp/pmssh1_20170328.txt
/tmp/pmssh1_20170523.txt
/tmp/pmssh1_20170727.txt
/tmp/pmssh1_20170822.txt
/tmp/pmssh2_20170328.txt
/tmp/pmssh_20170119.txt
/tmp/pmssh_20170220.txt
/tmp/sgpms_20140717_1736_summary.txt
/tmp/sgpms_20140717_1736_trace.txt
/tmp/sgpms_20140717_1737_summary.txt
/tmp/sgpms_20140717_1737_trace.txt
/tmp/sgpms_20140717_1739_summary.txt
/tmp/sgpms_20140717_1739_trace.txt
/tmp/sgpms_20140717_1743_summary.txt
/tmp/sgpms_20140717_1743_trace.txt
/tmp/sgpms_20140717_1749_summary.txt
/tmp/sgpms_20140717_1749_trace.txt
/tmp/sgpms_20140717_1751_summary.txt
/tmp/sgpms_20140717_1751_trace.txt

find /tmp -type f -name *.txt|wc -l
      31
find
  • 1 respostas
  • 69 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