Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> обработать вывод smbstatus 
V
    Опции темы
dstorm81
Дата 15.9.2012, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: нет
Всего: 39



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

нашел в интернетах 
Код

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<html><head><title>User use file.</title></head><body>
<table align=\"center\"><tr><th>User</th><th>File</th></tr><tr>";
for (`smbstatus`) {
    $users{$1} = $2 if (/\s*(\d+)\s+(.+?)\s+(.+)\s+(.+)\s+\((.+)\)/);
    print "<td>$users{$1}</td><td>$2</td>\n" if (/(\d+).*?\/usr\/home\/public\/shared(.*)\s{3}/);
    };
print "</tr></body>";


собственно отрабатывается без ошибок, но и не выводит ничего.. регулярные выражения не те явно

мой вывод smbstatus
Код

Samba version 3.4.9
PID     Username      Group         Machine
-------------------------------------------------------------------
4177      admin         __USERS__     sectorz      (192.168.1.33)

Service      pid     machine       Connected at
-------------------------------------------------------
admin        4177   sectorz       Sat Sep 15 20:23:22 2012
IPC$         4177   sectorz       Sat Sep 15 20:23:18 2012

Locked files:
Pid          Uid        DenyMode   Access      R/W        Oplock           SharePath   Name   Time
--------------------------------------------------------------------------------------------------
4177         2001       DENY_NONE  0x20089     RDONLY     EXCLUSIVE+BATCH  /home/admin   Новая папка/1033262.flv   Sat Sep 15 20:25:42 2012
4177         2001       DENY_NONE  0x100081    RDONLY     NONE             /home/admin   Новая папка   Sat Sep 15 20:23:28 2012


вот собственно прошу помощи как вывести только 
4177         2001       DENY_NONE  0x20089     RDONLY     EXCLUSIVE+BATCH  /home/admin   Новая папка/1033262.flv   Sat Sep 15 20:25:42 2012 
и вместо 4177 имя пользователя admin

Это сообщение отредактировал(а) dstorm81 - 15.9.2012, 20:09


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
alezzz
Дата 16.9.2012, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 2
Всего: 14



А где на сервере файлы лежат? Если сделать 
Код

print "<td>$users{$1}</td><td>$2</td>\n" if (/(\d+).*?\/home\/admin(.*)\s{3}/);

то все работает.
PM MAIL   Вверх
dstorm81
Дата 16.9.2012, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: нет
Всего: 39



2 alezzz папка там общая дня многих пользователей

переделал так 
Код

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<html><head><title>User use file.</title></head><body>
<table align=\"center\"><tr><th>User</th><th>File</th></tr><tr>";
for (`smbstatus`) {
    $users{$1} = $2 if (/\s*(\d+)\s+(.+?)\s+(.+)\s+(.+)\s+\((.+)\)/);
    print "<td>$users{$1}</td><td>$2</td>\n" if (/(\d+).*?\/home(.*)\s{3}/);
    };
print "</tr></body>";


smbstatus выводит
Код

Samba version 3.4.9
PID     Username      Group         Machine
-------------------------------------------------------------------
2391      admin         __USERS__     sectorz      (192.168.1.33)

Service      pid     machine       Connected at
-------------------------------------------------------
admin        2391   sectorz       Sun Sep 16 10:52:30 2012
IPC$         2391   sectorz       Sun Sep 16 10:52:27 2012

Locked files:
Pid          Uid        DenyMode   Access      R/W        Oplock           SharePath   Name   Time
--------------------------------------------------------------------------------------------------
2391         2001       DENY_NONE  0x20089     RDONLY     EXCLUSIVE+BATCH  /home/admin   Новая папка/1033262.flv   Sun Sep 16 10:52:40 2012
2391         2001       DENY_NONE  0x100081    RDONLY     NONE             /home/admin   Новая папка   Sun Sep 16 10:52:31 2012


а показывается так
Код

admin    /admin 2391 2001 DENY_NONE 0x100081 RDONLY NONE /home/admin 

показывает папку, а не какой файл держится пользователем..так поправить?

Это сообщение отредактировал(а) dstorm81 - 16.9.2012, 10:57


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
alezzz
Дата 16.9.2012, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 2
Всего: 14



Цитата(dstorm81 @  16.9.2012,  10:13 Найти цитируемый пост)
а показывается так: admin    /admin 2391 2001 DENY_NONE 0x100081 RDONLY NONE /home/admin 

непонял что показывает, можете код html-страницы, которую генерирует скрипт показать.
PM MAIL   Вверх
dstorm81
Дата 16.9.2012, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: нет
Всего: 39



да конечно.. вот что выводит
Код

