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