我在Windows 2008服务器上安装了awstats。 我安排Updatestats.bat文件每天运行,任务运行正常,没有错误,但脚本没有被执行或者抛出了我看不到的错误。
- 如果我直接从命令行运行bat文件,那么它可以正常工作。 -
我已经尝试过各种Windows调度程序的替代方案,例如“nncron
”和“Freebyte Task Scheduler
”,nncron有同样的问题,但是freebyte应用程序有效,但遗憾的是它没有运行一项服务是没有用的。
这是bat文件的内容,所有行都是这样的。
c:\strawberry\perl\bin\perl.exe D:\AWStats\wwwroot\cgi-bin\awstats.pl config=earlsmere.co.uk -update
谁有任何想法?
答案 0 :(得分:1)
您的无人值守环境明显不同于您的命令行。检查是否设置了以下内容:
作为一种快速解决方法,您可以使用chdir
function,lib
module和$ENV{PATH}
entry直接在脚本中设置它们。
在开始执行任何其他操作之前,您还可以尝试捕获标准输出和错误以及以下重定向:
open(STDOUT, '>>', '/full/path/to/out.log') || die "Error stdout: $!";
open(STDERR, '>>', '/full/path/to/err.log') || die "Error stderr: $!";
请注意,如果确实有工作目录设置错误,您确实应该使用完整路径。并确保目标目录/文件对任何人都可写。
答案 1 :(得分:0)
看起来输出在太空中丢失......
我建议将命令的输出重定向到文件,如下所示:
c:\strawberry\perl\bin\perl.exe D:\AWStats\wwwroot\cgi-bin\awstats.pl config=earlsmere.co.uk -update > c:\my_log.txt 2>&1
(由Anders Lindahl提供:Redirect stdout and stderr to a single file in DOS)