Как узнать, какая функция выполняется при чтении /proc

Это можно сделать с помощью bash:

declare -i m=$(date +%m)
declare -i cq=($m-1)/3+1
declare -i cy=$(date +%Y)
declare -i py=$cy; [ $m -lt 4 ] && py=$cy-1
declare -i pq=$cq-1; [ $pq -eq 0 ] && pq=4
declare -i ny=$cy; [ $m -gt 9 ] && ny=$cy+1
declare -i nq=$cq+1; [ $nq -gt 4 ] && nq=1
echo ${py}q${pq},${cy}q${cq},${ny}q${nq}

бывший пока :2018q1,2018q2,2018q3

0
24.03.2020, 12:59
1 ответ

Я не думаю, что вы можете отслеживать вызовы ядра просто с помощью инструментов пользовательского пространства. То, что вы, вероятно, ищете, это ftrace, тогда вы могли бы (, если ваше ядро ​​​​поддерживает это ), сделать что-то вроде этого:

sysctl kernel.ftrace_enabled=1
echo function_graph > /sys/kernel/debug/tracing/current_tracer
echo 1 > /sys/kernel/debug/tracing/tracing_on
cat /proc/net/tcp
echo 0 > /sys/kernel/debug/tracing/tracing_on
less /sys/kernel/debug/tracing/trace

Для получения дополнительной информации о том, что именно происходит, когда вы читаете /proc/net/tcp, вы можете загрузить исходные файлы ядра и/или прочитать документацию по ядру, например. о виртуальной файловой системе , /proc и интерфейсе seq _file .

Поскольку файловая система /procявляется функцией ядра, позволяющей сделать системную информацию доступной для пользовательского пространства, я не знаю, возможно ли скрыть сокеты от netstat(, ср. Как я могу отредактировать /proc/net/tcp?).

0
28.04.2021, 23:19

Теги

Похожие вопросы