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

Wildcard's questions

Martin Hope
Wildcard
Asked: 2024-02-03 04:03:44 +0800 CST

Por que `less` mostra "Esta conta não está disponível" quando executado em um arquivo a partir de um shell de login root?

  • 10

Isso não é realmente um problema, apenas uma peculiaridade que gostaria de entender.

Se eu obtiver um shell root sudo bash -le depois executar, less somefilenamerecebo menos apenas mostrando:

Esta conta não está disponível no momento.

(Isso não é mostrado como um erro , é mostrado dentro de less como se fosse o conteúdo do arquivo.)

No entanto, se eu usar o mesmo shell raiz sudo bash -le executar cat somefilename | less, verei o conteúdo real do arquivo.

Além disso, se eu obtiver um shell de root sudo bashe pular -le executá-lo, less somefilenameele mostrará o conteúdo do arquivo.

O login do Root está desabilitado; a /etc/passwdlinha é root:x:0:0:root:/root:/sbin/nologintão sudo su -não funciona.

Mas, por que a nologinentrada deveria fazer alguma diferença na execução lessde um arquivo? E por que só faz diferença se lessfor executado diretamente no arquivo, em vez de também aplicar menos execução em seu stdin? E por que isso só acontece com um bash -lshell?

(Isso está em um sistema CentOS 7.)

sudo
  • 1 respostas
  • 337 Views
Martin Hope
Wildcard
Asked: 2019-09-19 17:20:17 +0800 CST

Qual é a maneira nativa do systemd de gerenciar os tamanhos do buffer de anel da NIC antes que as interfaces vinculadas sejam configuradas?

  • 2

Gerenciar tamanhos de buffer de anel NIC com ethtool é simples, por exemplo:

ethtool -G eth0 rx 4096 tx 4096

(Ou substitua eth0por qualquer interface que você precise gerenciar.)

Fazer isso ao vivo é fácil.

O problema é que, quando você faz isso em cada interface escrava que faz parte de uma interface vinculada, você atrapalha o vínculo. (Os IDs do agregador, em muitos casos, não corresponderão depois da maneira como antes.) EDIT: Aprendi que esse não é um comportamento esperado. (Posso atualizar quando souber mais sobre por que isso aconteceu no caso que observei.)

No RHEL 7, você pode definir o tamanho do buffer de anel para aparecer no momento da inicialização, definindo o ETHTOOL_OPTSvalor /etc/sysconfig/network-scripts/ifcfg-eth0para (por exemplo) ETHTOOL_OPTS="-G ${DEVICE} rx 4096 tx 4096"(conforme o artigo de acesso Red Hat ). (Aviso: não testei se isso realmente evita a incompatibilidade de ID do agregador mencionada acima.)

No entanto, para o Ubuntu 18.04, não existe um lugar tão óbvio e fácil de procurar.

Eu mergulhei na documentação do netplan, na documentação da rede do systemd e no networkd-dispatcher.

Um colega meu surgiu com uma solução usando networkd-dispatcher que parece funcionar, mas não está claro se ainda pode haver condições de corrida envolvidas, de modo que apenas funcione , em vez de ser garantido para definir os tamanhos do buffer de anel antes do ligação de interface está configurada. Vou postar isso abaixo (mais tarde), mas não sei se é a resposta correta. (Além disso, não é mencionado em nenhuma documentação do systemd.)

Então a pergunta é:

Qual é a maneira nativa do systemd de gerenciar tamanhos de buffer de anel para interfaces ethernet no momento da inicialização antes que essas interfaces sejam vinculadas?

systemd
  • 2 respostas
  • 4344 Views
Martin Hope
Wildcard
Asked: 2019-07-26 16:42:15 +0800 CST

Desative a titulação da janela dinâmica da tela GNU para a sessão de tela inteira

  • 4

Eu encontrei:

  • Incômodo para renomear a janela da tela GNU

No entanto, nenhuma das respostas resolve meu problema e minha situação é um pouco diferente da pergunta vinculada.

Trabalho em uma grande infraestrutura onde posso fazer login em qualquer uma das centenas de hosts em um determinado dia. Não tenho autoridade para gerenciar o padrão PROMPT_COMMANDem todos esses servidores.

Eu li a seção da página man sobre como nomear janelas ( LESS='+/^TITLES' man screen) e não vejo nenhuma solução para o meu problema.

