mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-20 04:35:32 +00:00
55 lines
1.8 KiB
Bash
Executable File
55 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
PORT=27017
|
|
HOST=localhost
|
|
|
|
if [ -z "$1" ]; then
|
|
echo "Usage: $0 [ OPTIONS ] [ \"mongodb://...\" ]"
|
|
echo "Where [ OPTIONS ] are:"
|
|
echo " -p PORT the port to use, default $PORT"
|
|
echo " -d DATABASE the name of the database to use; mandatory, if no URI is specified"
|
|
echo " -h HOST the host to use, default $HOST"
|
|
echo " -r REPLICA_SET the name of the replica set; no default, assuming connecting to PRIMARY"
|
|
echo " -a show all hashes of all collections in the database specified, not just the DB hash"
|
|
echo
|
|
echo "Prints the dbHash(...) output to stdout and the URI used to stderr."
|
|
echo "Example: $0 \"mongodb://localhost:10203/49er?replicaSet=live\""
|
|
echo " stderr: URI=mongodb://localhost:10203/49er?replicaSet=live"
|
|
echo " stdout: f17293af5ff32f9e2ad76056b1ff9897"
|
|
echo "Example: $0 -h dbserver.internal.sapsailing.com -p 10202 -d 49er"
|
|
echo " stderr: URI=mongodb://dbserver.internal.sapsailing.com:1020r/49er"
|
|
echo " stdout: f17293af5ff32f9e2ad76056b1ff9897"
|
|
exit 1
|
|
fi
|
|
|
|
options='p:d:h:r:a'
|
|
while getopts $options option
|
|
do
|
|
case $option in
|
|
a) ALL=1;;
|
|
p) PORT=$OPTARG;;
|
|
d) DB=$OPTARG;;
|
|
h) HOST=$OPTARG;;
|
|
r) REPLICA_SET=$OPTARG;;
|
|
\?) echo "Invalid option" >&2
|
|
exit 4;;
|
|
esac
|
|
done
|
|
# Consume the remaining argument as an optional URI:
|
|
URI=${!OPTIND}
|
|
if [ -z "$DB" -a -z "$URI" ]; then
|
|
echo "Database unknown. Either -d or URI argument required." >&2
|
|
exit 5
|
|
fi
|
|
if [ -z "$URI" ]; then
|
|
URI="mongodb://$HOST:$PORT/$DB"
|
|
if [ -n "$REPLICA_SET" ]; then
|
|
URI="${URI}?replicaSet=$REPLICA_SET"
|
|
fi
|
|
fi
|
|
echo "URI: $URI" >&2
|
|
if [ -z $ALL ]; then
|
|
echo "db.runCommand({dbHash: 1})" | mongo --quiet "$URI" | grep -v "^$(date +%Y-%m-%d)" | grep md5 | sed -e 's/^.*"md5" *: *"\([^"]*\)".*$/\1/'
|
|
else
|
|
echo "db.runCommand({dbHash: 1})" | mongo --quiet "$URI" | grep -v "^$(date +%Y-%m-%d)"
|
|
fi
|