<html><head><title>User use file.</title></head><body>
<table align="center">
<tr><th>User</th><th>File</th></tr>
<tr>
<td>admin</td>
<td>/admin   2391         2001       DENY_NONE  0x20089     RDONLY     NONE             /home/admin   
         2391         2001       DENY_NONE  0x100081    RDONLY     NONE             /home/admin 
</td>
</tr>
</body></html>


а вот что отображает вывод smbstatus
Код

Samba version 3.4.9
PID     Username      Group         Machine
-------------------------------------------------------------------
2391      admin         __USERS__     sectorz      (192.168.1.33)

Service      pid     machine       Connected at
-------------------------------------------------------
admin        2391   sectorz       Sun Sep 16 10:52:30 2012
IPC$         2391   sectorz       Sun Sep 16 10:52:27 2012

Locked files:
Pid          Uid        DenyMode   Access      R/W        Oplock           SharePath   Name   Time
--------------------------------------------------------------------------------------------------
2391         2001       DENY_WRITE 0x20089     RDONLY     EXCLUSIVE+BATCH  /home/admin   Новая папка/1111.7z   Sun Sep 16 12:49:01 2012
2391         2001       DENY_NONE  0x20089     RDONLY     NONE             /home/admin   Новая папка/1033262.flv   Sun Sep 16 12:31:48 2012
2391         2001       DENY_NONE  0x100081    RDONLY     NONE             /home/admin   Новая папка   Sun Sep 16 12:49:01 2012

то есть отображает только папки в которых эти файлы... а нужно видеть какие файлы держаться например "Новая папка/1111.7z"

Это сообщение отредактировал(а) dstorm81 - 16.9.2012, 12:34


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
alezzz
Дата 16.9.2012, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 2
Всего: 14



хм... что-то вообще немогу понять как регулярка отработала чтоб такое получилось. Покажите в каком виде приходит ответ от smbstatus в perl:
Код

#!/usr/bin/perl

foreach (`smbstatus`){
    print '>>>' . $_;
}



Это сообщение отредактировал(а) alezzz - 16.9.2012, 13:03
PM MAIL   Вверх
dstorm81
Дата 16.9.2012, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: нет
Всего: 39



выдает
Код

>>> >>>Samba version 3.4.9 >>>PID Username Group Machine >>>------------------------------------------------------------------- >>>2388 admin __USERS__ sectorz (192.168.1.33) >>> >>>Service pid machine Connected at >>>------------------------------------------------------- >>>IPC$ 2388 sectorz Sun Sep 16 14:09:28 2012 >>>admin 2388 sectorz Sun Sep 16 14:09:31 2012 >>> >>>Locked files: >>>Pid Uid DenyMode Access R/W Oplock SharePath Name Time >>>-------------------------------------------------------------------------------------------------- >>>2388 2001 DENY_WRITE 0x20089 RDONLY EXCLUSIVE+BATCH /home/admin 2388 2001 DENY_NONE 0x20089 RDONLY NONE /home/admin 2388 2001 DENY_NONE 0x100081 RDONLY NONE /home/admin 



--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
dstorm81
Дата 16.9.2012, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: нет
Всего: 39



вот я лошара...
имена файлов не выводились из за того что РУССКИЕ БУКВЫ в названии папки были :(((


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
alezzz
Дата 16.9.2012, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 2
Всего: 14



Вот и проблема видна:
Код

>>>2388 2001 DENY_WRITE 0x20089 RDONLY EXCLUSIVE+BATCH /home/admin 2388

Обрезало часть вывода smbstatus начиная с кирилицы и до конца строки вместе с переводом строки. Проверил у себя на тестовой ubuntu, там perl нормально воспринимает кирилицу, так не обрезает.
PM MAIL   Вверх
dstorm81
Дата 16.9.2012, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: нет
Всего: 39



Цитата(alezzz @  16.9.2012,  13:41 Найти цитируемый пост)
Проверил у себя на тестовой ubuntu, там perl нормально воспринимает кирилицу, так не обрезает. 

у меня в консоли тоже кириллица нормально воспинимается...
беда происходит на уровне вебсервера и скрипта....

юбунта, апач, перл какие?? 


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
alezzz
Дата 16.9.2012, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 2
Всего: 14



Ubuntu 10.04 LTS
Perl 5.10.1
консоль в utf8.
А версия апача пока не важна, perl не получает от smbstatus кирилицу.
PM MAIL   Вверх
dstorm81
Дата 17.9.2012, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: нет
Всего: 39



вопрос решен

Это сообщение отредактировал(а) dstorm81 - 17.9.2012, 11:25


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0508 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.