Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl写入不使用cron作业的文件_Perl_Curl_Cron - Fatal编程技术网

Perl写入不使用cron作业的文件

Perl写入不使用cron作业的文件,perl,curl,cron,Perl,Curl,Cron,所以,我用perl编写了一个相当大的脚本,我最近刚开始从服务器主机使用Cron 在脚本中,我写入如下文件: $filename = 'ids.txt'; open($fh, '>>', $filename) or die "Could not open file '$filename' $!"; print $fh "$id "; close $fh; print "Write to File Complete.\n"; 当我正常执行CGI脚本时(通过从浏览器访问页面),它完全可以

所以,我用perl编写了一个相当大的脚本,我最近刚开始从服务器主机使用Cron

在脚本中,我写入如下文件:

$filename = 'ids.txt';
open($fh, '>>', $filename) or die "Could not open file '$filename' $!";
print $fh "$id ";
close $fh;
print "Write to File Complete.\n";
当我正常执行CGI脚本时(通过从浏览器访问页面),它完全可以正常工作。 不过,当我使用Cron自动执行脚本时,显然没有任何内容写入文件

在同一个脚本中,我还将cookies(使用cURL)写入如下文件:

my $CURL = "curl -s -b cookie_$id -c cookie_$id -L";
然后当然使用tic标记(`)执行它。这通常是有效的。应该将cookie写入文件名cookie(无论变量ID是什么)

尽管在使用Cron时,它以某种方式绕过了这一点

为了让脚本完成它的任务,它必须将cookie写入一个文件。它从来没有这样做过。尽管看起来确实完成了任务(尽管没有写入ids.txt)

我使用Godaddy作为服务器主机

目前正在使用Linux CPanel托管


*注意:我没有输入任何特殊参数以使脚本“cron”友好。

请记住,运行完cron的脚本具有不同的环境变量。路径变量尤其值得注意

如果使用cron运行上述脚本,“id.txt”将转到cron执行脚本的工作目录,这也可能不是您所期望的


最好的做法是完全限定路径名(例如/tmp/id.txt而不是id.txt),并将日志设置为这些完全限定的路径名之一,以便您可以捕获这些错误。

在混合环境中设置cron时,我也会在cron选项卡中正确设置路径。