📄 ssh.in
字号:
#!/bin/sh## External STONITH module for ssh.## Copyright (c) 2004 SUSE LINUX AG - Lars Marowsky-Bree <lmb@suse.de>## This program is free software; you can redistribute it and/or modify# it under the terms of version 2 of the GNU General Public License as# published by the Free Software Foundation.## This program is distributed in the hope that it would be useful, but# WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.## Further, this software is distributed without any warranty that it is# free of the rightful claim of any third person regarding infringement# or the like. Any license provided herein, whether implied or# otherwise, applies only to this software file. Patent licenses, if# any, provided herein do not apply to combinations of this program with# other software, or any other product whatsoever.## You should have received a copy of the GNU General Public License# along with this program; if not, write the Free Software Foundation,# Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.##SSH_COMMAND "ssh -q -x -o PasswordAuthentication=no StrictHostKeyChecking=no" SSH_COMMAND="ssh -q -x -n -l root"REBOOT_COMMAND="echo 'sleep 2; /sbin/reboot -nf' | SHELL=/bin/sh at now >/dev/null 2>&1"# Warning: If you select this poweroff command, it'll physically# power-off the machine, and quite a number of systems won't be remotely# revivable.# TODO: Probably should touch a file on the server instead to just# prevent heartbeat et al from being started after the reboot.# POWEROFF_COMMAND="echo 'sleep 2; /sbin/poweroff -nf' | SHELL=/bin/sh at now >/dev/null 2>&1"POWEROFF_COMMAND="echo 'sleep 2; /sbin/reboot -nf' | SHELL=/bin/sh at now >/dev/null 2>&1"case $1 ingethosts) for h in $ST_HOSTLIST ; do echo $h done exit 0 ;;on) # Can't really be implemented because ssh cannot power on a system # when it is powered off. exit 1 ;;off) # Shouldn't really be implemented because if ssh cannot power on a # system, it shouldn't be allowed to power it off. exit 1 ;;reset) for h in $ST_HOSTLIST ; do if [ "$h" = "$2" ] ; then $SSH_COMMAND $2 $REBOOT_COMMAND rc=$? if [ $rc == 0 ]; then sleep 2 fi exit $rc fi done exit 1 ;;status) for h in $ST_HOSTLIST ; do host $h | grep "not found:" if [ $? == 0 ]; then exit 1 fi done exit 0 ;;getconfignames) echo "ST_HOSTLIST" exit 0 ;;getinfo-devid) echo "ssh STONITH device" exit 0 ;;getinfo-devname) echo "ssh STONITH external device" exit 0 ;;getinfo-devdescr) echo "ssh-based Linux host reset" echo "Fine for testing, but not suitable for production!" exit 0 ;;getinfo-devurl) echo "http://openssh.org" exit 0 ;;getinfo-xml) cat << SSHXML"<parameters>""<parameter name=\"ST_HOSTLIST\" unique=\"1\">""<content type=\"string\" />""<shortdesc lang=\"en\">""Hostlist""</shortdesc>""<longdesc lang=\"en\">""The list of hosts that the STONITH device controls""</longdesc>""</parameter>""</parameters>"SSHXML exit 0 ;;*) exit 1 ;;esac
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -