Skip to content
Snippets Groups Projects
Select Git revision
  • 723fb0495f86046d097a22116459e90233d6b31e
  • master default protected
  • simple-task/7248-eol-check-add-node-22
  • 6877_check_iml_deployment
4 results

check_proc_ressources

Blame
  • sqlite.sh 3.69 KiB
    #!/bin/bash
    # ================================================================================
    #
    # LOCALDUMP :: SQLITE
    # create gzipped plain text backups from each sqlite database in
    # backup-dbfiles.job
    #
    # --------------------------------------------------------------------------------
    # ah - Axel Hahn <axel.hahn@iml.unibe.ch>
    # ds - Daniel Schueler <daniel.schueler@iml.unibe.ch>
    #
    # 2018-02-02  ah,ds  v1.0  first lines
    # 2018-02-09  ah,ds  v1.1  write a .meta file after successful backup
    # 2022-03-17         v1.2  WIP: add lines with prefix __DB__
    # ================================================================================
    
    if [ -z "$BACKUP_TARGETDIR" ]; then
      echo "ERROR: you cannot start $(basename $0) directly"
      rc=$rc+1
      exit 1
    fi
    # --------------------------------------------------------------------------------
    # CONFIG
    # --------------------------------------------------------------------------------
    
    FILEDEFS=${DIR_JOBS}/backup-dbfiles.job
    
    # --------------------------------------------------------------------------------
    # FUNCTIONS
    # --------------------------------------------------------------------------------
    
    # make sqlite3 backups of all sqlite = ... in backup-dbfiles.job
    function doSqliteBackup(){
    
      create_targetdir
    
      for DATABASE_FILE in $(_j_getvar ${FILEDEFS} "sqlite")
      do
        echo -n "__DB__${SERVICENAME} backup $DATABASE_FILE "
        if [ ! -f "$DATABASE_FILE" ]; then
          color error
          echo "ERROR: given database file does not exist"
          color reset
          rc=$rc+1
        else
          file "$DATABASE_FILE" | cut -f 2 -d ":" | grep -i "sqlite" >/dev/null
          if [ $? -ne 0 ]; then
            color error
            echo "ERROR: given database file is not a sqlite database"
            color reset
            rc=$rc+1
          else
            TARGET=$(get_outfile ${DATABASE_FILE})
            TARGET=${BACKUP_TARGETDIR}/$(echo ${TARGET} | sed "s#/#_#g").sql
            META=${TARGET}.gz.meta
            echo -n " to $TARGET "
            sqlite3 "$DATABASE_FILE" .dump >"${TARGET}"
            fetchrc
            db._compressDumpfile "${TARGET}"
    
            # $myrc is last returncode - set in fetchrc
            # if [ $myrc -eq 0 ]; then
            #   echo -n "gzip ... "
            #   compress_file "${TARGET}"
            #   echo "$DATABASE_FILE" >"${META}"
            # else
            #   echo "ERROR occured - no gzip"
            # fi
            # ls -l ${TARGET}*
    
          fi
        fi
      done
    }
    
    # restore database dump file into database
    # param  string  database dump file (gzipped)
    # param  string  optional: database to import; default: database is parsed from file
    function restoreByFile(){
      sMyfile=$1
      sMyDb=$2
    
      if [ -f "${sMyDb}" ]; then
        color error
        echo ERROR: target file already exists. Remove or rename it first.
        ls -l "${sMyDb}"
        color reset
        rc=$rc+1
      else
        color cmd
        zcat "${sMyfile}" | sqlite3 "${sMyDb}"
        fetchrc
        if [ $myrc -eq 0 ]; then
          color ok
          echo OK, restore was successful
          color reset
          ls -l "${sMyDb}"
        else
          color error
          echo ERROR while restoring backup.
          color reset
        fi
      fi
    
    }
    
    # --------------------------------------------------------------------------------
    # MAIN
    # --------------------------------------------------------------------------------
    
    
    # ----- check requirements
    j_requireBinary "sqlite3"   1
    
    if [ ! -f "$FILEDEFS" ]; then
      echo "INFO: file definitions $FILEDEFS do not exist."
      rc=$rc+1
    fi
    
    
    if [ $rc -ne 0 ]; then
      rc=0
      echo "SKIP: sqlite seems not to be here"
    else
      if [ "$1" = "restore" ]; then
        echo
        shift 1
        restoreByFile $*
    
      else
        doSqliteBackup
      fi
    fi
    
    echo "__DB__$SERVICENAME INFO: $0 $* [$SERVICENAME] final returncode rc=$rc"
    
    # --------------------------------------------------------------------------------