Fix initial spaces to tabs
This commit is contained in:
		
							
								
								
									
										214
									
								
								bmc.sh
									
									
									
									
									
								
							
							
						
						
									
										214
									
								
								bmc.sh
									
									
									
									
									
								
							@@ -8,64 +8,64 @@ bmcd_cmdpipe="/run/bmcd/bmcd.cmd"
 | 
			
		||||
bmcd_statepipe="/run/bmcd/bmcd.state"
 | 
			
		||||
 | 
			
		||||
help() {
 | 
			
		||||
        echo -e "Available commands:"
 | 
			
		||||
        echo -e "  \e[1mstate\e[0m - Show the system power state"
 | 
			
		||||
        echo -e "  \e[1mconsole\e[0m - Connect to host via serial console; ^A+D to disconnect"
 | 
			
		||||
        echo -e "  \e[1mpower\e[0m - Press power switch on host"
 | 
			
		||||
        echo -e "  \e[1mreset\e[0m - Press reset switch on host"
 | 
			
		||||
        echo -e "  \e[1mkill\e[0m - Forcibly power off host"
 | 
			
		||||
        echo -e "  \e[1mlocate\e[0m - Enable locator (flash power LED)"
 | 
			
		||||
        echo -e "  \e[1munlocate\e[0m - Disable locator"
 | 
			
		||||
        echo -e "  \e[1mhelp\e[0m - This help menu"
 | 
			
		||||
        echo -e "  \e[1mbmc\e[0m - Show BMC information"
 | 
			
		||||
        echo -e "  \e[1mhostname\e[0m - Set BMC hostname"
 | 
			
		||||
        echo -e "  \e[1mpassword\e[0m - Set BMC password"
 | 
			
		||||
        echo -e "  \e[1mshell\e[0m - Start a BMC bash shell"
 | 
			
		||||
        echo -e "  \e[1mexit/logout\e[0m - Disconnect from the BMC"
 | 
			
		||||
	echo -e "Available commands:"
 | 
			
		||||
	echo -e "  \e[1mstate\e[0m - Show the system power state"
 | 
			
		||||
	echo -e "  \e[1mconsole\e[0m - Connect to host via serial console; ^A+D to disconnect"
 | 
			
		||||
	echo -e "  \e[1mpower\e[0m - Press power switch on host"
 | 
			
		||||
	echo -e "  \e[1mreset\e[0m - Press reset switch on host"
 | 
			
		||||
	echo -e "  \e[1mkill\e[0m - Forcibly power off host"
 | 
			
		||||
	echo -e "  \e[1mlocate\e[0m - Enable locator (flash power LED)"
 | 
			
		||||
	echo -e "  \e[1munlocate\e[0m - Disable locator"
 | 
			
		||||
	echo -e "  \e[1mhelp\e[0m - This help menu"
 | 
			
		||||
	echo -e "  \e[1mbmc\e[0m - Show BMC information"
 | 
			
		||||
	echo -e "  \e[1mhostname\e[0m - Set BMC hostname"
 | 
			
		||||
	echo -e "  \e[1mpassword\e[0m - Set BMC password"
 | 
			
		||||
	echo -e "  \e[1mshell\e[0m - Start a BMC bash shell"
 | 
			
		||||
	echo -e "  \e[1mexit/logout\e[0m - Disconnect from the BMC"
 | 
			
		||||
}
 | 
			
		||||
bmcinfo() {
 | 
			
		||||
        echo -e "BMC information:"
 | 
			
		||||
        echo -e "  IP address: $( ip -4 addr list eth0 | grep inet | awk '{ print $2 }' )"
 | 
			
		||||
        echo -e "  Hostname: $( hostname )"
 | 
			
		||||
        echo -e "  BMC temperature: $( sudo /opt/vc/bin/vcgencmd measure_temp | awk -F'=' '{ print $2 }' )"
 | 
			
		||||
	echo -e "BMC information:"
 | 
			
		||||
	echo -e "  IP address: $( ip -4 addr list eth0 | grep inet | awk '{ print $2 }' )"
 | 
			
		||||
	echo -e "  Hostname: $( hostname )"
 | 
			
		||||
	echo -e "  BMC temperature: $( sudo /opt/vc/bin/vcgencmd measure_temp | awk -F'=' '{ print $2 }' )"
 | 
			
		||||
}
 | 
			
		||||
sethostname() {
 | 
			
		||||
        echo -n "Enter new hostname: "
 | 
			
		||||
        read newhostname
 | 
			
		||||
        sudo sed -i '/^127.0.1.1/d' /etc/hosts &>/dev/null
 | 
			
		||||
        sudo tee -a /etc/hosts <<<"127.0.1.1 $newhostname" &>/dev/null
 | 
			
		||||
        sudo hostname $newhostname &>/dev/null
 | 
			
		||||
        sudo tee /etc/hostname <<<"$newhostname" &>/dev/null
 | 
			
		||||
        echo "Hostname set to $newhostname"
 | 
			
		||||
	echo -n "Enter new hostname: "
 | 
			
		||||
	read newhostname
 | 
			
		||||
	sudo sed -i '/^127.0.1.1/d' /etc/hosts &>/dev/null
 | 
			
		||||
	sudo tee -a /etc/hosts <<<"127.0.1.1 $newhostname" &>/dev/null
 | 
			
		||||
	sudo hostname $newhostname &>/dev/null
 | 
			
		||||
	sudo tee /etc/hostname <<<"$newhostname" &>/dev/null
 | 
			
		||||
	echo "Hostname set to $newhostname"
 | 
			
		||||
}
 | 
			
		||||
