Ось мій сценарій саморозриву
$ EC2_INSTANCE_ID="`wget -q -O - http://instance-data/latest/meta-data/instance-id || die \"wget instance-id has failed: $?\"`"
$ echo "ec2-terminate-instances $EC2_INSTANCE_ID" | at now + 55 min || die 'cannot obtain instance-id'
Якщо ви хочете призначити це як Самозупинка на самоперериванні , Ви можете зробити це лише один раз.
У своїй консолі EC2 перейдіть до Налаштування екземпляра , змініть поведінку вимкнення на Зупинити .
Налаштувавши /etc/cloud/cloud.cfg , ви можете звернутися до запуску сценарію завантаження за допомогою cloud-init .
Дотримуйтесь відповіді Еріка Хаммонда , вставте команду у файл і знайдіть її у шляху сценаріїв на завантаження :
$ echo '#!/bin/sh' > per-boot.sh
$ echo 'echo "halt" | at now + 55 min' >> per-boot.sh
$ echo 'echo per-boot: `date` >> /tmp/per-boot.txt' >> per-boot.sh
$ chmod +x per-boot.sh
$ sudo chown -R root per-boot.sh
$ sudo mv -viu per-boot.sh /var/lib/cloud/scripts/per-boot
Перезавантажте примірник, перевірте, чи виконується сценарій:
$ cat /tmp/per-boot.txt
per-boot: Mon Jul 4 15:35:42 UTC 2016
Якщо так, то на випадок, якщо ви забудете зупинити свій екземпляр, він запевнить вас, що екземпляр сам зробить припинення як зупинку, коли він працює 55 хвилин або будь-який час, який ви встановили в сценарії.
Broadcast message from root@ip-10-0-0-32
(unknown) at 16:30 ...
The system is going down for halt NOW!
PS: Для всіх хочуть використовувати Вугільні , одне слід зазначити , що не всі види EC2 є самовідновлення при перезапуску. Я рекомендую використовувати EC2-VPC / EBS з графіком увімкнення / вимкнення .