Шаблоны Joomla 2.5 здесь: http://joomla25.ru/shablony/

Снятие блокировк к файлам в Samba


источник статьи: https://sr-maks.livejournal.com/14964.html

 

 

При некорректном закрытие соединения иногда возникает ситуация, когда файл остается открытым.
Для того, чтобы снять данную блокировку существует несколько методов (все манипуляции производим на SAMBA сервере):

1. Воспользоваться средствами Samba - использовать smbcontrol. Им можно закрыть открытые share конкретного пользователя либо соединения к конкретному ресурсу.
Синтаксис следующий:

smbcontrol [Pid] close-share [share]
smbcontrol smbd close-share [share]


Первая команда закрывает все (или одну) открытую шару для конкретного пользователя (PID соответствует конкретному пользователю)
Вторая - закрывает все соединения к конкретному ресурсу.

Например:

smbcontrol smbd close-share documents

Данная команда закроет все соединения к ресурсу documents

smbcontrol 24608 close-share documents

Закроет все соединения к ресурсу documents (убьет процесс 24608). Что такое 24608 - это PID - который привязывается к пользователю.
Соответствие PID - пользователь можно найти выполнив следующую команду:


smbstatus -p 

Пример вывода данной команды:

Samba version 3.2.5
PID     Username      Group         Machine                       
-------------------------------------------------------------------
24608  vasya_pupkin    domain users  s0072       (::ffff:192.168.10.168)

Таким образом, соединение Васи Пупкина обрабатывает процесс 24608.
К сведению - если открыто несколько документов, то будет открыто несколько процессов для Васи Пупкина (вот такой он важный человек)

Посмотреть какой файл залочен (используется на данный момент) можно набрав команду
smbstatus -L

Например:

smbstatus -L

Locked files:
Pid          Uid        DenyMode   Access      R/W        Oplock           SharePath   Name   Time
--------------------------------------------------------------------------------------------------
24608      10070      DENY_NONE  0x81        RDONLY     NONE             /home/samba/documents/text.txt   
                                                                Wed Jan 11 18:25:22 2012


Здесь мы видим, что Вася редактирует файл text.txt и он был открыт Wed Jan 11 18:25:22 2012.
Для того чтобы получить всю информацию о используемых ресурсах достаточно набрать smbstatus

2. Второй способ заключается, чтобы собственноручно убить процесс smbd (то есть сделать то, что выполняет smbcontrol)
Например:
  1. С помощью smbstatus -p находим, соответствие PID - пользователь.
 
2. С помощью smbstatus -L находим нужный PID (открытый документ или ресурс)
  3. Убиваем процесс через kill -9 PID

3. Если известно, какой пользователь (например Вася) заблокировал файл на ресурсе documents, то можно сделать следующее


smbcontrol `smbstatus -p | grep vasya_pupkin | awk {'print$1'}` close-share documents

Это автоматизация действий, описанных в пункте 1. Единственное - закроются все ресурсы, открытые этим пользователем.

4. Если НЕТ никаких lock по smbstatus -L, значит необходимо посмотреть в папке, не осталось ли lock файла. Столкнулся с этим, после того, как после reset не мог открыть файл.

Смотрим, что находится в папке

ls -la /home/samba/documents

Видим
-rwxrwx---+  1 vasya_pupkin     domain users    73 2012-01-12 09:18 .~lock.Отчет.xls#
-rwxrwx---+  1 vasya_pupkin     domain users 29184 2012-01-12 09:18 Отчет.xls


Удаляем файл блокировки
rm /home/samba/documents/.~lock.Отчет.xls#