setpassword() {
 | 
			
		||||
        echo -n "Enter new BMC password: "
 | 
			
		||||
        read -s password_1
 | 
			
		||||
        echo
 | 
			
		||||
        echo -n "Reenter new BMC password: "
 | 
			
		||||
        read -s password_2
 | 
			
		||||
        echo
 | 
			
		||||
        if [ "${password_1}" == "${password_2}" ]; then
 | 
			
		||||
                echo -n "Setting BMC password... "
 | 
			
		||||
                sudo chpasswd <<<"bmc:${password_1}"
 | 
			
		||||
                echo "done."
 | 
			
		||||
        else
 | 
			
		||||
                echo "Passwords to not match!"
 | 
			
		||||
        fi
 | 
			
		||||
	echo -n "Enter new BMC password: "
 | 
			
		||||
	read -s password_1
 | 
			
		||||
	echo
 | 
			
		||||
	echo -n "Reenter new BMC password: "
 | 
			
		||||
	read -s password_2
 | 
			
		||||
	echo
 | 
			
		||||
	if [ "${password_1}" == "${password_2}" ]; then
 | 
			
		||||
		echo -n "Setting BMC password... "
 | 
			
		||||
		sudo chpasswd <<<"bmc:${password_1}"
 | 
			
		||||
		echo "done."
 | 
			
		||||
	else
 | 
			
		||||
		echo "Passwords to not match!"
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
resetsw_press() {
 | 
			
		||||
        echo "Pressing reset switch."
 | 
			
		||||
	echo "Pressing reset switch."
 | 
			
		||||
	echo "resetsw_press" > ${bmcd_cmdpipe}
 | 
			
		||||
}
 | 
			
		||||
powersw_press() {
 | 
			
		||||
	echo "Pressing power switch."
 | 
			
		||||
	echo "powersw_press" > ${bmcd_cmdpipe}
 | 
			
		||||
        sleep 2
 | 
			
		||||
	sleep 2
 | 
			
		||||
}
 | 
			
		||||
powersw_hold() {
 | 
			
		||||
	echo "Holding power switch."
 | 
			
		||||
	echo "powersw_hold" > ${bmcd_cmdpipe}
 | 
			
		||||
        sleep 2
 | 
			
		||||
	sleep 2
 | 
			
		||||
}
 | 
			
		||||
locate_on() {
 | 
			
		||||
	echo "Enabling locator - host power LED will flash."
 | 
			
		||||
@@ -76,12 +76,12 @@ locate_off() {
 | 
			
		||||
	echo "locate_off" > ${bmcd_cmdpipe}
 | 
			
		||||
}
 | 
			
		||||
readpower() {
 | 
			
		||||
        powerstate_raw=$(cat ${bmcd_statepipe})
 | 
			
		||||
        if [[ "${powerstate_raw}" -eq 1 ]]; then
 | 
			
		||||
                powerstate="\e[32mOn\e[0m"
 | 
			
		||||
        else
 | 
			
		||||
                powerstate="\e[31mOff\e[0m"
 | 
			
		||||
        fi
 | 
			
		||||
	powerstate_raw=$(cat ${bmcd_statepipe})
 | 
			
		||||
	if [[ "${powerstate_raw}" -eq 1 ]]; then
 | 
			
		||||
		powerstate="\e[32mOn\e[0m"
 | 
			
		||||
	else
 | 
			
		||||
		powerstate="\e[31mOff\e[0m"
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
readpower
 | 
			
		||||
@@ -101,36 +101,36 @@ stty intr undef
 | 
			
		||||
echo -en "\e[1m\e[34m[$(hostname)]>\e[0m "
 | 
			
		||||
read input
 | 
			
		||||
case $input in
 | 
			
		||||
        'state')
 | 
			
		||||
                readpower
 | 
			
		||||
                echo -e "Host state: $powerstate"
 | 
			
		||||
                echo
 | 
			
		||||
        ;;
 | 
			
		||||
        'console')
 | 
			
		||||
                echo "Starting console..."
 | 
			
		||||
	'state')
 | 
			
		||||
		readpower
 | 
			
		||||
		echo -e "Host state: $powerstate"
 | 
			
		||||
		echo
 | 
			
		||||
	;;
 | 
			
		||||
	'console')
 | 
			
		||||
		echo "Starting console..."
 | 
			
		||||
		# Connect to screen, or start it
 | 
			
		||||
                sudo screen -r serialconsole &>/dev/null || sudo screen -S serialconsole /dev/ttyUSB0 115200
 | 
			
		||||
		sudo screen -r serialconsole &>/dev/null || sudo screen -S serialconsole /dev/ttyUSB0 115200
 | 
			
		||||
		# If the user killed screen, restart it - just in case
 | 
			
		||||
		pgrep screen &>/dev/null || sudo screen -S serialconsole /dev/ttyUSB0 115200
 | 
			
		||||
                echo
 | 
			
		||||
        ;;
 | 
			
		||||
        'power')
 | 
			
		||||
                powersw_press
 | 
			
		||||
                readpower
 | 
			
		||||
                echo -e "Host state: $powerstate"
 | 
			
		||||
                echo
 | 
			
		||||
        ;;
 | 
			
		||||
        'reset')
 | 
			
		||||
                resetsw_press
 | 
			
		||||
                readpower
 | 
			
		||||
                echo -e "Host state: $powerstate"
 | 
			
		||||
                echo
 | 
			
		||||
        ;;
 | 
			
		||||
        'kill')
 | 
			
		||||
                powersw_hold
 | 
			
		||||
                readpower
 | 
			
		||||
                echo -e "Host state: $powerstate"
 | 
			
		||||
                echo
 | 
			
		||||
		echo
 | 
			
		||||
	;;
 | 
			
		||||
	'power')
 | 
			
		||||
		powersw_press
 | 
			
		||||
		readpower
 | 
			
		||||
		echo -e "Host state: $powerstate"
 | 
			
		||||
		echo
 | 
			
		||||
	;;
 | 
			
		||||
	'reset')
 | 
			
		||||
		resetsw_press
 | 
			
		||||
		readpower
 | 
			
		||||
		echo -e "Host state: $powerstate"
 | 
			
		||||
		echo
 | 
			
		||||
	;;
 | 
			
		||||
	'kill')
 | 
			
		||||
		powersw_hold
 | 
			
		||||
		readpower
 | 
			
		||||
		echo -e "Host state: $powerstate"
 | 
			
		||||
		echo
 | 
			
		||||
	;;
 | 
			
		||||
	'locate')
 | 
			
		||||
		locate_on
 | 
			
		||||
