Linux命令之sysctl命令
一、命令簡介
??sysctl用于在運行時修改內核參數,可用參數是/proc/sys/下列出的參數。Linux中的sysctl支持需要Procfs,可以使用sysctl讀取和寫入sysctl數據。我們也可以直接編輯/etc/sysctl.conf文件將內核參數寫入配置文件中,需要使用sysctl -p命令重新加載配置文件使參數生效。常用此命令清理內存緩存、啟停IP路由轉發功能等。
二、使用示例
1、獲取命令幫助
[root@s142 ~]# sysctl --help
2、查看命令版本
[root@s142 ~]# sysctl --version
sysctl from procps-ng 3.3.10
3、查看所有內核參數設置
[root@s142 ~]# sysctl -a
sysctl: reading key “net.ipv6.conf.all.stable_secret”
sysctl: reading key “net.ipv6.conf.default.stable_secret”
abi.vsyscall32 = 1
crypto.fips_enabled = 0
debug.exception-trace = 1
debug.kprobes-optimization = 1
…
vm.stat_interval = 1
vm.swappiness = 30
vm.user_reserve_kbytes = 118516
vm.vfs_cache_pressure = 100
vm.zone_reclaim_mode = 0
4、查看某變量的值
[root@s142 ~]# sysctl -n net.ipv4.ip_forward
1
[root@s142 ~]# sysctl -n vm.drop_caches
0
5、清理內存緩存
(base) [root@sun-site ~]# free -h
total used free shared buff/cache available
Mem: 1.8G 118M 158M 148K 1.5G 1.5G
Swap: 2.0G 49M 1.9G
(base) [root@sun-site ~]# sysctl -w vm.drop_caches=3
vm.drop_caches = 3
(base) [root@sun-site ~]# free -h
total used free shared buff/cache available
Mem: 1.8G 119M 1.6G 148K 107M 1.5G
Swap: 2.0G 49M 1.9G
6、重載內核參數配置文件
(base) [root@sun-site ipv4]# echo “net.ipv4.ip_default_ttl = 128” >> /etc/sysctl.conf
(base) [root@sun-site ipv4]# sysctl -p
vm.swappiness = 0
net.ipv4.neigh.default.gc_stale_time = 120
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_synack_retries = 2
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
kernel.sysrq = 1
net.ipv4.ip_forward = 1
fs.file-max = 65535
fs.file-max = 65535
net.ipv4.ip_default_ttl = 128
三、使用語法及參數說明
1、使用語法
用法:sysctl [options] [variable[=value] …]
2、參數說明
| 參數 | 參數說明 |
|---|---|
| -a, --all | 顯示所有變量 |
| -A | 與-a參數一樣 |
| -X | 與-a參數一樣 |
| -b, --binary | 打印值(不起新行) |
| -e, --ignore | 忽略未知變量錯誤 |
| -N, --names | 打印不帶值的變量名稱 |
| -n, --values | 僅打印變量的值 |
| -p, --load[=] | 從文件中讀取值,默認從/etc/sysctl.conf中讀取 |
| -f | 與-p參數一樣 |
| –system | 從所有系統目錄中讀取值 |
| -r, --pattern | 選擇與表達式匹配的設置 |
| -q, --quiet | 不回顯變量集 |
| -w, --write | 啟用將值寫入變量,臨時修改,重啟失效 |
| -d | 與-h參數一樣 |
| -h, --help display | 顯示幫助 |
| -V, --version output | 顯示版本信息 |
3、變量名稱規則
- 內核變量全部以文件形式存放在/proc/sys目錄下
- 變量名是通過目錄+(.)+文件名拼接成立,目錄可以有多層
- 文件中存放的值即為變量的值
(base) [root@sun-site sys]# pwd
/proc/sys
(base) [root@sun-site sys]# tree
.
├── abi
│ └── vsyscall32
├── crypto
│ └── fips_enabled
├── debug
│ ├── exception-trace
│ ├── kprobes-optimization
│ └── panic_on_rcu_stall
…
├── user_reserve_kbytes
├── vfs_cache_pressure
└── zone_reclaim_mode59 directories, 901 files
總結
以上是生活随笔為你收集整理的Linux命令之sysctl命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【网络流】人员雇佣(luogu 1791
- 下一篇: 铭凡推出 15.6 英寸 IPS 便携屏