⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ssh.in

📁 Linux Heartbeat Source Code
💻 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; @REBOOT@ @REBOOT_OPTIONS@' | 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; @REBOOT@ @REBOOT_OPTIONS@' | SHELL=/bin/sh at now >/dev/null 2>&1"# Rewrite the hostlist to accept "," as a delimeter for hostnames too.hostlist=`echo $hostlist | tr ',' ' '`CheckIfDead() {	for j in 1 2 3        do          if            ping -w1 -c1 "$1" >/dev/null 2>&1          then            return 1          fi        done        return 0}case $1 ingethosts)	for h in $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 $hostlist	do	  if            [ "$h" != "$2" ]          then            continue          fi	  $SSH_COMMAND "$2" "$REBOOT_COMMAND"	  # Good thing this is only for testing...          for j in 1 2 3 4 5          do            if              CheckIfDead "$2"            then	      exit 0            fi            sleep 1          done	done	exit 1	;;status)	if	  [ -z "$hostlist" ]	then	  exit 1	fi	for h in $hostlist	do	  if            ping -w1 -c1 "$h" 2>&1 | grep "unknown host"          then	    exit 1	  fi	done	exit 0	;;getconfignames)	echo "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="hostlist" unique="1" required="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 + -