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

iBug's questions

Martin Hope
iBug
Asked: 2020-02-02 09:32:25 +0800 CST

Como adicionar uma regra de roteamento IPv6 com systemd-networkd?

  • 1

Estou executando no systemd 242 (Ubuntu Eoan) e estou tentando fazer algo equivalente ao seguinte iproute2comando com systemd-networkd:

ip -6 rule add from all table 1 pref 1000

Isso é o que eu tenho, /etc/systemd/network/10-eno1.networkmas não está funcionando:

[RoutingPolicyRule]
Table=1
Priority=1000
Family=ipv6

Eu também tentei Family=both, mas apenas a regra v4 foi gerada.

Eu li todo o https://systemd.network/systemd.network.html#%5BRoutingPolicyRule%5D%20Section%20Options , mas ainda não sei o que está errado.

Eu quero fazer isso com systemd-networkde não estou interessado em uma solução escrevendo um serviço com ExecStart=/sbin/ip blah blahou similar.

systemd systemd-networkd
  • 1 respostas
  • 296 Views
Martin Hope
iBug
Asked: 2020-01-13 07:21:24 +0800 CST

iproute2 tabela 0 é diferente da tabela local

  • 1

Todos nós sabemos que esses comandos geram a mesma saída:

ip route list
ip route list table 254
ip route list table main

E este comando lista algumas regras especiais relacionadas a endereços locais e de broadcast:

ip route list table local

No entanto, substituir localpor zero (conforme listado em /etc/iproute2/rt_tables) gera muita saída:

ip route list table 0

Por que o último comando é tão diferente?

linux iproute
  • 1 respostas
  • 704 Views
Martin Hope
iBug
Asked: 2019-12-06 06:08:09 +0800 CST

Excluir uma interface de vínculo criada em /etc/network/interfaces (ifupdown)?

  • 4

Fiz uma tentativa de unir duas interfaces em uma, criei bond0, e achei insatisfatório. Em seguida, reverti todas as alterações feitas /etc/network/interfacese executei systemctl restart networking.service, mas a interface de vínculo ainda existia (aparece ifconfige ip linkcomanda) e tive que executar ip link set bond0 downou ifconfig bond0 downforçar a expulsão. Como removo completamente esta interface sem reiniciar o servidor?

Estou no Debian Buster. O arquivo era originalmente assim:

auto eno1
iface eno1 inet static
    # regular network settings like address, netmask, gateway etc.
auto eno2
iface eno2 inet static
    # regular network settings like address, netmask, gateway etc.

Transformei as duas interfaces em um vínculo, alterando-o para isso:

auto eno1
iface eno1 inet manual
    bond-master bond0
auto eno2
iface eno2 inet manual
    bond-master bond0

auto bond0
iface bond0 inet static
    # regular network settings like address, netmask, gateway etc.
linux networking
  • 2 respostas
  • 28393 Views
Martin Hope
iBug
Asked: 2019-11-26 10:31:03 +0800 CST

Definir métricas de roteamento para IPs estáticos com systemd-networkd?

  • 5

Recentemente, configurei um servidor com sua rede gerenciada diretamente por systemd-networkd(nuked netplan.ioe Network Manager) e dei IPs estáticos como este:

/etc/systemd/network/10-ethernet.network

[Match]
Name=eno1

[Network]
Address=192.168.1.2/24
Gateway=192.168.1.1
DNS=192.168.1.1

Após reiniciar systemd-networkd.service, as rotas padrão ficam assim:

default via 192.168.1.1 dev eno1 proto static
default via 172.16.0.1 dev eno2 proto static
default via 172.31.255.1 dev eno3 proto static
                                               ^^^

Como existem vários NICs e quero fazer eno1o preferido, quero que as rotas sejam definidas assim:

default via 192.168.1.1 dev eno1 proto static metric 100
default via 172.16.0.1 dev eno2 proto static metric 300
default via 172.31.255.1 dev eno3 proto static metric 500
                                               ^^^^^^^^^^

Sem o metricvalor, o padrão é 0, o que significa que todas as rotas têm a mesma prioridade (mais alta), o que quero evitar.

Já tentei esta configuração:

[Route]
Gateway=192.168.1.1
Metric=100

Mas ele só gera uma rota extra com a métrica desejada enquanto as originais (missing metric) ainda permanecem.

Estou executando no Systemd 240. Como devo fazer isso?

networking systemd
  • 1 respostas
  • 4204 Views
