Я использую 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. Почему это происходит?