So I have a script to download a file from AWS daily and append it to a spread sheet. To do this I have set up a cronjob.
The Script works fine when I run it manually, but does not work when running from the cronjob.
The code has a line:
aws s3 cp s3://My/files/backup/ ~/home/AnPoc/ --recursive --exclude "*.tgz" --include "*results.tgz"
And in the email I recieve from the cronjob execution, I see the following error message:
./AnPoc/DayProcessing.sh: line 14: aws: command not found
I don't know why the command is not being found. Any help would be great.
The only thing that worked for me was to specify the path explicitly in the script:
As a previous poster said, use
which aws
to find the location of aws.Put this code before your command line to be executed into crontab -e
You should use the full path for the "aws" command. For example, /usr/local/bin/aws
First: check where on your system the executable
aws
is stored. Use this command:Now, place a variable called
$PATH
in your crontab before the script:Those paths separated by
:
define where should be search for the exectable. In the example above it's/usr/bin
. You have to check all executables in your cron job that they are available.Another thing: try to avoid path with a tilde (
~
) in cronjobs. Use/home/user
instead.