Can't run AWS CLI from CRON (credentials)

Solution 1:

When you run a job from crontab, your $HOME environment variable is /

The Amazon client looks for either




If $HOME = /, then the client won't find those files

To make it work, update your script so that it exports an actual home directory for $HOME

export HOME=/root

and then put a config or credentials files in


Solution 2:

If it works when you run it directly but not from cron there is probably something different in the environment. You can save your environment interactively by doing

set | sort > env.interactive

And do the same thing in your script

set | sort > /tmp/env.cron

And then diff /tmp/env.cron env.interactive and see what matters. Things like PATH are the most likely culprits.

Solution 3:

I was able to solve this issue through the following:

export AWS_CONFIG_FILE="/root/.aws/config"

Solution 4:

Put this code before your command line to be executed into crontab -e