загрузка s3 не работает из скрипта crontab - PullRequest
0 голосов
/ 08 февраля 2020

Я уже писал об этом вопросе и думал, что решил его, но, к сожалению, до сих пор не могу понять, что происходит.

В двух словах: у меня есть один файл JSON в ведре s3, которое обновляется ежедневно. Мой скрипт crontab (настроенный на запуск один раз в день) загружает файл из моего хранилища s3 в мой локальный каталог, перезаписывая существующий файл в моем локальном каталоге. Скрипт запускается локально, на терминале Ma c. Цель состоит в том, чтобы запускать скрипт один раз в день, чтобы файл постоянно перезаписывался и обновлялся.

Я убедился, что файл JSON в корзине s3 постоянно обновляется, поэтому я не думаю, что это проблема.

Вот команда на crontab:

03 23 * * * /Library/Frameworks/Python.framework/Versions/3.7/bin/aws s3 cp s3://sfbucket.bucket/sf_events.json /Users/Documents/TownSounds_Javascript/data/sf_events.json >> /Users/Documents/logs3.txt 2>&1

Приведенный выше скрипт crontab не запускается. Единственный способ запустить его - отредактировать скрипт crontab один раз, вручную: * * * * *

, после чего он запускается один раз, а затем возвращается к неработающему вообще.

Когда Я проверяю logs3.txt, дата изменения, по-видимому, не обновляется, что также свидетельствует о том, что он не запускается.

Я провел дальнейшее исследование и создал тестовый скрипт crontab:

* * * * * echo `date` >> /Users/Documents/testCrontab.txt

И он работает нормально, выводя точно так, как ожидалось.

Может кто-нибудь сказать мне, почему Сценарий crontab для файла s3 может не запускаться? Нужно ли входить в систему s3, чтобы скрипт мог выполнять свои функции и извлекать файл? Amazon s3 автоматически выходит из системы после определенного периода бездействия, поэтому это кажется невозможным.

Я читал, что aws s3 sync может быть тем, что я ищу?

Любая помощь будет очень, очень ценю, так как я уже некоторое время бьюсь об эту голову об стену!

Спасибо.

1 Ответ

1 голос
/ 08 февраля 2020

Существует много причин, по которым команда AWS CLI может не работать (в данном случае aws s3 cp) ... вам (или сценарию, выполняющему эту команду, например, crontab) необходимо иметь соответствующие учетные данные для взаимодействовать с вашими aws ресурсами (см .: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html). Вам необходимо убедиться, что ACCESS_KEY & SECRET_KEY доступны либо как переменная ENV, либо вы можете предоставить его непосредственно команде aws (см .: передача доступа и секретный ключ aws cli )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...