Como posso fazer com que minhas janelas na tela MANTENHAM os títulos que defini (com Ctrl-A A) independentemente das configurações nos servidores em que faço login a partir da minha sessão de tela?

(Exemplo de caso de uso: eu posso ter uma janela intitulada "db-hosts" onde posso fazer login em uma amostragem aleatória de hosts de banco de dados para verificá-los, fazendo logout de qualquer um quando terminar de verificar e fazendo login em um diferente. )

gnu-screen prompt
  • 1 respostas
  • 703 Views
Martin Hope
Wildcard
Asked: 2019-01-08 19:00:16 +0800 CST

Procurar três novas linhas consecutivas?

  • 3

Eu sei que espremer várias linhas em branco pode ser feito usando cat -s(e espremer todas as linhas em branco pode ser feito usando tr -s '\n'), mas estou curioso para pesquisar essa condição em um fluxo de entrada.

Achei que stream-of-input | grep -qz $'\n\n\n'ia dar certo, mas não dá.

Existe uma maneira de fazer essa pesquisa com ferramentas simples?

Em outras palavras, leia a entrada e saia com um status zero se três bytes consecutivos forem caracteres de nova linha ou saia com um status diferente de zero se o EOF for atingido sem encontrar três caracteres de nova linha consecutivos.

grep search
  • 2 respostas
  • 570 Views
Martin Hope
Wildcard
Asked: 2018-12-05 15:29:55 +0800 CST

O que exatamente o `ps -p PID` faz que o `ps -q PID` não faz?

  • 6

De acordo com man ps:

   -p pidlist
          Select by PID.  This selects the processes whose process ID
          numbers appear in pidlist.  Identical to p and --pid.

   -q pidlist
          Select by PID (quick mode).  This selects the processes
          whose process ID numbers appear in pidlist.  With this
          option ps reads the necessary info only for the pids listed
          in the pidlist and doesn't apply additional filtering
          rules. The order of pids is unsorted and preserved. No
          additional selection options, sorting and forest type
          listings are allowed in this mode.  Identical to q and
          --quick-pid.

Vejo que -qé consideravelmente mais rápido do que -p, levando no máximo um quarto do tempo para produzir uma listagem idêntica.

Por exemplo:

$ time ps -fq "$$"
UID        PID  PPID  C STIME TTY          TIME CMD
vagrant   8115  3337  0 23:05 pts/0    00:00:00 bash

real    0m0.003s
user    0m0.001s
sys 0m0.002s
$ time ps -fp "$$"
UID        PID  PPID  C STIME TTY          TIME CMD
vagrant   8115  3337  0 23:05 pts/0    00:00:00 bash

real    0m0.013s
user    0m0.003s
sys 0m0.009s
$

Em outro sistema, observei ps -qlevar menos de um décimo do tempo de ps -p.

No entanto, não estou usando uma listagem do tipo floresta e passei apenas um único PID para que a classificação não demore (e a classificação deve ser insignificante de qualquer maneira para listas PID moderadamente curtas). Não há regras de filtragem adicionais no meu comando.

O que tudo está ps -pfazendo que ps -qnão está?

ps performance
  • 2 respostas
  • 10559 Views
Martin Hope
Wildcard
Asked: 2018-10-06 16:20:40 +0800 CST

history -a não funciona no bash

  • 2

Estou fazendo algo errado? Acho que estou seguindo as instruções da página de manual, e isso não está surtindo nenhum efeito.

[501] $ history | tail
  492  echo 3
  493  echo 4
  494  echo 5
  495  echo 6
  496  echo 7
  497  echo 8
  498  echo 9
  499  echo 10
  500  PS1='[\!] \$ '
  501  history | tail
[502] $ tail ~/.bash_history 
echo 1
echo 2
echo 3
echo 4
echo 5
echo 6
echo 7
echo 8
echo 9
echo 10
[503] $ history -a
[504] $ tail ~/.bash_history 
echo 1
echo 2
echo 3
echo 4
echo 5
echo 6
echo 7
echo 8
echo 9
echo 10
[505] $ bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin15)
Copyright (C) 2007 Free Software Foundation, Inc.
[506] $ 

A saída do comando não deveria tail ~/.bash_historyser diferente na segunda vez?

bash command-history
  • 1 respostas
  • 2121 Views
Martin Hope
Wildcard
Asked: 2018-09-06 12:41:16 +0800 CST

