sysctl là một công cụ đơn giản (vâng, đơn giản hơn cả
ls), công việc của nó chỉ có
hiển thị hoặc
thay đổi một tham số nào đó của kernel. Vấn đề biết phải thay đổi tham số nào, để làm gì mới là phần ... phức tạp.
Hỏi theo phong cách
CCGU:
# whatis sysctl
sysctl (8) - configure kernel parameters at runtime
# whereis sysctl
sysctl: /sbin/sysctl /etc/sysctl.d /etc/sysctl.conf /usr/share/man/man8/sysctl.8.gz
Hiển thị 1 parameter có tên là
net.ipv4.ip_forward (để cho phép forward gói tin) :
# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0
Thay đổi giá trị của parameter nói trên:
# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
Các settings của sysctl nằm ở
/etc/sysctl.conf và có thể trong thư mục
/etc/sysctl.d,
để thay đổi có hiệu lực cả sau khi reboot, cần sửa các file này thay vì set trực tiếp bằng sysctl.
Các parameter mà sysctl thao tác được liệt kê ở dạng file tại thư mục
/proc/sys.
Option: -a hiển thị tất cả các tham số hiện tại sẵn sàng
# find /proc/sys -type f | wc -l # đếm số file trong /proc/sys
693
# sysctl -a | wc -l
error: permission denied on key 'net.ipv4.route.flush'
error: permission denied on key 'net.ipv6.route.flush'
error: permission denied on key 'vm.compact_memory'
713
Có một chút chênh lệch về số lượng ở đây, lý do có sự chênh lệch này là do output của sysctl có nhiều giá trị khác nhau cho cùng 1 parameter: