[CentOS] run bash <filename> from cron

Wed Nov 15 16:55:14 UTC 2017
Noam Bernstein <noam.bernstein at nrl.navy.mil>

> On Nov 15, 2017, at 11:48 AM, m.roth at 5-cent.us wrote:
> Mark Haney wrote:
>> This might be a bit OT, but I've never had to do this before and what
>> I've googled doesn't seem to be working.
>> I have an ansible playbook that I'm working on that I want to run as a
>> cronjob.  One task I'm having trouble with is where I have a text file
>> with lines like:
>> rd.pl "blah blah"
>> rd.pl "blah blah blah"
>> This text file has to be 'executed' using 'bash filename.txt'. (Don't
>> ask why, I'm working on code that isn't mine.) When I run the playbook
>> in a console this bit works perfectly.  However, when it's being run
>> from cron, it dies with 'rd.pl: command not found'.  My original thought
>> is that cron's $PATH is missing the location to this rd.pl file (it's in
>> /root/bin), so one suggestion from the Google was to add the path into
>> /etc/crontab, but I'm still having the same problem.  At this stage,
>> I've no idea what to try next.  Any ideas?
>> For the record, this was the only option to handle the task I'm having
>> issues with inside cron.
> Yes. Do not trust your environment, running as a cron job, to be what you
> think it is. Try testing it by have your cron job, at the top of the
> script, issue the env command.

What about just giving the full path to the rd.pl script in the text file (i.e. /root/bin/rd.pl) ?


Noam Bernstein, Ph.D.
Center for Materials Physics and Technology
U.S. Naval Research Laboratory
T +1 202 404 8628  F +1 202 404 7546
https://www.nrl.navy.mil <https://www.nrl.navy.mil/>