Compare commits
4 Commits
check-and-
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 96108c3cc5 | |||
| eec9ec54ac | |||
| 7285aa7cd4 | |||
| 1b9c4ffcbc |
@ -49,55 +49,6 @@ HELP
|
||||
exit 0
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Argument parser
|
||||
################################################################################
|
||||
die() {
|
||||
printf '%s\n' "$1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
while :; do
|
||||
case $1 in
|
||||
-h|-\?|--help)
|
||||
show_help # Display a usage synopsis.
|
||||
exit
|
||||
;;
|
||||
-r|--repo)
|
||||
if [ "$2" ]; then
|
||||
REPO=$2
|
||||
shift
|
||||
else
|
||||
die 'ERROR: "-r|--repo" requires a non-empty option argument.'
|
||||
fi
|
||||
;;
|
||||
-m|--mode)
|
||||
if [ "$2" ]; then
|
||||
MODE=$2
|
||||
shift
|
||||
else
|
||||
die 'ERROR: "-r|--repo" requires a non-empty option argument.'
|
||||
fi
|
||||
;;
|
||||
-t|--timeout)
|
||||
if [ "$2" ]; then
|
||||
TIMEOUT=$2
|
||||
shift
|
||||
else
|
||||
die 'ERROR: "-t|--timeout" requires a non-empty option argument.'
|
||||
fi
|
||||
;;
|
||||
--) # End of all options.
|
||||
shift
|
||||
break
|
||||
;;
|
||||
*) # Default case: No more options, so break out of the loop.
|
||||
break
|
||||
esac
|
||||
|
||||
shift
|
||||
done
|
||||
|
||||
get_bricks() {
|
||||
MY_HOSTNAME=$(echo "${HOSTNAME}" | cut -d '.' -f 1)
|
||||
if ! BRICKS=$(gluster vol info "${REPO}" | grep -i "${MY_HOSTNAME}" | grep -o 'brick[0-9]\+'); then
|
||||
@ -157,6 +108,56 @@ scan_paths() {
|
||||
done
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Argument parser
|
||||
################################################################################
|
||||
die() {
|
||||
printf '%s\n' "$1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
while :; do
|
||||
case $1 in
|
||||
-h|-\?|--help)
|
||||
show_help # Display a usage synopsis.
|
||||
exit
|
||||
;;
|
||||
-r|--repo)
|
||||
if [ "$2" ]; then
|
||||
REPO=$2
|
||||
shift
|
||||
else
|
||||
die 'ERROR: "-r|--repo" requires a non-empty option argument.'
|
||||
fi
|
||||
;;
|
||||
-m|--mode)
|
||||
if [ "$2" ]; then
|
||||
MODE=$2
|
||||
shift
|
||||
else
|
||||
die 'ERROR: "-r|--repo" requires a non-empty option argument.'
|
||||
fi
|
||||
;;
|
||||
-t|--timeout)
|
||||
if [ "$2" ]; then
|
||||
TIMEOUT=$2
|
||||
shift
|
||||
else
|
||||
die 'ERROR: "-t|--timeout" requires a non-empty option argument.'
|
||||
fi
|
||||
;;
|
||||
--) # End of all options.
|
||||
shift
|
||||
break
|
||||
;;
|
||||
*) # Default case: No more options, so break out of the loop.
|
||||
break
|
||||
esac
|
||||
|
||||
shift
|
||||
done
|
||||
|
||||
|
||||
################################################################################
|
||||
# Main Main Main
|
||||
################################################################################
|
||||
|
||||
136
gp-scripts/ssacli-helper.sh
Normal file
136
gp-scripts/ssacli-helper.sh
Normal file
@ -0,0 +1,136 @@
|
||||
#!/bin/bash
|
||||
if ! [ "${LOGNAME}" == "root" ]; then
|
||||
echo "Please run this script as root or with sudo..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
################################################################################
|
||||
# Global variables
|
||||
################################################################################
|
||||
|
||||
|
||||
################################################################################
|
||||
# Functions
|
||||
################################################################################
|
||||
show_help() {
|
||||
cat << HELP
|
||||
|
||||
Script to help around ssacli and automate things...
|
||||
|
||||
|
||||
Usage: $1 [OPTION]
|
||||
Mandatory:
|
||||
|
||||
Optionial:
|
||||
-a|--array-info ARRAY_INFO Info about arrays and how much free
|
||||
space they provide
|
||||
-l|--ld LD_INFO Info about logical drives
|
||||
-p|--pd PD_INFO Info about physical drives
|
||||
|
||||
HELP
|
||||
exit 0
|
||||
}
|
||||
|
||||
get_controllers() {
|
||||
CONTROLLERS=$(ssacli ctrl all show | grep -o 'Slot\ [0-9]\+' | cut -d ' ' -f 2)
|
||||
}
|
||||
|
||||
get_array_free_space() {
|
||||
for CONTROLLER in ${CONTROLLERS}; do
|
||||
header2 "Controller slot=${CONTROLLER}"
|
||||
ssacli ctrl slot=${CONTROLLER} array all show | sed -e '/^$/d'
|
||||
echo ""
|
||||
done
|
||||
}
|
||||
|
||||
get_logical_drives() {
|
||||
for CONTROLLER in ${CONTROLLERS}; do
|
||||
header2 "Controller slot=${CONTROLLER}"
|
||||
ssacli ctrl slot=${CONTROLLER} ld all show | sed -e '/^$/d'
|
||||
echo ""
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
get_physical_drives() {
|
||||
for CONTROLLER in ${CONTROLLERS}; do
|
||||
header2 "Controller slot=${CONTROLLER}"
|
||||
ssacli ctrl slot=${CONTROLLER} pd all show | sed -e '/^$/d'
|
||||
echo ""
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
header1() {
|
||||
cat << HEADER1
|
||||
################################################################################
|
||||
# ${@}
|
||||
################################################################################
|
||||
HEADER1
|
||||
}
|
||||
|
||||
header2() {
|
||||
cat << HEADER2
|
||||
# ${@}
|
||||
HEADER2
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Argument parser
|
||||
################################################################################
|
||||
die() {
|
||||
printf '%s\n' "$1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
while :; do
|
||||
case $1 in
|
||||
-h|-\?|--help)
|
||||
show_help # Display a usage synopsis.
|
||||
exit
|
||||
;;
|
||||
-a|--array-info)
|
||||
ARRAY_INFO=true
|
||||
;;
|
||||
-l|--ld)
|
||||
LD_INFO=true
|
||||
;;
|
||||
-p|--pd)
|
||||
PD_INFO=true
|
||||
;;
|
||||
--) # End of all options.
|
||||
shift
|
||||
break
|
||||
;;
|
||||
*) # Default case: No more options, so break out of the loop.
|
||||
break
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
|
||||
################################################################################
|
||||
# Main Main Main
|
||||
################################################################################
|
||||
if ! get_controllers; then
|
||||
echo "Could not get list of controllers..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "${ARRAY_INFO}" == "true" ]; then
|
||||
header1 "Array Infos"
|
||||
get_array_free_space
|
||||
echo ""
|
||||
fi
|
||||
|
||||
if [ "${LD_INFO}" == "true" ]; then
|
||||
header1 "Logical Drive Infos"
|
||||
get_logical_drives
|
||||
echo ""
|
||||
fi
|
||||
|
||||
if [ "${PD_INFO}" == "true" ]; then
|
||||
header1 "Physical Drive Infos"
|
||||
get_physical_drives
|
||||
echo ""
|
||||
fi
|
||||
Loading…
Reference in New Issue
Block a user