On 2/15/12 Wed  Feb 15, 2012  10:13 AM, "Punit Jain"
<contactpunitj...@gmail.com> scribbled:

> Hi,
> 
> I am running my perl script and using some perl modules like below :-
> 
> use File::Path qw(mkpath);
> use File::Rsync;
> my $rsync = '/opt/zimbra/rsync/bin/rsync';
> 
> 
> when I run the script using
> perl scriptname --> then it runs fine, however when I run through crontab, it
> get this error : -
> 
> Can't locate File/Rsync.pm in @INC (@INC contains:/etc/perl
> /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5
> /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8
> /usr/local/lib/site_perl .) at /opt/zimbra/lbin/backup.pl line 8.
> 
> Any clues ?

One problem with executing programs using cron is that cron does not execute
your login scripts that setup and customize your interactive session, such
as .profile, .login, .bashrc, or .cshrc, depending upon your shell.

Do you use any environment variables such as PERL5LIB? Those will not be
set.

Where is the module File::Rsync located? Type 'perldoc -l File::Rsync' to
find out.

One workaround is to have cron execute a shell script that sources your
login scripts and then executes your Perl program, something like:

#!/bin/tcsh
#
source ~user/.login
source ~user/.cshrc
perl scriptname

(I use tcsh, so the above may not be correct for your shell)



-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to