Perl写入不使用cron作业的文件
所以,我用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脚本时(通过从浏览器访问页面),它完全可以
$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选项卡中正确设置路径。