Skip to content
Snippets Groups Projects
Commit 11220b73 authored by Hahn Axel (hahn)'s avatar Hahn Axel (hahn)
Browse files

update db plugins

parent 63490572
Branches
No related tags found
1 merge request!129Db Profiles
......@@ -82,14 +82,7 @@ function _getDblist(){
_couchapi GET _all_dbs | sed 's#\"#\n#g' | grep -Ev "^(\[|\,|\])$" | grep -v _replicator | grep -v _global_changes
}
# UNUSED
# get value update_seq of given couchdb name
# function _getDbSeq(){
# # _couchapi GET $1 | sed 's#,\"#\n"#g' | egrep -v "^(\[|\,|\])$" | grep update_seq | cut -f 4 -d '"'
# _couchapi GET "$1" | sed 's#,\"#\n"#g' | grep -Ev "^(\[|\,|\])$" | grep update_seq | cut -f 4 -d '"' | cut -f 1 -d '-'
# }
# active curl prozesses
# get count of active curl prozesses
function curlCount(){
ps -ef | grep -v grep | grep "curl" | wc -l
}
......@@ -243,7 +236,7 @@ function _doBackupOfSingleInstance(){
# this is just a caching file of the sequence id of the last backup and can be safely deleted.
seqfile="${ARCHIVE_DIR}/seq/all_seqids_of_last_backups_cache.txt"
echo "--- $( date ) Get list of all databases"
echo "--- $( date +%H:%M:%S ) Get list of all databases"
_getDblist >"${dblistfile}"
typeset -i iDbTotal; iDbTotal=$( wc -l < "$dblistfile")
......@@ -253,7 +246,7 @@ function _doBackupOfSingleInstance(){
# detect deleted databases:
echo
echo "--- $( date ) MOVE deleted databases "
echo "--- $( date +%H:%M:%S ) MOVE deleted databases "
echo "... into ${ARCHIVE_DIR2}"
echo
for dumpfile in $( find "${ARCHIVE_DIR}/" -maxdepth 1 -type f -name "*.couchdbdump.gz" )
......@@ -275,24 +268,25 @@ function _doBackupOfSingleInstance(){
done
echo
echo "--- $( date ) DUMP databases"
echo "--- $( date +%H:%M:%S ) DUMP databases"
echo " of instance ${PROFILENAME}: $iDbTotal databases"
echo " TO BACKUP ${BACKUP_TARGETDIR}"
echo " ARCHIVE ${ARCHIVE_DIR}"
echo
echo "----- $( date ) - Get database meta infos ... max $iParallel parralel curl requests sending $iChunksize database urls per process"
echo "----- $( date +%H:%M:%S ) - Get database meta infos ... max $iParallel parralel curl requests sending $iChunksize database urls per process"
seq=$( reqCombined $iChunksize $iParallel "$dblistfile" | jq -r ' [ .db_name, .update_seq ] | @csv ' | tr -d '"' | tr ',' ' ' | awk '{ sub(/-.*/, "", $2 ); print $1 "," $2 }' )
# ^ ^ ^ ^ ^
# db_name + update_seq in a single line --+ | | | and back: space to comma --+
# delete quotes --+ | +-- remove string after first minus char
# comma to space (for awk values) --+
# the result is ... echo "$seq" | head -3
# the result is database name + comma + sequence id
# echo "$seq" | head -3
# _users,7688
# candidate-00649860284626638ac6fd12bf000df5,40
# candidate-04561cddbd0fa305714b48a57929d8b4,3
echo "----- $( date ) - reading current sequence ids..."
echo "----- $( date +%H:%M:%S ) - reading current sequence ids..."
declare -A aSeq
for line in $( echo "$seq" )
do
......@@ -300,7 +294,7 @@ function _doBackupOfSingleInstance(){
aSeq+=([$db]=$seqid)
done
echo "----- $( date ) - reading sequence ids of last backup..."
echo "----- $( date +%H:%M:%S ) - reading sequence ids of last backup..."
declare -A aSeqBackup
for line in $( cat "${seqfile}" 2>/dev/null )
do
......@@ -312,29 +306,18 @@ function _doBackupOfSingleInstance(){
for dbname in $( cat "$dblistfile" )
do
iDb+=1
echo -n "----- $(date) ${PROFILENAME} -- $iDb of $iDbTotal - ${dbname} - "
echo -n "----- $( date +%H:%M:%S ) ${PROFILENAME} -- $iDb of $iDbTotal - ${dbname} - "
# set later .. OUTFILE=${BACKUP_TARGETDIR}/${COUCHDB_INSTANCE}/$(get_outfile "${dbname}").couchdbdump
ARCHIVFILE=${ARCHIVE_DIR}/${dbname}.couchdbdump.gz
SEQFILE=${ARCHIVE_DIR}/seq/__seq__${dbname}
SECURITYFILE=${ARCHIVE_DIR}/security/__security__${dbname}.json
# sSequenceCurrent=$(_getDbSeq "${dbname}")
# compare current sequence id with last backup sequence id
sSequenceCurrent="${aSeq[$dbname]}"
# sSequenceLast=$(cat "${SEQFILE}" 2>/dev/null | cut -f 1 -d '-')
sSequenceLast="${aSeqBackup[$dbname]:-$(cat ${SEQFILE} 2>/dev/null | cut -f 1 -d '-')}"
aSeqBackup[${dbname}]=$sSequenceLast
if [ "${sSequenceCurrent}" = "${sSequenceLast}" ] && [ -f "$ARCHIVFILE" ]; then
echo "SKIP: still on sequence ${sSequenceLast}"
# add security file for already existing databases
test -f "${SECURITYFILE}" || (
echo "INFO: creating missing security file ${SECURITYFILE}"
_couchapi GET "${dbname}/_security" > "${SECURITYFILE}"
)
echo "SKIP: still on sequence ${sSequenceLast}"
else
OUTFILE=${BACKUP_TARGETDIR}/$(get_outfile "${dbname}").couchdbdump
if [ -z "$sSequenceCurrent" ]; then
......@@ -377,7 +360,8 @@ function _doBackupOfSingleInstance(){
iTsTotal=$( date +%s)-$iTsStart
iDbPerSec=$iDbTotal/$iTsTotal
echo "----- $( date ) - writing sequence ids ..."
# cache sequence ids in a file
echo "----- $( date +%H:%M:%S ) - writing sequence ids ..."
rm -f "${seqfile}" 2>/dev/null
for key in "${!aSeqBackup[@]}"; do
echo "$key,${aSeqBackup[$key]}" >> "${seqfile}"
......
......@@ -116,7 +116,7 @@ function restoreByFile(){
j_requireBinary "ldapsearch" 1
j_requireBinary "slapcat" 1
j_requireProcess "slapd" 1
# j_requireProcess "slapd" 1
ls $LDAP_CONF_DIR_PATH >/dev/null 2>&1
......
......@@ -145,7 +145,7 @@ function mysql.db.list(){
# mysql.available || return
function mysql.available(){
local _rc;
typeset -i _rc=(1-$mysql_FOUND)
typeset -i _rc; _rc=(1-$mysql_FOUND)
return $_rc
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment