Автор Тема: SMBindex  (Прочетена 20391 пъти)

sunhater

  • Напреднали
  • *****
  • Публикации: 329
    • Профил
SMBindex
« -: May 11, 2004, 17:59 »
Здравейте,

Целта на тази тема е да събера мнения, идеи и съвети. Разработвам един проект за търсачка на файлове за LAN мрежа. Проекта се състои от две части:

    Индексиращ скрипт smbindex.php - Претърсва мрежата за PC-та с пуснат NetBIOS/Samba. Проверява за всяко открито PC поделените папки със свободен достъп. Прави се списък на файловете, който влиза в MySQL таблица.

    Претърсващ скрипт smbsearch.php - Форма за търсене + самото търсене. Ето един снапшот.

Индексиращият скрипт трябва да се изпълнява периодично чрез cron (аз го правя на всеки час). Той не се намира в DocumentRoot директорията на Apache, а в /usr/local/smbindex. Понеже времето за индексиране на файловете се проточва, данните се вкарват във временна MySQL таблица TEMP. След като завърши попълването на TEMP, съдържанието й се прехвърля в таблица FILES. За извличане на информацията от NetBIOS мрежата се използват командите findsmb и smbclient от Samba-та, които се изпълняват чрез shell_exec("command") в PHP.

Претърсващият скрипт показва резултатите по въведените от потребителя входни данни. Резултатите се вземат от таблица FILES.

Главния проблем на всичко това, е че при по-голяма мрежа от примерно 100 PC-та индексиращият скрипт ще се изпълнява много дълго време (при мен - 7 PCs/5-15 min), и не мога да се сетя как да го преодолея.

Очаквам отговори.

P.S. Извинявам се за странните постове в другия форум. Нещо имах проблеми с кирилицата. Ще помоля админите да ги изтрият.
Активен

zazzko

  • Напреднали
  • *****
  • Публикации: 626
    • Профил
    • WWW
SMBindex
« Отговор #1 -: May 11, 2004, 20:20 »
Разгледай търсачката ffsearch. Тя използва паралелно сканиране, като прави 5 (или колкото се зададе в конфигурационния файл) инстанции на smbclient. Писана е на Perl и PHP (като frontend).

sunhater

  • Напреднали
  • *****
  • Публикации: 329
    • Профил
SMBindex
« Отговор #2 -: May 12, 2004, 23:01 »
Много ми е чудно как става тоя номер с 5-те instances. Не съм толкова на ти с Perl-а.
Активен

CaBA

  • Напреднали
  • *****
  • Публикации: 303
    • Профил
    • WWW
SMBindex
« Отговор #3 -: May 13, 2004, 17:00 »
форква се. man 2 fork
Активен

10 години ябълкова диета стигат, стигат!

Йордан

  • Напреднали
  • *****
  • Публикации: 1451
  • Distribution: Ubuntu / Gentoo
  • Window Manager: Gnome
  • не е важно колко ти е голяма пишката, а какво можеш с нея
    • Профил
    • WWW
