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.