
In qualità di amministratore di sistema Linux, a volte potrebbe essere necessario modificare il comportamento del kernel predefinito. Ad esempio, potrebbe essere necessario abilitare la chiave magica SysRq o aumentare il numero di connessioni che il kernel accetterà. I parametri del kernel possono essere impostati durante la compilazione del kernel, all'avvio del sistema o in fase di esecuzione.
Questo articolo spiega come utilizzare sysctl
comando per visualizzare e modificare i parametri del kernel in fase di esecuzione.
Utilizzo di sysctl
per visualizzare i parametri del kernel #
Per visualizzare tutti i parametri correnti del kernel, invocare sysctl
comando con il -a
opzione:
sysctl -a
Questo produrrà un elenco di grandi dimensioni simile al seguente in cui ogni riga include il nome del parametro e il suo valore:
abi.vsyscall32 = 1
debug.exception-trace = 1
debug.kprobes-optimization = 1
...
Tutti gli utenti possono visualizzare i parametri correnti del kernel; solo l'utente root può modificare i propri valori.
Puoi controllare il valore di un singolo parametro passando il suo nome come argomento a sysctl
. Ad esempio, per controllare l'attuale valore di swappiness digitare:
sysctl vm.swappiness
vm.swappiness = 60
Swappiness è una proprietà del kernel Linux che definisce la frequenza con cui il sistema utilizzerà lo spazio di scambio.
Il sysctl
il comando legge le informazioni da /proc/sys
directory. /proc/sys
è una directory virtuale che contiene 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. Ad esempio, entrambi sysctl vm.swappiness
e cat /proc/sys/vm/swappiness
darà lo stesso output. Quando si utilizza sysctl
le barre della directory vengono sostituite con punti e proc.sys
parte è presupposta.
Utilizzo di sysctl
per modificare i parametri del kernel #
Per impostare un parametro del kernel in fase di esecuzione, eseguire sysctl
comando seguito dal nome e dal valore del parametro nel seguente formato:
sysctl -w parameter=value
Se il valore contiene spazi vuoti o caratteri speciali, racchiudere il valore tra virgolette. Puoi anche passare più parameter=value
coppie nello stesso comando.
Ad esempio, per abilitare l'inoltro di pacchetti IPv4 dovresti eseguire:
sysctl -w net.ipv4.ip_forward=1
La modifica ha effetto immediato, ma non è persistente. Dopo un riavvio del sistema, viene caricato il valore predefinito.
Per impostare un parametro in modo permanente, dovrai scrivere le impostazioni in /etc/sysctl.conf
o un altro file di configurazione nel /etc/sysctl.d
directory:
sysctl -w net.ipv4.ip_forward=1 >> /etc/sysctl.conf
Un altro modo per modificare i parametri è usare echo
comando per scrivere le impostazioni nei file nel /proc/sys
directory. Ad esempio, invece di eseguire il comando precedente, puoi utilizzare:
echo 1 > /proc/sys/net/ipv4/ip_forward
Il -p
l'opzione consente di caricare le impostazioni da un file di configurazione:
sysctl -p /etc/sysctl.d/file_name.conf
Quando non viene fornito alcun file, sysctl
legge il /etc/sysctl.conf
file.
Conclusione #
Il sysctl
comando consente di visualizzare e modificare i parametri del kernel Linux.
Sentiti libero di lasciare un commento in caso di domande.