Нужно из перловой программы получить список файлов в рашаренной папке.
список файлов из локальной папки получить просто.
а вот как получить из расшаренной?
шара может находится и на виндовом сервере и на линуксовом.
сама перлованая программа запускается на виндовом сервере с прикрученным IIS и ActivePerl.Искал по opennet.ru - ничего не нашел=(
Поиск в \\шара\папка ("\\\\шара\\папка\\*.*")?
>Поиск в \\шара\папка ("\\\\шара\\папка\\*.*")?делаю
#!/usr/bin/perl
$logdir='\\\\ntb24\\inventory$\\Reports\\';
opendir (DIR, $logdir);
@spisok=readdir (DIR);
closedir (DIR);
foreach $list (@spisok) {
open (FILE, "< $logdir/$list");
print '<tr>',"\n";
@f=<FILE>;
close (FILE);
}ну и после этого происходит разбор данных файлов...
так вот - разбора то не происходит=(
я получаю либо целиковые файлы либо какой-то бред=(
когда указываю локальные файлы - они нормально разбираютсь и нормально выдается выходной файл - при удаленной работе список файлов я получаю - но вот почему то файлы не разбираются=(разбираются в смысле затачиваются под меня - то есть так как мне нужно и выводятся в файл out.htm=(
что не так делаю?
разобрался=)
дело в моих кривых руках=)
>Поиск в \\шара\папка ("\\\\шара\\папка\\*.*")?
испытываю неприятную проблему с этим=(
$logdir="\\\\my_serv\\log_dir$\\log\\";
когда запускаю скрипт с локальной машины - он нормально отрабатывается считывая все файлы с расшаренной папки.
но как только я запускаю все это дело с помощью IIS через броузер - тогда стоп - скрипт отрабатывает по строки где производится поиск папки и не видит не одного файла в папке!
доступ однозначно есть для всех и полный...
ActivePerl - самый последний.
что не так делаю?Кроме того никто не посоветовал -если я буду запускать этот скрипт под linux'ом он ведь работать не будет... как мне подключаться к расшаренным виндовым папкам с пмощью perl из под linux?
Если еще актуально:>испытываю неприятную проблему с этим=(
>$logdir="\\\\my_serv\\log_dir$\\log\\";1 - если используешь двойные кавычки, то '$' _нужно_ заэкранировать: log_dir\$
2 - слэши можно поменять на прямые (про запуск из-под IIS не знаю, а просто так - прокатывает)
$logdir='//my_serv/log_dir$/log/';>Кроме того никто не посоветовал -если я буду запускать этот скрипт под
>linux'ом он ведь работать не будет... как мне подключаться к расшаренным
>виндовым папкам с пмощью perl из под linux?3 - Про запуск под линух - с чего ты взял, что в линуксе (или любом другом *nix) "расшаренные виндовые папки" доступны по UNC? Да и не надо с помощью перловки подключатся. Для этого есть smbmount/cifsmount. А для скрипта это будет обычная директория.
>Если еще актуально:
>
>>испытываю неприятную проблему с этим=(
>>$logdir="\\\\my_serv\\log_dir$\\log\\";
>
>1 - если используешь двойные кавычки, то '$' _нужно_ заэкранировать: log_dir\$
>
>2 - слэши можно поменять на прямые (про запуск из-под IIS не
>знаю, а просто так - прокатывает)
>$logdir='//my_serv/log_dir$/log/';менял и на прямые - и экранировал и ставил одинарные кавычки вместо двойных - одна и таже фигня - no such file or directory....
делал даже так - мапил папку и пытался с диска считать - фигушки - но such file or directory...
что не так интересно?
может еще какие нить логи надо дать?
может еще какой лог выкинуть?
>3 - Про запуск под линух - с чего ты взял,
>что в линуксе (или любом другом *nix) "расшаренные виндовые папки" доступны
>по UNC? Да и не надо с помощью перловки подключатся. Для
>этого есть smbmount/cifsmount. А для скрипта это будет обычная директория.Ну, почему же. Есть же для линуха перловый модуль Module Filesys::SmbClient (A/AL/ALIAN/Filesys-SmbClient-3.0.tar.gz)
Сам правда не смотрел, но думаю --- поможет.
>...но как только я запускаю все это дело с помощью IIS...собака еще тут может порыться - я про то, имеет ли право юзер, из-под которого запущен IIS (скорее всего "SYSTEM"), на твою шару (или на замапленный диск).
>>...но как только я запускаю все это дело с помощью IIS...
>
>собака еще тут может порыться - я про то, имеет ли право
>юзер, из-под которого запущен IIS (скорее всего "SYSTEM"), на твою шару
>(или на замапленный диск).
а если выставленно everyone - full contorl...
соответственно и system должен по идее входить в everyone...
короче - фиг знает=(