in reply to Perl script runs through Cron but does not generate files
Here is a piece of code for you:
Don't forget to $ chmod 755 /path/to/my/script/above.pl so it can run. First run it as a "batch" job#!/usr/bin/perl -w use strict; my $mode=shift @ARGV; my $logfile=sprintf("/tmp/%s-env.txt",$mode); open FOUT,"> $logfile" or die "$logfile: $!"; foreach my $key ( sort keys %ENV){ printf FOUT "%s = \"%s\"\n",$key,$ENV{$key}; } close FOUT; system(sprintf "umask >> %s",$logfile); system(sprintf "id >> %s",$logfile); system(sprintf "pwd >> %s",$logfile); exit(0);
which will be the same environment as a cronjob would be. Then run it from the command line:$ echo "/path/to/my/script/above.pl ascron" | at now
then check the differences:$ /path/to/my/script/above.pl ascmdlin
and that should help you rule some stuff out.diff /tmp/ascron-env.txt /tmp/ascmdlin-env.txt
Typically the difference between command line and cron has to do with permissions or environment being different. It ain't rocket science.
Peter L. Berghold -- Unix Professional
Peter -at- Berghold -dot- Net; AOL IM redcowdawg Yahoo IM: blue_cowdawg
In Section
Seekers of Perl Wisdom