So modifizieren Sie Linux -Kernel -Variablen mit dem SYSCTL -Befehl

So modifizieren Sie Linux -Kernel -Variablen mit dem SYSCTL -Befehl

Sie können mehrere Parameter oder Tunables von Linux (Kernel) konfigurieren, um sein Verhalten zu steuern, entweder bei Boot oder bei Bedarf, während das System ausgeführt wird. sysctl ist ein weit verbreitetes Befehlszeilendienstprogramm zum Ändern oder Konfigurieren von Kernelparametern zur Laufzeit. Sie finden die unter dem aufgeführten Kernel -Tunables /proc/sys/ Verzeichnis.

Es wird von angetrieben von Procfs (Proc-Dateisystem), ein Pseudo-Dateisystem unter Linux und anderen UNIX-ähnlichen Betriebssystemen, die eine Schnittstelle zu Kernel-Datenstrukturen bieten. Es enthält Informationen zu Prozessen und zusätzlichen Systeminformationen.

Die folgenden sind 10 nützlich sysctl Befehle Beispiele, die Sie bei der Verwaltung eines laufenden Linux -Systems verwenden können. Beachten Sie, dass Sie Root -Privilegien benötigen, um die auszuführen sysctl Der Befehl ansonsten verwenden Sie den Sudo -Befehl beim Aufrufen.

Inhaltsverzeichnis

1
  • SYSCTL -Befehlsbeispiele unter Linux
  • 1. Listen Sie alle Kernelparameter unter Linux auf
  • 3. Listen Sie alle Kernel -Variablennamen auf
  • 3. Finden Sie spezifische Kernelvariablen unter Linux
  • 4. Listen Sie alle Kernelvariablen einschließlich veralteter auf
  • 5. Listen Sie den spezifischen Kernel -Variablenwert auf
  • 6. Schreiben Sie die Kernelvariable vorübergehend
  • 7. Schreiben Sie die Kernelvariable dauerhaft
  • 8. SYSCTL RELAD.Conf Variablen unter Linux
  • 9. Laden Sie Einstellungen aus benutzerdefinierten Konfigurationsdateien neu
  • 10. Laden Sie Einstellungen neu, die dem Muster übereinstimmen

SYSCTL -Befehlsbeispiele unter Linux

In diesem Leitfaden erläutern wir 10 Beispiele für praktische SysCTL -Befehl, die Sie auf einem Linux -System verwenden können.

1. Listen Sie alle Kernelparameter unter Linux auf

Um alle derzeit verfügbaren Kernel -Parameter aufzulisten, führen Sie den SYSCTL -Befehl mit dem aus -A oder --alle Flagge wie gezeigt.

$ sudo sysctl -a oder $ sudo sysctl -alle 

Die Variablen werden in diesem Format angezeigt:

. =  

Zum Beispiel,

Kernel.Ostype = Linux 
Überprüfen Sie die Kernelparameter unter Linux

3. Listen Sie alle Kernel -Variablennamen auf

Verwenden Sie das, um Variablennamen nur ohne ihre Werte zu drucken -N Option wie gezeigt.

$ sudo sysctl -a -n 
Überprüfen Sie die Kernel -Variablennamen unter Linux

3. Finden Sie spezifische Kernelvariablen unter Linux

Um eine bestimmte Variable zu finden, können Sie die Ausgabe von filtern sysctl über den Befehl Grep beispielsweise, um alle mit verbundenen Variablen herauszufiltern Speicher Verwalten Sie den folgenden Befehl: Sie können den folgenden Befehl ausführen:

$ sudo sysctl -a | GREP -Speicher oder $ sudo sysctl -alle | Grep -Speicher 
Überprüfen Sie die Kernel -Speichervariable unter Linux

4. Listen Sie alle Kernelvariablen einschließlich veralteter auf

sysctl Der Befehl zeigt auch veraltete Variablen zusammen mit der Liste aller verfügbaren Variablen mit dem --veraltet Flagge wie gezeigt.

$ sudo sysctl -a -vorgeprägte oder $ sudo sysctl -a -vorgegeben | Grep -Speicher 

5. Listen Sie den spezifischen Kernel -Variablenwert auf

A lesen a sysctl Variable und seine Werte geben den variablen Namen als Argument für die an sysctl Befehle wie folgt. Dieses Beispiel zeigt, wie man das liest Kernel.Ostype Variable.

$ sudo sysctl kernel.Ostype Kernel.Ostype = Linux 

6. Schreiben Sie die Kernelvariable vorübergehend

Um Variablen vorübergehend zu schreiben, geben Sie einfach die Variable in diesem Format an.

