Intereting Posts
Печать колонок с помощью AWK? Как запустить программу при загрузке? Проблемы с составлением VASP Является ли ssh-сервер, используемый в переадресации портов, рассматривается как прокси-сервер? Какое выражение / логику нужно добавить в скрипт, который проверяет журнал, который меняется каждый день, поскольку он имеет встроенную в него дату Что означает опция –color = auto для GNU grep? Debian 8 (Jessie) не загружается при перезагрузке с ошибкой «Не удалось запустить службу входа», Почему vim не может найти synax.vim на моей новой установке Ubuntu? Fedora 17 не загружается Как написать / отредактировать / обновить переменную eIi OsIndications из командной строки? Как я могу исправить проблему запуска Xorg? Ошибка Eclipse при открытии: Linux Mint 12 Изменение способа отображения папок в терминале Как обрабатывать недоступные пакеты texlive на el7 как остановить перезагрузку Linux после паники при загрузке

Веб-интерфейс для поиска / grep / ack

В моей лаборатории мы пытаемся создать веб-сайт, который позволяет пользователю вводить запросы для find , ack , grep в определенном каталоге. Веб вернет HTML с таблицей списка кликаемых файлов (щелкните по ним, чтобы загрузить файл).

Например, в этом интерфейсе пользователь вводит слово в форме в браузере, и система будет называть find . -name "*word*" find . -name "*word*" и отправить HTML-код с результатом.

Что-то вроде этого было сделано раньше? Мы не хотели бы изобретать колесо. Какие инструменты, утилиты или пакеты будут полезны для создания этой функции?

Мое любимое решение в этом случае – скрипт Perl CGI. Таким образом, вы можете обрабатывать специальные случаи, такие как

 word = " -delete -name " 

и вы должны предоставить сопоставление от пути в вашей файловой системе к URL-адресу веб-сервера.

В самом простом, то, что вы просите, очень просто:

HTML

 <html><body> <form action="../cgi-bin/find_files.pl" method="POST"> <input type="text" name=name></input> <input type=submit> </form> 

Скрипт Perl

 #!/usr/bin/perl use CGI qw(:standard); use CGI::Carp qw(warningsToBrowser fatalsToBrowser); my $cgi = new CGI; my $target='/tmp'; ## directory to search in my $name = $cgi->param('name') || carp("no search terms entered"); my $res=`find $target -name $name`; my @lines=split(/\n/,$res); print header; print "<table>"; foreach my $line (@lines) { print "<tr><td>$line</td></tr>"; } print "</table>";