检查文件是否存在可以从命令行进行,但不能从CGI进行

时间:2017-11-28 16:36:29

标签: perl iis cgi

我已经编写了一个脚本来检查我们网络上的任何计算机上次备份的时间。

它从数据库中获取计算机名称,并检查每个计算机的名称是否有日志文件。

此信息通过AJAX转发到网页,以进行仪表板式设置。

从Web运行时无法找到文件,但是如果我在命令行中运行脚本,它就可以正常运行。

备份日志位于不同的主机上,但据我所知,路径是绝对的并且构造正确。

use DBI;

use strict;
use warnings;

my $dsn = "DBI:ODBC:SERVER";
my $dbh = DBI->connect($dsn,'USER','PASSWORD');

my $sth = $dbh->prepare("SELECT TOP(20) Name From WorkStations");

if ( ! $sth->execute() ) {
    print "failed.";
    exit(0);
}

my $str = "";

while ( my $name = $sth->fetchrow_array() ) {

    my $path = "\\\\HOST\\d\$\\logs\\$name.log";

    if ( -e $path ) {
        $str .= "File Found!\n$path";
    }
    else{
        $str .= "Could not find file :(\n$path";
    }

    $str .= "<br><br>\n\n";
}

print "content-type: text/html \n\n";
print $str;

从命令行运行时,我总是得到File found!,但是当从网络访问脚本时,我总是得到Could not find this file :(

无论我使用哪种方法,从视觉上讲,每条消息末尾显示的路径总是相同的。

我在这里缺少什么,或者它可能是服务器处理请求的方式?

0 个答案:

没有答案