Смена прав на файлы на лету, HanTengry, 28-Янв-11, 06:20 [смотреть все]Есть сервер(OS: SLES SUSE9 SP3), и на других компьютерах 2 программы, одна из программ выгружет файлы, другая забирает на обработку раз в 3 минуты. Вторая программа не может забирать файлы если файлам не присвоить определенные права. Вроде бы логично поставить в crontab строчку chmod, которая раз в минуту будет "причесывать" файлы под нужные права. Но какое-то время вторая программа не работала. Файлов накопилось несколько тысяч. chmod не успевал за минуту применить ко всем файлам права, до того как запуститься следующий процесс chmod, в результате сервер назапускал процессов chmod и тормозит. Кривизна решения еще в том что следующий процесс chmod заново обрабатывает файлы для смены прав, хотя они уже обработаны предыдущим процессом. Вопрос: Есть другое решение? Хотелось бы делать смену прав на файлы только для новых файлов и сразу после их появления. Как отслеживать?
|
- Смена прав на файлы на лету, Дядя Федор, 08:14 , 28-Янв-11 (1)
- Смена прав на файлы на лету, HanTengry, 08:53 , 28-Янв-11 (3)
>> Вопрос: Есть другое решение? Хотелось бы делать смену прав на файлы только >> для новых файлов и сразу после их появления. Как отслеживать? > Не совсем понятно - что из себя представляет первая программа и > как она выгружает файлы. Обе программы - внедренные продукты, стороннего разработчика, лесть в них мне не дадут, эти программы к расшареной дирректории обращаются по сети, как я понял по FTP протоколу, работают под Windows. > прямо на этапе выгрузки и дальнейшего помещения в файловую систему. К > примеру, чтобы это делал Ваш скрипт, в котором будет 2 строки > - запуск этой программы Не понял, какой программы? Первая программа всегда запущена. В моем случае надо как-то отследить момент выгрузки, т.е. ее обращение к сетевому каталогу? > второе решение... искать новые файлы find по параметрам time (ctime и > т.д.) и изменять им права. Либо менять права только тем файлам, > у которых они не соответствуют заданным параметрам (права на запись, чтение, > исполнение - тот же test в bash это умеет). Что из этих 2-х вариантов будет работать быстрее. Не будут ли оба этих процесса опять просматривать каждый файл на предмет в первом случае времени во втором прав - не станет ли время работы процесса опять зависеть от количества файлов?
- Смена прав на файлы на лету, Дядя Федор, 09:00 , 28-Янв-11 (4)
- Смена прав на файлы на лету, Дядя Федор, 09:06 , 28-Янв-11 (5)
- Смена прав на файлы на лету, HanTengry, 10:06 , 28-Янв-11 (7)
> Кстати. Раз Вы сказали, что программа Виндовая заливает файлы по FTP-протоколу, соответственно, > у Вас поднят FTP-сервер. Посмотрите, при помощи какого ПО это сделано > (ну, там wu-ftpd, vsftpd, ProFTP etc). Разберитесь под каким пользователем заливается > файл по FTP (возможно, anonymous) и в настройках FTP-сервера выставьте параметр > umask - тогда файлы будут заливаться уже с нужными Вам параметрами. У меня оказался samba сервер, пожалуй вы правы, часа через 2 отпишу параметры где-то здесь: smb.conf параметры create mask и directory mask для шары.
- Смена прав на файлы на лету, HanTengry, 14:52 , 28-Янв-11 (9)
>> Кстати. Раз Вы сказали, что программа Виндовая заливает файлы по FTP-протоколу, соответственно, >> у Вас поднят FTP-сервер. Посмотрите, при помощи какого ПО это сделано >> (ну, там wu-ftpd, vsftpd, ProFTP etc). Разберитесь под каким пользователем заливается >> файл по FTP (возможно, anonymous) и в настройках FTP-сервера выставьте параметр >> umask - тогда файлы будут заливаться уже с нужными Вам параметрами. > У меня оказался samba сервер, пожалуй вы правы, часа через 2 отпишу > параметры где-то здесь: > smb.conf параметры create mask и directory mask для шары.Возможно здесь проблема(проверю): выгружается под одним юзером(oracle, что видно по выгружаемым файлам), а рассшареная папка подключеная в винде как сетевой диск с помощью root (юзер который есть по умолчанию в Samba). Решение: 1) smbpasswd -a oracle 2) smb stop\start 3) Переподключить сетевой диск под oracle
- Смена прав на файлы на лету, PavelR, 08:42 , 28-Янв-11 (2)
- Смена прав на файлы на лету, HanTengry, 09:20 , 28-Янв-11 (6)
> google://inotify > http://habrahabr.ru/blogs/linux/66569/#habracut man читать надо еще. Но вопрос: за событиями inotify умеет следитью. Увидела событие: в директорию закинули файлы, запустила действие: Какое? 1. find по параметрам time 2. test в bash этим процессам опять надо будет просмотреть все файлы, которые уже лежат в директории?
|