De onde sysctl -a imprime todos os parâmetros do kernel?

3

Nós temos uma máquina Linux (Redhat 6)

Quando imprimimos todos os parâmetros de /etc/sysctl.conf , vemos apenas ~ 20 mas quando executamos sysctl -a , vemos mais de 200.

Então, de onde sysctl -a imprime todos esses parâmetros?

Ou, por exemplo, quando fazemos

sysctl -w variable=value

como saber onde a variável deve ser salva?

Como conhecer cada parâmetro se é dinâmico ou estático?

    
por yael 04.04.2017 / 08:54

2 respostas

2

As configurações

Sysctl são armazenadas no kernel. Essas configurações influenciam o comportamento do kernel; Basicamente, são variáveis do kernel que programas rodando no sistema podem ler e escrever.

Quando o kernel inicializa, cada configuração sysctl tem um valor padrão. Esse valor pode ser alterado a qualquer momento por um programa como o comando sysctl ou, no Linux, gravando no arquivo correspondente em /proc/sys .

O arquivo /etc/sysctl.conf não determina o valor das configurações no tempo de execução. É usado apenas no momento da inicialização para alterar algumas configurações do valor padrão compilado no kernel. Se você fez algumas alterações em /etc/sysctl.conf , você pode aplicá-las como um todo, reiniciando o sysctl “service” - o serviço sysctl não corresponde a um processo em execução, é um pseudo-serviço que apenas carrega as configurações o kernel quando ele começa.

Se você quiser alterar uma configuração para que o valor seja preservado nas reinicializações, adicione-a a /etc/sysctl.conf . Para aplicar uma configuração temporariamente ou para testá-la, use sysctl ou echo … >/proc/sys/… .

    
por 05.04.2017 / 03:41
0

How to know each parameter if it is dynamic or static?

Todos os parâmetros do kernel em sysctl são dinâmicos. Quando você verifica o número dependendo da versão do seu kernel sysctl -a | wc -l , ele deve ser maior que 1000.

Para ler os valores, você tem várias opções inteligentes:

sysctl net.ipv4.ip_forward          # display specific parameter
sysctl net.ipv4                     # display all net.ipv4.* parameters
sysctl -a                           # display all parameters

E para escrever os valores persistentemente, você pode usar /etc/sysctl.conf ou qualquer arquivo conf dentro do diretório /etc/sysctl.d/ e, depois de atualizar o arquivo conf, é necessário recarregar o arquivo de configuração.

sysctl -p [filename]

Claro, você pode apenas reiniciar o serviço sysctl "como Gilles descreveu.

From where does sysctl -a print all kernel parameters?

A partir do pseudo sistema de arquivos procfs (man procfs). Ele fornece uma interface para estruturas de dados do kernel. É comumente montado em /proc automaticamente pelo sistema.

    
por 16.09.2018 / 20:16

Tags