.= 

Das folgende Beispiel zeigt an Nic (Netzwerkkarte), sobald sie aus dem Netzwerk empfangen werden. Die Warteschlangengröße kann mit dem modifiziert werden Netz.Kern.netdev_max_backlog Variable wie gezeigt.

$ sudo sysctl net.Kern.netdev_max_backlog $ sudo sysctl net.Kern.netdev_max_backlog = 1200 $ sudo sysctl net.Kern.netdev_max_backlog 
Stellen Sie die Kernelvariable vorübergehend fest

7. Schreiben Sie die Kernelvariable dauerhaft

sysctl Kann auch Variablen dauerhaft in eine Konfigurationsdatei schreiben. Um dies zu erreichen, verwenden Sie die -w Option, und geben Sie die Konfigurationsdatei an, die die Variable und ihr Wert in diesem Fall angehängt werden /etc/sysctl.Conf, Die Standard -SYSCTL -Konfigurationsdatei:

$ sudo sysctl -w net.Kern.netdev_max_backlog = 1200 >> /etc /sysctl.Conf 

Geben Sie den Speicherort der Datei wie folgt an, um Dateien dauerhaft in einen Brauch zu schreiben. Manchmal können Sie an bestimmten Stellen keine Datei erstellen, selbst wenn Sie die aufrufen sysctl Befehl mit dem Sudo -Befehl.

Wechseln Sie in einem solchen Fall zum Stammkonto (falls Sie über die Berechtigungen verfügen) und führen Sie den Befehl erneut wie gezeigt aus.

$ sudo sysctl -w net.Kern.netdev_max_backlog = 1200 >> /etc /sysctl.D/10-Test-Settings.conf $ sudo su # sysctl -w net.Kern.netdev_max_backlog = 1200 >> /etc /sysctl.D/10-Test-Settings.Conf 
Kernelvariable dauerhaft festlegen

Alternativ können Sie die neue Konfigurationsdatei in erstellen /etc/sysctl.D/ Verzeichnis wie gezeigt:

$ sudo vim /etc /sysctl.D/10-Test-Settings.Conf 

Fügen Sie dann die Kernel -Parameter hinzu, darin eine pro Zeile wie gezeigt.

Netz.Kern.netdev_max_backlog = 1200 Benutzer.max_net_namespaces = 63067 vm.overcommit_memory = 0 

Speichern Sie dann die Datei und schließen Sie sie. Verwenden Sie die Einstellungen aus der benutzerdefinierten Datei, die Sie gerade erstellt haben, die -P oder --Belastung Flagge.

$ sudo sysctl -p /etc /sysctl.D/10-Test-Settings.conf oder $ sudo sysctl - -load = /etc /sysctl.D/10-Test-Settings.Conf 

8. SYSCTL RELAD.Conf Variablen unter Linux

Stellen Sie den folgenden Befehl aus, um Einstellungen aus allen Systemkonfigurationsdateien ohne Neustart neu zu laden.

$ sudo sysctl -system 

In dem obigen Befehl werden alle Systemkonfigurationsdateien aus diesen Verzeichnissen in dieser Reihenfolge ausgelesen:

/run/sysctl.D/*.conf /etc /sysctl.D/*.conf/usr/local/lib/sysctl.D/*.conf/usr/lib/sysctl.D/*.conf /lib /sysctl.D/*.conf /etc /sysctl.Conf 

9. Laden Sie Einstellungen aus benutzerdefinierten Konfigurationsdateien neu

Sie können auch Variableneinstellungen aus einer benutzerdefinierten SYSCTL -Konfigurationsdatei wie gezeigt neu laden.

$ sudo sysctl -p/etc/sysctl.D/10-Test-Settings.conf oder $ sudo sysctl - -load = /etc /sysctl.D/10-Test-Settings.Conf 

10. Laden Sie Einstellungen neu, die dem Muster übereinstimmen

Verwenden Sie die Einstellungen, die nur mit einem bestimmten Muster übereinstimmen, die -R oder --Muster folgendermaßen. Beachten Sie, dass das Muster eine erweiterte reguläre Expressionssyntax verwendet. Hier einige Beispiele:

$ sudo sysctl --System -pattern '^net.IPv6 '$ sudo sysctl --System -r -Speicher 
Laden Sie Einstellungen neu, die dem Muster übereinstimmen

In diesem Leitfaden haben wir 10 erklärt sysctl Befehlsbeispiele, mit denen Sie ein laufendes Linux -System verwalten können. Weitere Informationen finden Sie in der sysctl Mann Seite (Mann sysctl).