Solved

Cron environment issues

Posted on 2014-04-29
11
343 Views
Last Modified: 2014-04-30
In Ubuntu, I am having a lot of trouble running a script that uses a .pm module from crontab. When I try to do so, I get an error that reads:

Can't locate <perl_module>.pm in @INC (@INC contains:<list_of_directories_that_do_indeed_have_the_pm_file>)

I was wondering if it would be possible to get the crontab to run the script as a specific user, in their environment. The script works perfectly from he command line...
0
Comment
Question by:stakor
  • 4
  • 3
  • 2
  • +2
11 Comments
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 40030554
In root's crontab (not /etc/crontab!) you can do:

* * * * * su - username -c /path/to/script ...
0
 
LVL 14

Expert Comment

by:small_student
ID: 40030712
What user are you using to run the command? From that user

crontab -e

then as woolmilkporc suggested

* * * * * su - username -c /path/to/script
0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 40030721
Only root can do "su - username" without password.
0
 
LVL 37

Expert Comment

by:Gerwin Jansen
ID: 40030738
You could call your .profile first, like this:

00 10 * * * /home/user/.profile ; /path/to/script
0
 

Author Comment

by:stakor
ID: 40031026
I tried the root path. I put in:

*/15 * * * * su -l <username> -c <command>

And, in a sureal turn of events, it is having the same error that I had in <username>'s crontab.

I am now trying the /home/<username>/.profile;<command>

idea. I'll post in about 20-25 min with how that works out.  Something is up, but I don't know what...
0
Get up to 2TB FREE CLOUD per backup license!

An exclusive Black Friday offer just for Expert Exchange audience! Buy any of our top-rated backup solutions & get up to 2TB free cloud per system! Perform local & cloud backup in the same step, and restore instantly—anytime, anywhere. Grab this deal now before it disappears!

 

Author Comment

by:stakor
ID: 40031039
Sadly, same error.
0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 40031110
Why "su -l" ?  It's just "su - ..." I.e. a single dash surrounded by spaces after "su".

Nothing sureal here ...
0
 

Author Comment

by:stakor
ID: 40031204
I think I fat fingered it in the beginning. I used -<username>. I tried to get around this after man'ing su, and saw -l (at least I think I saw) that -l was another valid designator. I just tried it with - <username> and that had the same problem as "-l". It still can't find the .pm file.
0
 

Author Comment

by:stakor
ID: 40031276
Ok, I have something that works. If I add:

setenv PERL_MB_OPT "--install_base /home/<USER>/perl5"
setenv PERL_MM_OPT "INSTALL_BASE=/home/<USER>/perl5"
setenv PERL_LOCAL_LIB_ROOT "/home/<USER>/perl5"
setenv PERL5LIB /home/<USER>/perl5/lib/perl5/i686-linux-gnu-thread-multi-64int:/home/<USER>/perl5/lib/perl5
setenv PATH "$PATH":/home/<USER>/etc/turfserf/etc:/home/<USER>/perl5/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/usr/games

to a csh file that calls the perl script, it works...
0
 
LVL 37

Accepted Solution

by:
Gerwin Jansen earned 500 total points
ID: 40031301
>> Ok, I have something that works.
All the env variables you've added are usually set in .profile or .profile.user

How are these env settings done for that user normally? If you just add that 'setting' script or profile to your cron entry then it should work. Alternative is what you've done, put these settings in a script and call that before running the .pm - same solution just a different implementation.
0
 
LVL 8

Expert Comment

by:Surrano
ID: 40032159
I believe you may as well put environment variables at the top of your crontab of the user in question.
0

Featured Post

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

Little introduction about CP: CP is a command on linux that use to copy files and folder from one location to another location. Example usage of CP as follow: cp /myfoder /pathto/destination/folder/ cp abc.tar.gz /pathto/destination/folder/ab…
I. Introduction There's an interesting discussion going on now in an Experts Exchange Group — Attachments with no extension (http://www.experts-exchange.com/discussions/210281/Attachments-with-no-extension.html). This reminded me of questions tha…
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…

706 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now