TranslateProject/translated/tech/20170219 How to protects Linux and Unix machines from accidental shutdowns-reboots with molly-guard.md

5.4 KiB
Raw Blame History

使用 molly-guard 保护你的 Linux/Unix 机器不会被错误地关机/重启

我去!又是这样。 我还以为我登录到家里的服务器呢。 结果 重启的居然是数据库服务器 。 另外我也有时会在错误终端内输入 "shutdown -h 0" 命令。 我知道有些人 经常会犯这个错误 我的愤怒无从容忍 有办法解决这个问题吗?我真的只能忍受这种随机重启和关机的痛苦吗? 虽说人总是要犯错的,但总不能一错再错吧。

最新我在 tweet 上发了一通牢骚:

I seems to run into this stuff again and again :( Instead of typing sudo virsh reboot d1

I just typed & rebooted my own box sudo reboot d1

-- nixCraft (@nixcraft) February 192017

结果收到了一些建议。我们来试一下。

向你引荐 molly guard

Molly-Guard 尝试阻止你不小心关闭或重启 Linux 服务器。它在 Debian/Ubuntu 中的包描述为:

The package installs a shell script that overrides the existing shutdown/reboot/halt/poweroff/coldreboot/pm-hibernate/pm-suspend* commands and first runs a set of scriptswhich all have to exit successfully before molly-guard invokes the real command。 One of the scripts checks for existing SSH sessions。 If any of the four commands are called interactively over an SSH session the shell script prompts you to enter the name of the host you wish to shut down。 This should adequately prevent you from accidental shutdowns and reboots。

貌似 molly-guard 还是个专有名词:

A shield to prevent tripping of some Big Red Switch by clumsy or ignorant hands。Originally used of the plexiglass covers improvised for the BRS on an IBM 4341 after a programmer's toddler daughter (named Molly) frobbed it twice in one day。 Later generalized to covers over stop/reset switches on disk drives and networking equipment。 In hardware catalogues you'll see the much less interesting description "guarded button"。

如何安装 molly guard

使用 apt-get command 或者 apt command 来搜索并安装 molly-guard

$ apt search molly-guard
$ sudo apt-get install molly-guard

结果为: Fig.01: Installing molly guard on Linux

测试一下

输入 reboot 命令 和 shutdown 命令:

$ sudo reboot
# reboot
$ shutdown -h 0
# sudo shutdown -h 0
### running wrong command such as follows instead of
### sudo virsh reboot vm_name_here
$ sudo reboot vm_name_here

结果为: Fig.02: Molly guard saved my butt ;\) 我超级喜欢 molly-guard。因此我将下行内容加入到 apt-debian-ubuntu-common.yml 文件中了:

 - apt
 name molly-guard

是的。我使用 Ansible 在所有的 Debian 和 Ubuntu 服务器上都自动安装上它了。

相关 My 10 UNIX Command Line Mistakes

如果我的 Linux 发行版或者 Unix 系统(比如 FreeBSD 没有 molly-guard 怎么办呢?

不用怕,设置 shell 别名

## bash shell example ###
alias reboot = "echo 'Are you sure' If so run /sbin/reboot"
alias shutdown = "echo 'Are you sure' If so run /sbin/shutdown"

你也可以 临时取消别名机制运行真正的命令 。比如要运行 reboot 可以这样:

# \reboot

或者

# /sbin/reboot

另外你也可以写一个 shell/perl/python 脚本来调用这些命令并要求 确认 reboot/halt/shutdown 的选项。


via: https://www.cyberciti.biz/hardware/how-to-protects-linux-and-unix-machines-from-accidental-shutdownsreboots-with-molly-guard/

作者:Vivek Gite 译者:lujun9972 校对:校对者ID

本文由 LCTT 原创编译,Linux中国 荣誉推出