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