Martin Hope
iBug
Asked: 2019-11-06 21:26:02 +0800 CST

SSH User CA: Assinar um certificado de usuário com hosts selecionados em vez de todos os hosts?

  • 2

Eu tenho muitos servidores que compartilham um arquivo TrustedUserCAKeys. Eu quero assinar um certificado de usuário para que ele conceda algum acesso a servidores específicos em vez de todos eles.

Por exemplo, o comando a seguir gera um certificado que pode ser usado para efetuar login como root em todos os servidores:

ssh-keygen -s ca -I example -n root id_rsa.pub

Eu tentei o seguinte comando, mas ele gera um certificado que é... inútil.

ssh-keygen -s ca -I example -n root@server1 id_rsa.pub

Eu pretendia gerar um certificado que só pode entrar como root no servidor1, mas não como root em nenhum outro servidor. Certifiquei-me de que server1é o FQDN nesse servidor (ou o conteúdo completo de /etc/hostname). Existe uma maneira de conseguir isso sem tocar sshd_configem nenhum host?

ssh
  • 2 respostas
  • 1388 Views
Martin Hope
iBug
Asked: 2019-04-27 07:27:06 +0800 CST

Qual é a especificação POSIX sobre o comportamento de comandos internos com redirecionamentos e/ou tubulação?

  • 5

Considere os seguintes comandos:

exit > /dev/null
exit | cat

Em alguns shells (ksh, bash, (d)ash), o comportamento é o mesmo: o primeiro comando faz com que o shell seja encerrado imediatamente, enquanto o segundo não tem comportamento visível.

Concluí que o primeiro comando não envolvia um fork(2), enquanto o segundo comando envolvia dois (um para executar exit, o outro execve(2)s para cat).

Eu olhei para a seção de especificação POSIX 2.14, mas não encontrei nada explicitamente afirmando isso.

É especificado pelo POSIX que alguns comandos não devem ser bifurcados (2) enquanto outros devem? A geração de um subshell para o primeiro comando é aceitável pelo padrão?


Estou ciente de que ( exit )nunca deve sair do shell atual, porque os parênteses geram um sub-shell que realmente executa o exitcomando, o que significa que o sub-shell sairá imediatamente. No entanto, não tenho certeza sobre redirecionamentos e tubulação, pois não há parênteses aqui.

Estou fazendo esta pergunta porque em um laboratório de curso recente, nos disseram para implementar um shell Unix mínimo. Existem muitos "recursos opcionais" que podemos implementar, para pontos adicionais. Um desses "recursos opcionais" é o redirecionamento e o pipeline combinados. Tivemos algumas implementações diferentes e acredito que algumas estão mais próximas do comportamento especificado do POSIX do que outras e, portanto, gostaria de saber como o comportamento real é especificado.

shell pipe
  • 2 respostas
  • 642 Views
Martin Hope
iBug
Asked: 2019-04-26 01:45:37 +0800 CST

O que significa a parte principal do PS1 padrão do Bash no Ubuntu?

  • 2

Este é o $PS1meu shell Bash em um Ubuntu 18.04 recém-instalado:

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \$

Eu posso entender bem todas as outras partes do prompt:

  • ${debian_chroot:+($debian_chroot)}: Se estiver definido, mostre-o, mas adicione parênteses ao redor; se não estiver definido, não mostrar nada
  • \[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \$: Prompt padrão user@host:cwd $com cores habilitadas usando sequências de escape CSI

Estou confuso com a primeira parte:

\[\e]0;\u@\h: \w\a\]

AFAIK, \[e \]expande para \001e \002para dizer ao GNU readline que os caracteres entre eles não devem ser contados para "comprimento do prompt". A pergunta se resumiria ao significado disso:

\e]0;\u@\h: \w\a

É <ESC>]0;user@host: cwd<ALARM>. O que isso faz? (Nota: CSI <ESC>[não é <ESC>], ou eu teria entendido)

bash prompt
  • 1 respostas
  • 696 Views
Martin Hope
iBug
Asked: 2019-03-25 23:09:05 +0800 CST

Por que o root não precisa da senha para executar "sudo" mesmo quando "NOPASSWD:ALL" não está escrito em /etc/sudoers [duplicado]

  • 6
Essa pergunta já tem respostas aqui :
Por que o `root` pode executar qualquer comando como qualquer usuário sem fornecer senha? (2 respostas)
Fechado há 3 anos .

Em /etc/sudoers, há sempre:

root    ALL=(ALL:ALL) ALL

