Crontab a Script

I know my question maybe eazy, but it realy cause a problem for me

I have a Perl script to run and get some output, I run this script using perl /moutaz/ciscolog/telnet.pl

I made another script as follow:(/moutaz/ciscolog/script)
#!/bin/bash
perl /moutaz/ciscolog/telnet.pl
cp /moutaz/ciscolog/ciscolog /moutaz/ciscolog/ciscolog-$(date'+%H-%M')-$RANDOM

Then made crontab as follow:
15 * * * * /moutaz/ciscolog/script

The question:
-when apply command from shell it worked fine.

  • from crontab it doesn't, only the cp command work.

what is the problem?

May it was not able to find the Perl executable path.
Can you try the same by giving the full path to perl in your script?

Thanks
Nagarajan G

Thanks for your reply.

But it is exactly what I did.

In script which run from crontab: perl /moutaz/ciscolog/telnet.pl
Also in cron tab /moutaz/ciscolog/script

Even I tried to put in Cron perl /moutaz/ciscolog/telnet.pl it doesn't work

It is weird, I don't know what is the issue.

You need to put the full path to the Perl interpreter not just your script. You probably want:

/usr/bin/perl /moutaz/ciscolog/telnet.pl

in the script.

Unfortunantely, It also didn't work also.

Why dont you try redirecting the cron output to some log file

 15 * * * * /moutaz/ciscolog/script >> /tmp/cron.log 2>&1

If in the perl script ( /moutaz/ciscolog/telnet.pl ) you may have used the perl instead of full path to perl,try that too

Thanks
Nagarajan G

Yes, It helped alot.

The error file contain the following:

Can't locate Net/Telnet.pm in @INC (@INC contains: /usr/lib/perl5/5.8.5/i386-linux-thread-multi /usr/lib/perl5/5.8.5 /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at /moutaz/ciscolog3/telnet.pl line 4.
BEGIN failed--compilation aborted at /moutaz/ciscolog3/telnet.pl line 4.

I think this will limit the problem.

The perl script is using Net::Telnet to make telnet to routers, So what do you think the problem?