Иногда мы забываем, что выполняется важное задание на VPS или на удаленной системе. Без проверки, мы просто выключаем или перезагружаем VPS. Результат? Работа прекращаются из – за нашей невнимательности. И мы должны начать работу с самого начала. Несмотря на то, есть способы, чтобы переместить работу от одного терминала к другому, мы просто забыть подобные вещи. Существует утилита под названием molly-guard, которая используется для предотвращения системы Linux от случайного выключения или перезагрузки.
molly-guard устанавливает скрипт, который перекрывает существующие команды / reboot / halt / poweroff / coldreboot / pm-hibernate / pm-suspend и первым запускает набор сценариев, которые должны успешно пройти molly-guard, прежде чем запускается настоящая команда. Один из сценариев проверяют существующие сеансы SSH. При запуске любого из вышеупомянутых команд в SSH сессии, сценарий оболочки попросит вас ввести имя хоста, который вы хотите выключить или перезагрузить. Это должно адекватно предотвратить вас от случайных отключений и перезагрузок. molly-guard направит реальные двоичные файлы в /lib/molly-guard/. Вы можете, конечно, обойти molly-guard, выполнив эти двоичные файлы непосредственно.
В этом кратком руководстве, вы узнаете, как избежать случайного выключения или перезагрузки через SSH сессию в Unix-подобных операционных системах.
Избежание случайного закрытия или перезагрузки Linux с помощью molly-guard
Установка
molly-guard доступен в репозитории по умолчанию в Debian, Ubuntu и других систем на основе DEB, таких как Linux Mint, Elementary OS и т.д.
Чтобы установить molly-guard в системах на основе DEB, выполните следующую команду:
sudo apt-get install molly-guard
Для распределенных RPM, скачайте пакет Molly-guard.deb, и конвертируйте в качестве собственного пакета Linux, как описано в следующем руководстве. В следующем руководстве, перейдите в раздел под названием “Convert RPM to DEB packages and vice versa” и конвертируйте DEB пакет molly-guard в пакет RPM.
Применение
Пришло время проверить эту утилиту.
Теперь попробуйте выключить или перезагрузить удаленную систему или VPS через SSH:
$ sudo poweroff W: molly-guard: SSH session detected! Please type in hostname of the machine to poweroff: ^C Good thing I asked; I won't poweroff destroyer ...
Видите? molly-guard спрашивает имя хоста вашего сервера Ubuntu. Нажмите CTRL + C, чтобы избежать отключения.
Точно так же можно попробовать все команды отключения питания, перезагрузке системы. molly-guard продолжал спрашивать имя хоста моей системы Ubuntu, чтобы продолжить.
sk@destroyer:~$ sudo reboot W: molly-guard: SSH session detected! Please type in hostname of the machine to reboot: ^C Good thing I asked; I won't reboot destroyer ... sk@destroyer:~$ sudo shutdown -r now W: molly-guard: SSH session detected! Please type in hostname of the machine to shutdown: ^C Good thing I asked; I won't shutdown destroyer ... sk@destroyer:~$ sudo shutdown -h now W: molly-guard: SSH session detected! Please type in hostname of the machine to shutdown: ^C Good thing I asked; I won't shutdown destroyer ... sk@destroyer:~$ sudo halt W: molly-guard: SSH session detected! Please type in hostname of the machine to halt: ^C Good thing I asked; I won't halt destroyer ...
Если вы действительно хотите выключить или перезагрузить систему, просто введите имя вашего хоста.
W: molly-guard: SSH session detected! Please type in hostname of the machine to halt: destroyer Connection to 192.168.43.2 closed by remote host. Connection to 192.168.43.2 closed.
Как вы видите, в приведенном выше выводе, мы ввели имя хоста системы Ubuntu (например. destroyer). Теперь, molly-guard знает, что мы действительно хотим отключить свою систему в любом случае, так что это только что сделали.
Думаем, администраторам Linux подобная утилита поможет избежать проблем от случайного выключения или перезагрузки. Дополните этой утилитой свой арсенал, чтобы предотвратить себя от случайного выключения или перезагрузки вашего производственного сервера.
Надеюсь это поможет. Если вы найдете наши гид полезными, поделитесь им в соц сетях!