Разблокировать сетевые файлы, заблокированные Samba Linux / Unix Server

by itisgood

Samba – бесплатное программное обеспечение Linux / Unix, которое обеспечивает доступ к файлам и печати для клиентов Microsoft Windows.

Если у вас есть файловый сервер Linux или устройство NAS на базе Linux в сети с клиентами Windows, вы, вероятно, используете Samba.

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

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

К сожалению, Samba не позволяет разблокировать отдельные файлы.

Однако есть несколько способов обхода.

Перезапуск Samba

Самый быстрый и самый грязный способ – перезапустить samba. Проблема в том, что все пользователи будут временно отключены от сервера, что может привести к потере данных.

Чтобы перезапустить samba, запустите:

 # /etc/init.d/samba restart

Команда может немного отличаться в зависимости от вашего дистрибутива Linux.

Убейте пользовательский PID

Лучший вариант – убить процесс Samba, который блокирует файл.

Samba назначает отдельный процесс каждому подключенному пользователю.

Таким образом будут заблокированы только файлы, заблокированные этим конкретным пользователем.

Он не будет отключать соединение так же, как и перезапуск samba.

Сначала запустите:

 

 # smbstatus

 

и найдите заблокированный файл.

Номер PID (первый столбец)

Если список очень длинный, и вы пытаетесь найти файл:

 # smbstatus | grep -i filename.ext 

где filename.ext – это имя заблокированного файла.

Эта команда будет фильтровать результаты smbstatus и возвращать только строки с заблокированным файлом.

Вы также можете проверить, какие другие файлы открыл этот пользователь, проверив результаты smbstatus или выполнив:

 # smbstatus | grep 14899 

где номер PID пользователя 14899

Если возможно, попросите пользователя закрыть все файлы, открытые с этого конкретного сервера.

Наконец, чтобы разблокировать все файлы, которые этот пользователь открыл, запустите

 # kill 14899 

где номер PID пользователя 14899

You may also like

Leave a Comment