LinuxForum.Fans
Тема

Кем открыт файл по сети?

Автор: mangix 9 сообщений 6815 просмотров
#85899

Здравствуйте, есть убунту серевер, без графических оболочек, только консольный режим, есть расшаренные папки с файлами, как можно посмотреть кто сидит в файле?
Пример: лежит обычный текстовый файл у меня в шаре(на этом самом убунту сервере), кто-то заходит по сетке в него и начинает там что-нибудь печатать, в это время я тоже захотел в нем попечатать начинаю открывать, а он кем-то уже занят, и как узнать кто из 100 юзеров подключенных к сетке сидит в моём файле?
В винде было просто управление-общие папки-открытые файлы, а тут думаю накатить граф.оболочку xfce может в ней можно как-то посмотреть будет? Или может можно в консольном режиме всё это увидеть?

#85902

[console]
#lsof | grep filename
[/console]


пример:

text

[root@localhost ~]#lsof | grep *index.html*
vi        13185     useradm    4u      REG        8,7     12288    3129356 /home/useradm/.index.html.swp

еще как-то можно через samba все просмотреть, кем открыт/занят файл, но сейчас командочку не помню.

#85904

[console]
ebiantest:/etc/apt# smbstatus
Unknown parameter encountered: "coment"
Ignoring unknown parameter "coment"
Unknown parameter encountered: "guest"
Ignoring unknown parameter "guest"
Unknown parameter encountered: "creat mask"
Ignoring unknown parameter "creat mask"

Samba version 3.4.8
PID Username Group Machine
-------------------------------------------------------------------
<processes do not show up in anonymous mode>

Service pid machine Connected at
-------------------------------------------------------

No locked files

[/console]

#86162
mangix написал:
Здравствуйте, есть убунту серевер, без графических оболочек, только консольный режим, есть расшаренные папки с файлами, как можно посмотреть кто сидит в файле?
Пример: лежит обычный текстовый файл у меня в шаре(на этом самом убунту сервере), кто-то заходит по сетке в него и начинает там что-нибудь печатать, в это время я тоже захотел в нем попечатать начинаю открывать, а он кем-то уже занят, и как узнать кто из 100 юзеров подключенных к сетке сидит в моём файле?
В винде было просто управление-общие папки-открытые файлы, а тут думаю накатить граф.оболочку xfce может в ней можно как-то посмотреть будет? Или может можно в консольном режиме всё это увидеть?

Если samba - то smbstatus. Или через SWAT.

#86166

Огромное спасибо всем за советы, Вы мне очень помогли, но еще вопрос, как можно сделать постарничный вывод информации, а то у меня там очень много файлов занято и пути к ним длинные, в общем вижу только последних пользователей, а кто был показан выше ни пролистать ничего, есть какой-то параметр выводящий информацию постранично, что smbstatus, что lsof - хелпы посмотрел ничего не увидел :(

#86168
redhead написал:
Собственно можно и без grep: lsof файл
http://linuxmemo.ru/2010/08/24/%D0%BF%D … 8F-%D0%BA/

если это процесс то да, если файл то нет:

text

[root@localhost ~]# lsof /usr/sbin/sshd
COMMAND   PID    USER  FD   TYPE DEVICE   SIZE    NODE NAME
sshd     5079    root txt    REG    8,6 379452 1059888 /usr/sbin/sshd
sshd    26614    root txt    REG    8,6 379452 1059888 /usr/sbin/sshd
sshd    26616 useradm txt    REG    8,6 379452 1059888 /usr/sbin/sshd
sshd    26665    root txt    REG    8,6 379452 1059888 /usr/sbin/sshd
sshd    26667 useradm txt    REG    8,6 379452 1059888 /usr/sbin/sshd

и

text

[root@localhost ~]# lsof /home/useradm/index.html 
[root@localhost ~]# 
#86169

как можно сделать постарничный вывод информации, а то у меня там очень много файлов занято и пути к ним длинные, в общем вижу только последних пользователей

А каналы (пайпы) не пробовали использовать? Например так:

text
# lsof | grep *index.html* | less
#86173

mangix, если через lsof, то добавь в конец more или less, что бы пролистать страницу нажми enter или пробел, воспользоваться поиском / ищешь то что хочешь найти, выйти из просмотра q.
Если будешь использовать less, то при поиске у тебя будет подсвечен поисковый твой запрос.

пример more:

text

lsof | grep root|more

и

пример less

text

lsof | grep root|less

и

Войдите или зарегистрируйтесь, чтобы ответить.