De onde vem o 'homem 7 não documentado'?

  • 6

No Ubuntu 16.04, obtive o seguinte:

ubuntu@ubuntu-xenial:~$ man 2 chmod
No manual entry for chmod in section 2
See 'man 7 undocumented' for help when manual pages are not available.
ubuntu@ubuntu-xenial:~$ man 7 undocumented
No manual entry for undocumented in section 7
ubuntu@ubuntu-xenial:~$

Depois de instalar manpages-dev(e ubuntu-docs) eu tenho a página man para chmod(2). Mas ainda não tenho a página de manual para undocumented(7).

Qual pacote deve fornecer esta página de manual?

(Isso está usando a caixa oficial do Xenial 64 Vagrant.)

ubuntu man
  • 1 respostas
  • 1691 Views
Martin Hope
Wildcard
Asked: 2018-09-01 18:07:45 +0800 CST

O que há de "quebrado" na semântica de herança do cpuset cgroup no kernel do Linux?

  • 5

Para citar o anúncio do systemd de 2013 da nova interface do grupo de controle (com ênfase adicionada):

Observe que o número de atributos de cgroup atualmente expostos como propriedades de unidade é limitado. Isso será estendido mais tarde, à medida que suas interfaces de kernel forem limpas. Por exemplo , cpuset ou freezer não são expostos atualmente devido à semântica de herança quebrada da lógica do kernel. Além disso, a migração de unidades para uma fatia diferente em tempo de execução não é suportada (ou seja, alterar a propriedade Slice= para unidades em execução), pois o kernel atualmente não possui movimentos de subárvore de cgroup atômicos.

Então, o que está quebrado sobre a semântica de herança da lógica do kernel para cpuset(e como essa falha não se aplica a outros controladores cgroup como cpu)?

Há um artigo no site da RedHat dando uma solução não verificada de como usar cgroup cpusets no RHEL 7 apesar de sua falta de suporte como propriedades de unidade systemd fáceis de gerenciar... mas isso é mesmo uma boa ideia? A citação em negrito acima é preocupante.

Para colocar de outra forma, quais são as "pegadinhas" (armadilhas) que podem se aplicar ao uso do cgroup v1 cpuset que estão sendo referenciados aqui?


Estou começando uma recompensa por isso.

As possíveis fontes de informação para responder a esta pergunta (sem ordem especial) incluem:

  1. documentação do cgroup v1;
  2. código-fonte do kernel;
  3. Resultado dos testes;
  4. experiência do mundo real.

Um significado possível da linha em negrito na citação acima seria que quando um novo processo é bifurcado, ele não permanece no mesmo cgroup cpuset que seu pai, ou que está no mesmo cgroup, mas em algum tipo de status "não imposto" pelo qual ele pode realmente estar sendo executado em uma CPU diferente do que o cgroup permite. No entanto, isso é pura especulação da minha parte e preciso de uma resposta definitiva.

systemd cgroups
  • 3 respostas
  • 3271 Views
Martin Hope
Wildcard
Asked: 2018-07-17 23:19:14 +0800 CST

Um descritor de arquivo NÃO é aberto?

  • 1

Claro que um arquivo pode ser aberto ou não aberto.

No entanto, um descritor de arquivo, por definição, refere-se a um arquivo aberto (certo?). (Bem, exceto quando se refere a algo além de um arquivo, como um cachimbo ou o que você tiver. Mas ainda está aberto.)

Eu encontrei a frase "descritor de arquivo aberto" várias vezes. Acredito que isso seja redundante e que, de fato, não haja outro tipo de descritor de arquivo além de um descritor de arquivo aberto - mas gostaria de verificar isso.

Um descritor de arquivo está em algum outro estado além de "aberto"? (Quando está fechado, não deixa de existir?)

file-descriptors open-files
  • 2 respostas
  • 1122 Views
Martin Hope
Wildcard
Asked: 2017-12-15 21:58:06 +0800 CST

Como o Bash lida com aspas na seção de substituição de string da expansão de parâmetros?

  • 8

Existe alguma lógica consistente nisso?

some-command "${somevariable//some pattern/'how does this get parsed?'}"

Postei algumas conclusões e testes brutos abaixo como uma "resposta", mas eles não são uma resposta completa de forma alguma. A página de manual do Bash parece silenciosa sobre o assunto.

bash quoting
  • 3 respostas
  • 2414 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