一键虚拟机关机/重启---远离重复---Shell小脚本

本文介绍了一种通过编写shell脚本来实现批量关闭或重启多个虚拟机的方法,解决了VMware中无法一键操作多台虚拟机的问题。脚本通过ssh远程连接到各虚拟机并执行关机或重启命令,前提条件是虚拟机间已设置免密登录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目场景:

解决了每次虚拟机关机或重启都需要手动一个个关机或重启的烦恼!

问题描述:

每天的学习工作结束,当需要关闭虚拟机时,VMware的一键关机或者重启无法起作用,于是写了个小脚本实现改功能

解决方案(脚本代码):

使用说明:总共有两个脚本文件shut.sh,down.sh,使用时./shut.sh 1:关机,./shut.sh 2:重启

文件1:shut.sh:
唯一注意事项:ES_HNS=这里放入除本机的所有需要操作的虚拟机hostname,本机hostname不许放入!

#!/bin/bash

echo "传参:1关机,2重启"

#ES_HNS=这里放入除了本机的所有需要操作的hostname或ip,本机hostname不许放入!
ES_HNS='xxx xxxx xxx'
THIS_HN=@HOSTNAME
CMD=$1

if [ $# -ne 1 ]
then
	echo "Usage:"
	echo "$0,please input:1 or 2"
	exit 1
fi

for HN in $ES_HNS
do
	./down.sh $HN $CMD
	if [ 0 != $? ]
	then
		echo $HN成功操作
	else
		echo $HM失败操作
	fi

done
wait

echo 操作集群完毕!

if [ 1 -eq $CMD ]
then
	shutdown -h now
elif [ 2 -eq $CMD ]
then
	reboot
fi

文件二:down.sh

#!/bin/bash

CMD='ssh root@'$1

if [ 1 -eq $2 ]
then
$CMD > /dev/null 2>&1 << eeooff
shutdown -h now
	exit
eeooff
elif [ 2 -eq $2 ]
then
$CMD > /dev/null 2>&1 << eeooff
	reboot
	exit
eeooff
fi
注:此脚本前提是**虚拟机**之间打通免密!

若没有打通,看这篇博文可解决:免密推送

~END

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值