Я использую Amazon Linux 2018.03 (который, по-моему, в основном CentOS) с Python 2.7. У меня есть скрипт на python my_script.py который использует библиотеку boto3 для использования сервисов AWS. Я хочу запустить скрипт по расписанию, поэтому у меня есть запись cron в /etc/crontab .

Запись cron выглядит так:

*  *  *  *  * ec2-user cd /home/ec2-user/scripts && ./my_script.py >> log/run.log 2>&1

Разрешение для моего скрипта Python:

-rwxrwxrwx 1 ec2-пользователь ec2-пользователь 9863 10 декабря 10:50 my_script.py

Если я запускаю команду cron вручную, точно так же, как и выше, чтобы запустить скрипт, то все работает правильно. Если эта же команда запускается cron, как указано выше, мой скрипт на python завершается с ошибкой:

botocore.exceptions.ProfileNotFound: профиль конфигурации (dev) не найден

Конфигурация и учетные данные boto3 находятся в /home/ec2-user/.aws/:

-rwxr-xr-x 1 ec2-пользователь ec2-пользователь 49 дек. 15 16:11 config
-rwxr-xr-x 1 ec2-пользователь ec2-пользователь 114 дек. 15 16:11 учетные данные

Это содержимое config:

[profile dev]
output = json
region = eu-west-1

... и это содержание credentials:

[dev]
aws_access_key_id = xxxxxxxxxxxxxxxx
aws_secret_access_key = xxxxxxxxxxxxxxxxx

Как я уже говорил, все работает нормально, если я запускаю вручную, проблема заключается в запуске только cron. Почему это происходит?

0