No entanto, o usuário root (com UID 0) não precisa digitar a senha ao executar sudo command.

Para outros usuários, uma senha é necessária, a menos que sua entrada contenha NOPASSWDou uma autenticação anterior não tenha expirado:

user    ALL=(ALL:ALL) NOPASSWD:ALL
                      ^^^^^^^^
linux sudo
  • 2 respostas
  • 1115 Views
Martin Hope
iBug
Asked: 2019-02-21 02:38:00 +0800 CST

Por que as leituras de /dev/zero não contam como IO_RBYTES?

  • 26

Estou esvaziando um disco rígido em algum sistema operacional Linux 4.x usando este comando:

sudo sh -c 'pv -pterb /dev/zero > /dev/sda'

E eu abri outro tty e comecei sudo htope notei isso:

  PID USER      PRI  NI CPU%   RES   SHR   IO_RBYTES   IO_WBYTES S   TIME+  Command
 4598 root       20   0 15.5  1820  1596        4096    17223823 D  1:14.11 pv -pterb /dev/zero

O valor para IO_WBYTESparece bastante normal, mas IO_RBYTESpermanece em 4 KiB e nunca muda.

Eu executei alguns outros programas, por exemplo

dd if=/dev/zero of=/dev/zero
cat /dev/zero > /dev/zero

e fiquei surpreso ao ver que nenhum deles gera muito IO_RBYTESou IO_WBYTES.

Eu acho que isso não é específico para nenhum programa, mas por que não lê /dev/zeroe grava para /dev/{zero,null}contar como bytes de E/S?

linux devices
  • 1 respostas
  • 3066 Views
Martin Hope
iBug
Asked: 2019-02-14 02:39:35 +0800 CST

tmux altera o diretório de trabalho padrão de uma sessão sem anexar

  • 0

Estou procurando uma maneira de fazer algo assim sem anexar à sessão.

tmux attach-session -c <directory> -t <session>
                    ^^^^^^^^^^^^^^

Por tmux(1), não há uma maneira de alterar o diretório de trabalho padrão (novas janelas e novos painéis) de uma sessão inteira sem anexá-lo.

Não consigo anexar à sessão porque estou fazendo isso em alguns scripts automatizados em que a anexação interromperia a automação.

tmux pwd
  • 2 respostas
  • 822 Views
Martin Hope
iBug
Asked: 2018-10-21 21:45:22 +0800 CST

Monitore o tráfego de rede de um processo e toda a sua árvore de subprocessos

  • 5

Eu quero saber a quantidade de tráfego de rede (entrada e saída) em um período de tempo, gerou um processo específico e todos os subprocessos que ele gera.

Eu desenvolvi um software que contém um "gerenciador de tarefas" que funciona para sempre e não gera tráfego de rede por conta própria. Em vez disso, gera "trabalhadores" filhos que fazem o trabalho principal, incluindo a maior parte do tráfego de rede. O ponto complicado é que vários "trabalhadores" podem trabalhar simultaneamente e espera-se que um único processo de trabalho seja encerrado após um curto período (algumas horas). Além disso, esses trabalhadores também geram mais subprocessos que geram tráfego como git fetchesse que também precisa ser monitorado.

Haverá apenas uma instância de "job manager" e ela pode ser iniciada ou encerrada sob demanda no meu servidor de desenvolvimento e teste, que executa o Ubuntu Server 18.04, arquitetura amd64.

Eu quero monitorar o tráfego de rede de todos os trabalhadores e os processos que os trabalhadores geram, por um período prolongado (uma semana ou mais). Há uma solução?

networking process
  • 1 respostas
  • 360 Views
Martin Hope
iBug
Asked: 2018-09-17 02:44:17 +0800 CST

`less` tem um desempenho diferente quando invocado do Bash e do Git

  • 8

Quando vejo um grande diff com git diff, ele é paginado com less. Isso é confirmado abrindo outra janela e verificando os dados de ps -auxe /proc.

No entanto, quando lessé invocado pelo Git, ele não reverte o conteúdo do terminal para seu estado anterior após bater q(o conteúdo diff permanece no terminal). Mas quando eu faço

git diff commit1 commit2 --color | less -R

e saia lesscom uma tecla q, o conteúdo desaparece e o terminal volta ao estado anterior.

Mais interessante, se eu fizer isso

export PAGER=less LESS='-R'

e invocar git diff(ou qualquer outro comando que chame um pager), lessse comporta da mesma forma como se fosse invocado diretamente do shell Bash.