SMBindex
« Отговор #4 -: May 13, 2004, 20:27 »
az pak da [o[itam 6te imame li wazmojnost za download na scriptowete '<img'>
Активен

Всеки пост - отговор на въпрос !!!

Йордан Георгиев
http://ygeorgiev.net/

sunhater

  • Напреднали
  • *****
  • Публикации: 329
    • Профил
SMBindex
« Отговор #5 -: May 13, 2004, 20:42 »
Download ще има, но първо трябва да придобие завършен вид с инсталатор.
Активен

sunhater

  • Напреднали
  • *****
  • Публикации: 329
    • Профил
SMBindex
« Отговор #6 -: May 13, 2004, 20:55 »
Цитат
форква се. man 2 fork

Това не е ли някаква функция от библиотеките за C++. Как мога да я използвам в PHP?

Ще разясня малко по-пoдробно как работи в момента smbindex.php.
За да може да се стартира от командния ред (също и от cron) той започва с #!/usr/bin/php. Стартира се findsmb ($result = shell_exec("$SMBPATH/findsmb");). Резултатът се филтрира като от него се извличат имената на компютрите и техните IP-та съответно в масиви $PC[] и $IP[]. После започва цикъл който обхожда тези масиви и за всяка интерация се изпълнява smbclient с опции за списък от shares. Резултатът се филтрира така, че да се хванат само free shares, които влизат в масив $shares[PC][shares].
После започва най-интересната част - индексирането на файловете. Правят се два вложени цикли. Външният брои компютрите, а вътрешния - shares за текущия компютър. За всеки share се изпълнява рекурсивната функция add_files($PC, $IP, $share, $dir), като за всяка директория последователно се пуска по един smbclient.

Проблема е как да пусна паралелно да се индексират няколко компютри
Активен

sunhater

  • Напреднали
  • *****
  • Публикации: 329
    • Профил
SMBindex
« Отговор #7 -: May 14, 2004, 00:12 »
Ооооооо, сетих се!
Активен

Йордан

  • Напреднали
  • *****
  • Публикации: 1451
  • Distribution: Ubuntu / Gentoo
  • Window Manager: Gnome
  • не е важно колко ти е голяма пишката, а какво можеш с нея
    • Профил
    • WWW
SMBindex
« Отговор #8 -: May 14, 2004, 14:16 »
radwam se 4e si 4ast ot OpenSource '<img'>
Активен

Всеки пост - отговор на въпрос !!!

Йордан Георгиев
http://ygeorgiev.net/

sunhater

  • Напреднали
  • *****
  • Публикации: 329
    • Профил
SMBindex
« Отговор #9 -: May 15, 2004, 00:43 »
Успях да го направя с няколко инстанции на smbclient. Броя им се посочва в конфиг файл. Сега SMBindex e почти готов. Искам да попитам как мога да го лицензирам с GPL лиценз?
Активен

Йордан

  • Напреднали
  • *****
  • Публикации: 1451
  • Distribution: Ubuntu / Gentoo
  • Window Manager: Gnome
  • не е важно колко ти е голяма пишката, а какво можеш с нея
    • Профил
    • WWW
SMBindex
« Отговор #10 -: May 15, 2004, 08:48 »
truden wapros '<img'>
... to i da go licenzira6 pak 6te ima tapacite koito 6te kopirat
... mai trqbwa samo GPL da si warwi kam nego
ako go sloji6 na saita i ima data tow ewentualno moje da ti pomogne za awtorskite prawa ... stawa waprosa za "Made in BG"
Активен

Всеки пост - отговор на въпрос !!!

Йордан Георгиев
http://ygeorgiev.net/

thc

  • Напреднали
  • *****
  • Публикации: 184
  • Distribution: FreeBSD
  • Window Manager: Gnome
    • Профил
    • WWW
SMBindex
« Отговор #11 -: May 15, 2004, 09:49 »
sunhater, това дето си го замислил е много яко '<img'> аз от доста време търся подобен скрипт, мъчих се да си правя и все нещо не ставаше.Ти си решил проблема директно  '<img'> Ако ви трябват тестери аз съм насреща - само дайте линк.
Активен

CS & WoW players click here

Йордан

  • Напреднали
  • *****
  • Публикации: 1451
  • Distribution: Ubuntu / Gentoo
  • Window Manager: Gnome
  • не е важно колко ти е голяма пишката, а какво можеш с нея
    • Профил
    • WWW
SMBindex
« Отговор #12 -: May 15, 2004, 23:34 »
m/u drugoto i az sam nawit za testowe
a da te pitam ima li wazmojnost d aindeksira powe4e ot edna work grupa
Активен

Всеки пост - отговор на въпрос !!!

Йордан Георгиев
http://ygeorgiev.net/

sunhater

  • Напреднали
  • *****
  • Публикации: 329
    • Профил
SMBindex
« Отговор #13 -: May 16, 2004, 01:55 »
Не че ви нямам доверие, но няма да ми е много приятно ако след като го пусна за download, моето моето творение се появи лицензирано от друг. Затова искам първо да го лицензирам с GPL и после всичко останало. Аз доколкото четох на http://www.gnu.org е достатъчно само да добвя текста на лиценза и други неща и съм готов. Така ли е наистина или не съм разбрал? Не трябва ли поне да изпрата e-mail до someone[at]gnu.org да известя че аз съм лицензирал пръв този продукт?
Колкото до workgroups - скриптът НЕ претърсва точно определена група а абсолютно всички компютри по зададен broadcast адрес (примерно 192.168.0.255) независимо в коя група членуват.
Активен

Йордан

  • Напреднали
  • *****
  • Публикации: 1451
  • Distribution: Ubuntu / Gentoo
  • Window Manager: Gnome
  • не е важно колко ти е голяма пишката, а какво можеш с нея
    • Профил
    • WWW
SMBindex
« Отговор #14 -: May 16, 2004, 09:36 »
samo 6te dobawq 4e koito ceni truda na drugite nikoga ne naru6awa GPL ... no w ddeistwitelnost si praw ima kele64eta koito go naru6awat
Активен

Всеки пост - отговор на въпрос !!!

Йордан Георгиев
http://ygeorgiev.net/

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
smbindex-2.03
Настройка на програми
tlf 3 1349 Последна публикация Aug 01, 2004, 12:21
от the_real_maniac
SMBindex
Web development
sunhater 4 1903 Последна публикация Nov 09, 2004, 14:11
от sdr