Então, uma das grandes coisas sobre o aprendizado do Unix é ler a página do homem sangrento:
Eu não estou apenas saindo do meu velho rabugento, há REALMENTE informação valiosa lá. Neste caso:
DESCRIPTION sysctl is used to modify kernel parameters at runtime. The parameters available are those listed under /proc/sys/. Procfs is required for sysctl support in Linux. You can use sysctl to both read and write sysctl data.
Assim podemos:
$sudo sysctl -a | grep kernel.perf_event_max_sample_rate
kernel.perf_event_max_sample_rate = 50000
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.enp3s0.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
sysctl: reading key "net.ipv6.conf.wlp1s0.stable_secret"
Ao ler a manpage, aprendemos que -a é "exibir todos os valores disponíveis atualmente", mas também podemos ver:
SYNOPSIS
sysctl [options] [variable[=value]] [...] sysctl -p [file or regexp] [...]
o que significa que podemos encurtar o comando acima para:
$ sudo sysctl kernel.perf_event_max_sample_rate
kernel.perf_event_max_sample_rate = 50000
Ou nós podemos:
$ more /proc/sys/kernel/perf_event_max_sample_rate
50000
Então, TL; DR:
1) Sim, você pode escrever um script para registrar essa variável a cada poucos minutos, mas se ela aparecer nos logs quando ela for alterada, por que você faria isso?
2) Provavelmente seria mais eficiente ler o valor de / proc / sys / kernel / perf_event_max_sample_rate do que usar sysctl, e seria mais eficiente pedir o valor específico de sysctl do que usar grep.