eu

Aqui está uma breve captura de tela descrevendo minha pergunta. No painel esquerdo, o comando é executado da seguinte forma:

unset PAGER GIT_PAGER LESS
git diff HEAD^ HEAD

No painel direito você vê os comandos. O último commit foi de mais de 100 linhas de yescrita em um arquivo. Em ambos os painéis lesssai-se com a tecla q.

Alguém pode me dizer o que é diferente e explicar o porquê?

less git
  • 1 respostas
  • 1764 Views
Martin Hope
iBug
Asked: 2018-06-30 22:07:12 +0800 CST

Como o `less` pega dados do stdin enquanto ainda consegue ler comandos do usuário?

  • 49

Como a maioria de vocês já fez muitas vezes, é conveniente visualizar o texto longo usando less:

some_command | less

Agora seu stdin está conectado a um pipe (FIFO). Como ele ainda pode ler comandos como up/down/quit?

less
  • 2 respostas
  • 3966 Views
Martin Hope
iBug
Asked: 2018-03-15 22:10:17 +0800 CST

É possível que um programa obtenha o número de espaços entre os argumentos da linha de comando no POSIX?

  • 23

Digamos se eu escrevi um programa com a seguinte linha:

int main(int argc, char** argv)

Agora ele sabe quais argumentos de linha de comando são passados ​​para ele, verificando o conteúdo de argv.

O programa pode detectar quantos espaços entre os argumentos? Como quando eu digito isso no bash:

ibug@linux:~ $ ./myprog aaa bbb
ibug@linux:~ $ ./myprog       aaa      bbb

O ambiente é um Linux moderno (como o Ubuntu 16.04), mas suponho que a resposta deva se aplicar a qualquer sistema compatível com POSIX.

shell command-line
  • 6 respostas
  • 4703 Views
Martin Hope
iBug
Asked: 2018-01-14 00:37:29 +0800 CST

Remover bytes nulos do final de um arquivo grande

  • 5

Acabei de fazer backup do cartão microSD do meu Raspberry Pi no meu PC executando uma distribuição Linux usando este comando:

dd if=/dev/sdx of=file.bin bs=16M

O cartão microSD está apenas 3/4 cheio, então suponho que haja alguns shows de bytes nulos no final do tremendo arquivo. Tenho certeza de que não preciso disso. Como posso retirar esses bytes nulos do final de forma eficiente para que eu possa restaurá-los posteriormente com este comando?

cat file.bin /dev/zero | dd of=/dev/sdx bs=16M
files dd
  • 6 respostas
  • 4976 Views
Martin Hope
iBug
Asked: 2018-01-07 19:53:23 +0800 CST

Usar /dev/ramX como seus dispositivos especiais correspondentes?

  • 0

Com ls -l, encontrei uma série de dispositivos como ram0, ram1etc. Observei a saída de perto e (por exemplo)

brw------- 1 root root 1, 3 Jan  6 11:34 /dev/ram3
crw-rw-rw- 1 root root 1, 3 Jul 15  1970 /dev/null

Hmmm, eles diferem apenas pelo tipo de dispositivo (bloco e caractere). Tentei ler e gravar em ram3, mas, para minha surpresa, consigo ler um bloco de 8 MiB de zero bytes dele e não consigo gravar mais de 8 MiB nele, pois pensei que poderia receber imediatamente um EOF ao ler e poderia escrever infinitamente para ele.

Em seguida, tentei outros rams, mas o mais surpreendente é que todos se comportam da mesma forma. /dev/ram8não gera coisas aleatórias como /dev/randomfaz, /dev/ram7não informa "disco cheio" como /dev/full...

Então eu tentei mknod-ing tudo no meu diretório de trabalho (tipo de montagem: ext4), e os resultados são os mesmos: os dispositivos de caracteres se comportam da mesma forma /dev/null,full,zero,randome os dispositivos de bloco são iguais aos/dev/ramX

Então comecei a me perguntar:

  • Como é /dev/ramXdiferente de /dev/<device>com o mesmo número de dispositivo?
  • Como explicar o material vazio de 8 MiB (todos zero) quando lido e o limite de gravação de 8 MiB para esses dispositivos de bloco?

Acho que as respostas devem se aplicar a todos os sistemas de kernel Linux.

(Nota lateral: 8 MB = 8.000.000 bytes e 8 MiB = 8.388.608 bytes)

linux devices
  • 1 respostas
  • 301 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