У нас есть точка монтирования, общая для многих хостов Linux. Нам нужно выяснить, какие учетные записи читают/пишут файлы, используя какие учетные записи и в какое время. Как нам это сделать?
решение1
Если вы nfswatch
установили, вы можете использовать его для определения хостов, которые обращаются к серверу NFS. Вам нужно будет использовать переключатель -clients
.
Пример
$ sudo nfswatch -clients
mulder.mydom.net Mon Oct 13 16:28:55 2014 Elapsed time: 00:01:00
Interval packets: 337 (network) 154 (to host) 0 (dropped)
Total packets: 1308 (network) 316 (to host) 0 (dropped)
Monitoring packets from interface vmbr0
int pct total int pct total
NFS3 Read 64 42% 162 TCP Packets 151 98% 293
NFS3 Write 0 0% 0 UDP Packets 2 1% 13
NFS Read 0 0% 0 ICMP Packets 0 0% 0
NFS Write 0 0% 0 Routing Control 0 0% 0
NFS Mount 0 0% 0 Addr Resolution 0 0% 3
Port Mapper 4 3% 4 Rev Addr Resol 0 0% 0
RPC Authorization 0 0% 0 Ether/FDDI Bdcst 2 1% 15
Other RPC Packets 1 1% 1 Other Packets 1 1% 7
2 client hosts
Client host int pct total Client host int pct total
byers 1 2% 13 skinner 63 98% 149
В приведенном выше выводе есть 2 хоста, которые активно используют сервер NFS, byers
и skinner
. Список клиентов вы можете увидеть в нижней части вывода.
Вы также можете использовать его netstat -an | grep :2049
для просмотра того, какие хосты подключаются к серверу NFS.
Я бы использовал его, nfswatch
так как он может непрерывно записывать данные в файл, который затем можно просмотреть позже.
решение2
Существует команда nfs, с помощью которой можно увидеть, какие хосты смонтировали файловую систему NFS из серверной системы (кстати, это не всегда точно).
Однако отслеживание этого процесса до конкретной учетной записи пользователя пришлось бы выполнять на каждом отдельном хосте, запуская что-то вроде lsof.