@@ -139,38 +139,38 @@ case $input in
 | 
			
		||||
	'unlocate')
 | 
			
		||||
		locate_off
 | 
			
		||||
		echo	
 | 
			
		||||
        ;;
 | 
			
		||||
        'help')
 | 
			
		||||
                help
 | 
			
		||||
                echo
 | 
			
		||||
        ;;
 | 
			
		||||
        'bmc')
 | 
			
		||||
                bmcinfo
 | 
			
		||||
                echo
 | 
			
		||||
        ;;
 | 
			
		||||
        'hostname')
 | 
			
		||||
                sethostname
 | 
			
		||||
                echo
 | 
			
		||||
        ;;
 | 
			
		||||
        'password')
 | 
			
		||||
                setpassword
 | 
			
		||||
                echo
 | 
			
		||||
        ;;
 | 
			
		||||
        'shell')
 | 
			
		||||
                stty sane
 | 
			
		||||
                /bin/bash
 | 
			
		||||
                help
 | 
			
		||||
                echo
 | 
			
		||||
        ;;
 | 
			
		||||
        'exit'|'logout')
 | 
			
		||||
                exit 0
 | 
			
		||||
        ;;
 | 
			
		||||
        '')
 | 
			
		||||
                continue
 | 
			
		||||
        ;;
 | 
			
		||||
        *)
 | 
			
		||||
                echo "Invalid command."
 | 
			
		||||
                echo
 | 
			
		||||
        ;;
 | 
			
		||||
	;;
 | 
			
		||||
	'help')
 | 
			
		||||
		help
 | 
			
		||||
		echo
 | 
			
		||||
	;;
 | 
			
		||||
	'bmc')
 | 
			
		||||
		bmcinfo
 | 
			
		||||
		echo
 | 
			
		||||
	;;
 | 
			
		||||
	'hostname')
 | 
			
		||||
		sethostname
 | 
			
		||||
		echo
 | 
			
		||||
	;;
 | 
			
		||||
	'password')
 | 
			
		||||
		setpassword
 | 
			
		||||
		echo
 | 
			
		||||
	;;
 | 
			
		||||
	'shell')
 | 
			
		||||
		stty sane
 | 
			
		||||
		/bin/bash
 | 
			
		||||
		help
 | 
			
		||||
		echo
 | 
			
		||||
	;;
 | 
			
		||||
	'exit'|'logout')
 | 
			
		||||
		exit 0
 | 
			
		||||
	;;
 | 
			
		||||
	'')
 | 
			
		||||
		continue
 | 
			
		||||
	;;
 | 
			
		||||
	*)
 | 
			
		||||
		echo "Invalid command."
 | 
			
		||||
		echo
 | 
			
		||||
	;;
 | 
			
		||||
esac
 | 
			
		||||
done
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user