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.
In reply to Re: Perl script runs through Cron but does not generate files
by blue_cowdawg
in thread Perl script runs through Cron but does not generate files
by deshdaaz
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |