Introduzione
sysctl è un'utilità software di alcuni sistemi operativi simili a Unix che legge e modifica gli attributi del kernel di sistema come il suo:
- Numero di versione
- Limiti massimi
- Impostazioni di sicurezza.
È disponibile sia come chiamata di sistema per programmi compilati, sia come comando dell'amministratore per l'uso interattivo e lo scripting. Linux espone inoltre sysctl come un file system virtuale.
Questo articolo mostra come utilizzare il sysctl comando per visualizzare e modificare i parametri del kernel in fase di esecuzione.
Visualizza i parametri del kernel con sysctl
Per visualizzare tutti i parametri correnti del kernel usa questo comando:
sysctl -a
[root@unixcop ~]# sysctl -a
abi.vsyscall32 = 1
crypto.fips_enabled = 0
debug.exception-trace = 1
debug.kprobes-optimization = 1
dev.cdrom.autoclose = 1
dev.cdrom.autoeject = 0
dev.cdrom.check_media = 0
dev.cdrom.debug = 0
dev.cdrom.info = CD-ROM information, Id: cdrom.c 3.20 2003/12/17
dev.cdrom.info =
dev.cdrom.info = drive name: sr0
dev.cdrom.info = drive speed: 1
........
....
Questo è un elenco in cui ogni riga include il nome del parametro e il suo valore come mostrato sopra.
Controlla il valore del parametro del kernel singel con sysctl
Puoi controllare il valore di un singolo parametro invocando il suo nome come argomento per sysctl .
Nota :solo l'utente root può modificare i propri valori.
Esempio:
Controlla il valore massimo del limite di velocità del dispositivo raid.
[root@unixcop ~]# sysctl dev.raid.speed_limit_max
dev.raid.speed_limit_max = 200000
[root@unixcop ~]#
Inoltre puoi usare grep comando per cercare il valore del parametro come mostrato di seguito:
sysctl -a | grep dev.raid.speed_limit_max
sysctl il comando legge le informazioni da /proc/sys directory.
/proc/sys è una directory virtuale contenente oggetti file che possono essere utilizzati per visualizzare e impostare i parametri del kernel correnti.
È inoltre possibile visualizzare il valore di un parametro visualizzando il contenuto del file appropriato. L'unica differenza è come viene rappresentato il file.
Esempio:
sysctl dev.raid.speed_limit_max e cat /proc/sys/dev/raid/speed_limit_max mostrerà lo stesso output mostrato di seguito.
Modifica i parametri del kernel con sysctl
Per modificare un parametro del kernel eseguire il comando sysctl seguito dal parametro e dal valore che si desidera modificare in
La sintassi per modificare il valore:
sysctl -w parameter=value
Esempio :
[root@unixcop ~]# sysctl net.ipv6.route.gc_timeout
net.ipv6.route.gc_timeout = 50
[root@unixcop ~]#
[root@unixcop ~]# sysctl -w net.ipv6.route.gc_timeout=60
net.ipv6.route.gc_timeout = 60
[root@unixcop ~]#
[root@unixcop ~]# sysctl net.ipv6.route.gc_timeout
net.ipv6.route.gc_timeout = 60
[root@unixcop ~]#
Note :
Se il valore contiene spazi vuoti o caratteri speciali, racchiudere il valore tra virgolette.
Puoi anche passare più parameter=value nello stesso comando.
Eccoci
La modifica verrà aggiunta correttamente, ma non è persistente. Dopo un riavvio del sistema, viene caricato il valore predefinito.
Quindi
Per impostare un parametro in modo permanente, dovrai scrivere le modifiche in /etc/sysctl.conf o un altro file di configurazione in /etc/sysctl.d perché è un file incluso o un file secondario rispetto a quello di configurazione principale.
sysctl -w net.ipv6.route.gc_timeout=60 >> /etc/sysctl.conf
Il -p l'opzione consente di caricare le modifiche da un file di configurazione come mostrato:
[root@unixcop ~]# sysctl -p /etc/sysctl.d/79-sysctl.conf
net.ipv6.route.gc_timeout = 60
[root@unixcop ~]#
Conclusione
Questo è tutto
Abbiamo illustrato come utilizzare il sysctl comando per consentire di visualizzare e modificare i parametri del kernel Linux.