79 lines
1.3 KiB
Bash
Executable File
79 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
here=$(dirname "$0")
|
|
# shellcheck source=net/common.sh
|
|
source "$here"/common.sh
|
|
|
|
usage() {
|
|
exitcode=0
|
|
if [[ -n "$1" ]]; then
|
|
exitcode=1
|
|
echo "Error: $*"
|
|
fi
|
|
cat <<EOF
|
|
usage: $0 [ipAddress] [extra ssh arguments]
|
|
|
|
ssh into a node
|
|
|
|
ipAddress - IP address of the desired node.
|
|
|
|
If ipAddress is unspecified, a list of available nodes will be displayed.
|
|
|
|
EOF
|
|
exit $exitcode
|
|
}
|
|
|
|
while getopts "h?" opt; do
|
|
case $opt in
|
|
h | \?)
|
|
usage
|
|
;;
|
|
*)
|
|
usage "Error: unhandled option: $opt"
|
|
;;
|
|
esac
|
|
done
|
|
|
|
loadConfigFile
|
|
|
|
ipAddress=$1
|
|
shift
|
|
if [[ -n "$ipAddress" ]]; then
|
|
set -x
|
|
exec ssh "${sshOptions[@]}" "$ipAddress" "$@"
|
|
fi
|
|
|
|
printNode() {
|
|
declare nodeType=$1
|
|
declare ip=$2
|
|
printf " %-25s | For logs run: $0 $ip tail -f solana/$nodeType.log\n" "$0 $ip"
|
|
}
|
|
|
|
echo Validators:
|
|
for ipAddress in "${validatorIpList[@]}"; do
|
|
printNode validator "$ipAddress"
|
|
done
|
|
echo
|
|
echo Clients:
|
|
if [[ ${#clientIpList[@]} -eq 0 ]]; then
|
|
echo " None"
|
|
else
|
|
for ipAddress in "${clientIpList[@]}"; do
|
|
printNode client "$ipAddress"
|
|
done
|
|
fi
|
|
echo
|
|
echo Blockstreamers:
|
|
if [[ ${#blockstreamerIpList[@]} -eq 0 ]]; then
|
|
echo " None"
|
|
else
|
|
for ipAddress in "${blockstreamerIpList[@]}"; do
|
|
printNode validator "$ipAddress"
|
|
done
|
|
fi
|
|
echo
|
|
echo "Use |scp.sh| to transfer files to and from nodes"
|
|
echo
|
|
|
|
exit 0
|