Как избежать случайного завершения работы или перезагрузки в Linux
В этом кратком руководстве мы узнаем, как избежать случайного завершения работы или перезагрузки во время сеанса SSH в Linux и Unix-подобных операционных системах с помощью утилиты molly-guard.
Иногда вы можете забыть, что в вашей системе выполняется незавершенное задание, и выключить или перезагрузить его. Результат? Текущее задание завершается, и вам придется начинать его заново. Несмотря на то, что существуют способы переместить выполняемое задание с одного терминала на другой, мы просто часто о чем-то забываем. Позже мы сожалеем о своей неосторожности. Ну, уже нет! Сегодня я столкнулся с спасительной утилитой под названием molly-guard, которая используется для предотвращения случайного завершения работы или перезагрузки систем Linux.
molly-guard устанавливает сценарий оболочки, который отменяет существующие команды выключения/перезагрузки/остановки/отключения питания/coldreboot/pm-hibernate/pm-suspend* и сначала запускает набор сценариев, которые все должны успешно завершиться, прежде чем molly-guard вызовет настоящая команда. Один из сценариев проверяет наличие существующих сеансов SSH. Если вы запустите любую из вышеупомянутых четырех команд в сеансе SSH, сценарий оболочки попросит вас ввести имя хоста, который вы хотите выключить или перезагрузить. Это должно адекватно предотвратить случайные выключения и перезагрузки. molly-guard перенаправляет настоящие двоичные файлы в /lib/molly-guard/. Вы, конечно, можете обойти molly-guard, запустив эти двоичные файлы напрямую.
Установите molly-guard в Linux
molly-guard доступен в репозиториях по умолчанию Debian, Ubuntu и других систем на базе DEB, таких как Linux Mint, Elementary OS и т. д.
Чтобы установить molly-guard в системах на базе DEB, запустите:
sudo apt-get install molly-guard
Для дистрибутивов на основе RPM загрузите пакет molly-guard.deb и преобразуйте его в собственный пакет Linux, как описано в следующем руководстве. В следующем руководстве перейдите к разделу под названием «Преобразование RPM в пакеты DEB и наоборот» и преобразуйте пакет molly-guard deb в пакет RPM.
- Как легко создавать пакеты Linux для нескольких платформ
Избегайте случайного завершения работы или перезагрузки в Linux с помощью molly-guard.
Пришло время протестировать утилиту molly-guard.
Теперь попробуйте выключить или перезагрузить удаленную систему или VPN через 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 ubuntuserver ...
Видеть? molly-guard запрашивает имя хоста моего сервера Ubuntu. Я нажал CTRL+C, чтобы избежать выключения.
Точно так же я попробовал все команды для выключения и перезагрузки системы. molly-guard постоянно запрашивает имя хоста моей системы Ubuntu, чтобы продолжить.
sk@ubuntuserver:~$ 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 ubuntuserver ...
sk@ubuntuserver:~$ 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 ubuntuserver ...
sk@ubuntuserver:~$ 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 ubuntuserver ...
sk@ubuntuserver:~$ 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 ubuntuserver ...
Избегайте случайного завершения работы или перезагрузки во время сеанса SSH.
Если вы действительно хотите выключить или перезагрузить систему, просто введите свое имя хоста.
W: molly-guard: SSH session detected!
Please type in hostname of the machine to halt: ubuntuserver
Connection to 192.168.43.2 closed by remote host.
Connection to 192.168.43.2 closed.
Как вы видите в приведенном выше выводе, я ввел имя хоста моей системы Ubuntu (например, ubuntuserver). Теперь molly-guard знает, что я все равно действительно хотел выключить свою систему, поэтому позвольте ей выключиться.
Хорошо, коллеги-администраторы и пользователи Linux не страдают от случайного завершения работы или перезагрузки. Держите эту утилиту в своем арсенале, чтобы предотвратить случайное завершение работы и перезагрузку ваших производственных систем Linux.