AWS S3 Syn c команда при запуске экземпляра ec2 - PullRequest
2 голосов
/ 16 июня 2020

Я хочу запустить команду ниже при запуске EC2. Это коробка Ubuntu 18.04. Я пробовал crontab (@reboot), сценарий запуска данных пользователя согласно статье Данные пользователя . Я вижу, что эта команда выполняется в обоих случаях (я создаю выходной файл журнала), но на самом деле она не завершает синхронизацию c. Если я запускаю эту команду вручную в терминале, она работает отлично.

aws s3 sync s3://mybucket s3://mybucket2

Да, я пробовал перезагрузиться, а также скрипт ссылки aws. См. Ниже файловую структуру и выражение crontab. s3syn c .log пуст. Похоже, что cron запущен, но не выполняет команду. или что-то еще

-rw-rw-r-- 1 ubuntu ubuntu        0 Jun 16 14:55 s3sync.log
-rwxrwxr-x 1 ubuntu ubuntu       58 Jun 16 14:44 s3sync.sh

@ reboot sh /home/ubuntu/s3sync.sh> /home/ubuntu/s3sync.log

Content of s3sync.sh

aws s3 sync s3://mybucket s3://mybucket2

1 Ответ

2 голосов
/ 16 июня 2020

Userdata будет выполняться только при первой загрузке экземпляра.

У вас есть 3 варианта:

  • Параметр @reboot cron
  • Создать systemd service для выполнения задачи при перезагрузке
  • Подождите, пока состояние экземпляра станет «запущенным», и вызовите команду SSM, чтобы вызвать это, используйте CloudWatch Events для обнаружения , когда Состояние экземпляра EC2 становится работающим.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...