So modifizieren Sie Linux -Kernel -Variablen mit dem SYSCTL -Befehl
- 2827
- 580
- Tom Jakobs
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_backlogStellen 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.ConfKernelvariable 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 -SpeicherLaden 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).
- « So verschlüsseln Sie die volle Festplatte, während Sie Ubuntu 22 installieren.04
- So installieren Sie Mono (Microsoft's .Netto -Framework) in Rhel -Systemen »