initial commit
This commit is contained in:
34
setenv.sh
Normal file
34
setenv.sh
Normal file
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ ! -z "$SOLR_HOST" ]]; then
|
||||
echo "A SOLR_HOST environment variable is required"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -z "$SOLR_PORT" ]]; then
|
||||
SOLR_PORT=8983
|
||||
fi
|
||||
|
||||
if [[ ! -z "$SOLR_PROTOCOL" ]]; then
|
||||
SOLR_PROTOCOL=http
|
||||
fi
|
||||
|
||||
if [[ ! -z "$SOLR_BASEPATH" ]]; then
|
||||
SOLR_BASEPATH=/solr
|
||||
fi
|
||||
|
||||
if [[ ! -z "$SOLR_BASEURL" ]]; then
|
||||
SOLR_BASEURL=${SOLR_PROTOCOL}://${SOLR_HOST}:${SOLR_PORT}/$SOLR_BASEPATH
|
||||
fi
|
||||
|
||||
if [[ ! -z "$SOLR_CORE" ]]; then
|
||||
SOLR_CORE=alfresco
|
||||
fi
|
||||
|
||||
if [[ ! -z "$SOLR_LOCALPATH" ]]; then
|
||||
SOLR_LOCALPATH=/tmp
|
||||
fi
|
||||
|
||||
if [[ ! -z "$SOLR_TEMPLATE" ]]; then
|
||||
SOLR_TEMPLATE=rerank
|
||||
fi
|
10
solr-backup.sh
Normal file
10
solr-backup.sh
Normal file
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
. ./setenv.sh
|
||||
|
||||
ARG_SOLR_SHARD_ID=$1
|
||||
if [[ ! -z "$ARG_SOLR_SHARD_ID" ]]; then
|
||||
SOLR_CORE=${SOLR_CORE}-${ARG_SOLR_SHARD_ID}
|
||||
fi
|
||||
|
||||
curl -SsL ${SOLR_BASEURL}/${SOLR_CORE}/replication?command=backup\&location=${SOLR_LOCALPATH}\&numberToKeep=1
|
25
solr-create.sh
Normal file
25
solr-create.sh
Normal file
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
. ./setenv.sh
|
||||
|
||||
ARG_SOLR_SHARD_IDS=$1
|
||||
ARG_SOLR_SHARDS=$2
|
||||
ARG_SOLR_NODE_ID=$3
|
||||
ARG_SOLR_NODES=$4
|
||||
|
||||
if [[ ! -z "$ARG_SOLR_SHARD_IDS" ]]; then
|
||||
if [[ ! -z "$ARG_SOLR_SHARDS" ]]; then
|
||||
echo "The expected number of shards is required"
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! -z "$ARG_SOLR_NODE_ID" ]]; then
|
||||
ARG_SOLR_NODE_ID=1
|
||||
fi
|
||||
if [[ ! -z "$ARG_SOLR_NODES" ]]; then
|
||||
ARG_SOLR_NODES=1
|
||||
fi
|
||||
|
||||
curl -SsL ${SOLR_BASEURL}/admin/cores?action=newCore\\&core=${SOLR_CORE}\\&storeRef=workspace://SpacesStore\\&numShards=${ARG_SOLR_SHARDS}\\&nodeInstance=${ARG_SOLR_NODE_ID}\\&numNodes=${ARG_SOLR_NODES}\\&template=${SOLR_TEMPLATE}\\&shardIds=${ARG_SOLR_SHARD_IDS}
|
||||
else
|
||||
curl -SsL ${SOLR_BASEURL}/admin/cores?action=newCore\\&core=${SOLR_CORE}\\&storeRef=workspace://SpacesStore\\&template=${SOLR_TEMPLATE}
|
||||
fi
|
32
solr-docker-copy.sh
Normal file
32
solr-docker-copy.sh
Normal file
@@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
. ./setenv.sh
|
||||
|
||||
if [[ ! -z "$SOLR_LOCALPATH" ]]; then
|
||||
SOLR_LOCALPATH=/tmp
|
||||
fi
|
||||
|
||||
ARG_DOCKER_SOURCE=$1
|
||||
ARG_DOCKER_TARGET=$2
|
||||
ARG_BACKUP_TIMESTAMP=$3
|
||||
|
||||
if [[ ! -z "$ARG_BACKUP_TIMESTAMP" ]]; then
|
||||
echo "A timestamp of the backup to copy is required"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
if [[ ! -z "$ARG_DOCKER_SOURCE" ]]; then
|
||||
echo "A source Docker container name or ID is required"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -z "$ARG_DOCKER_TARGET" ]]; then
|
||||
echo "A target Docker container name or ID is required"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# copy from one node to the other
|
||||
docker container cp ${ARG_DOCKER_SOURCE}:${SOLR_LOCALPATH}/snapshot.${ARG_BACKUP_TIMESTAMP} /tmp
|
||||
docker container cp /tmp/snapshot.${ARG_BACKUP_TIMESTAMP} ${ARG_DOCKER_TARGET}:${SOLR_LOCALPATH}
|
||||
docker container exec --privileged -u root ${ARG_DOCKER_TARGET} chmod -R go+r ${SOLR_LOCALPATH}/snapshot.${ARG_BACKUP_TIMESTAMP}
|
||||
rm -rf /tmp/snapshot.${ARG_BACKUP_TIMESTAMP}
|
12
solr-migrate-shard.sh
Normal file
12
solr-migrate-shard.sh
Normal file
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
# backup shardS on nodeA
|
||||
|
||||
# copy backup of shardS from nodeA to nodeB
|
||||
|
||||
# if non existent, create shardS on nodeB
|
||||
# pause indexing of shardS on nodeB
|
||||
# restore shardS on nodeB
|
||||
# resume indexing of shardS on nodeB
|
||||
|
||||
# optionally remove shardS on nodeA; probably best done well after the fact
|
10
solr-pause.sh
Normal file
10
solr-pause.sh
Normal file
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
. ./setenv.sh
|
||||
|
||||
ARG_SOLR_SHARD_ID=$1
|
||||
if [[ ! -z "$ARG_SOLR_SHARD_ID" ]]; then
|
||||
SOLR_CORE=${SOLR_CORE}-${ARG_SOLR_SHARD_ID}
|
||||
fi
|
||||
|
||||
curl -SsL ${SOLR_BASEURL}/admin/cores?action=disable-indexing\&core=${SOLR_CORE}
|
10
solr-remove.sh
Normal file
10
solr-remove.sh
Normal file
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
. ./setenv.sh
|
||||
|
||||
ARG_SOLR_SHARD_ID=$1
|
||||
if [[ ! -z "$ARG_SOLR_SHARD_ID" ]]; then
|
||||
SOLR_CORE=${SOLR_CORE}-${ARG_SOLR_SHARD_ID}
|
||||
fi
|
||||
|
||||
curl -SsL ${SOLR_BASEURL}/admin/cores?action=UNLOAD\&core=${SOLR_CORE}\&deleteIndex=true\&deleteDataDir=true\&deleteInstanceDir=true
|
21
solr-restore.sh
Normal file
21
solr-restore.sh
Normal file
@@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
. ./setenv.sh
|
||||
|
||||
if [[ ! -z "$SOLR_LOCALPATH" ]]; then
|
||||
SOLR_LOCALPATH=/tmp
|
||||
fi
|
||||
|
||||
ARG_BACKUP_TIMESTAMP=$1
|
||||
ARG_SOLR_SHARD_ID=$2
|
||||
|
||||
if [[ ! -z "$ARG_BACKUP_TIMESTAMP" ]]; then
|
||||
echo "A timestamp of the backup to restore is required"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
if [[ ! -z "$ARG_SOLR_SHARD_ID" ]]; then
|
||||
SOLR_CORE=${SOLR_CORE}-${ARG_SOLR_SHARD_ID}
|
||||
fi
|
||||
|
||||
curl -SsL ${SOLR_BASEURL}/${SOLR_CORE}/replication?command=restore\&location=${SOLR_LOCALPATH}\&name=${ARG_BACKUP_TIMESTAMP}
|
10
solr-resume.sh
Normal file
10
solr-resume.sh
Normal file
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
. ./setenv.sh
|
||||
|
||||
ARG_SOLR_SHARD_ID=$1
|
||||
if [[ ! -z "$ARG_SOLR_SHARD_ID" ]]; then
|
||||
SOLR_CORE=${SOLR_CORE}-${ARG_SOLR_SHARD_ID}
|
||||
fi
|
||||
|
||||
curl -SsL ${SOLR_BASEURL}/admin/cores?action=enable-indexing\&core=${SOLR_CORE}
|
31
solr-ssh-copy.sh
Normal file
31
solr-ssh-copy.sh
Normal file
@@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
|
||||
. ./setenv.sh
|
||||
|
||||
if [[ ! -z "$SOLR_LOCALPATH" ]]; then
|
||||
SOLR_LOCALPATH=/tmp
|
||||
fi
|
||||
|
||||
ARG_SSH_SOURCE=$1
|
||||
ARG_SSH_TARGET=$2
|
||||
ARG_BACKUP_TIMESTAMP=$3
|
||||
|
||||
if [[ ! -z "$ARG_BACKUP_TIMESTAMP" ]]; then
|
||||
echo "A timestamp of the backup to copy is required"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
if [[ ! -z "$ARG_SSH_SOURCE" ]]; then
|
||||
echo "A source SSH host is required"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -z "$ARG_SSH_TARGET" ]]; then
|
||||
echo "A target SSH host is required"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# copy from one node to the other
|
||||
scp -r ${ARG_SSH_SOURCE}:${SOLR_LOCALPATH}/snapshot.${ARG_BACKUP_TIMESTAMP} /tmp
|
||||
scp -r /tmp/snapshot.${ARG_BACKUP_TIMESTAMP} ${ARG_SSH_TARGET}:${SOLR_LOCALPATH}
|
||||
rm -rf /tmp/snapshot.${ARG_BACKUP_TIMESTAMP}
|
Reference in New Issue
Block a user