Advertisement
Guest User

Untitled

a guest
Sep 2nd, 2016
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. DB_HOST=$1
  4. DB_PORT=$2
  5. DB_USER=$3
  6. DB_PASS=$4
  7. DB_NAME=$5
  8. DUMP_DIR=$6
  9. DUMP_TRAIN=$7
  10. DUMP_PREFIX=$8
  11. DUMP_STAMP=$(date +%d.%m.%Y_%H.%M.%S)
  12.  
  13. function usage {
  14. echo 'Usage dumper.sh DB_HOST DB_PORT DB_USER DB_PASS DB_NAME DUMP_DIRECTORY [DUMP_TRAIN, DUMP_PREFIX]'
  15. echo 'Where optional'
  16. echo ' DUMP_TRAIN - number of stored files, should >0 (rest will be deleted)'
  17. echo ' DUMP_PREFIX - prefix dump files'
  18. exit 1
  19. }
  20.  
  21. ([[ -z "${DB_HOST}" ]] || [[ -z "${DB_PORT}" ]] || [[ -z "${DB_USER}" ]] || [[ -z "${DB_PASS}" ]] || [[ -z "${DB_NAME}" ]] || [[ -z "${DUMP_DIR}" ]]) && usage
  22. [[ -d ${DUMP_DIR} ]] || mkdir -p ${DUMP_DIR} || exit 2
  23.  
  24. DUMP_DIR=${DUMP_DIR%/}
  25. DUMP_FILE=${DUMP_DIR}/${DUMP_PREFIX}${DUMP_STAMP}-${DB_NAME}.sql
  26.  
  27. mysqldump\
  28. --host=${DB_HOST}\
  29. --port=${DB_PORT}\
  30. --user=${DB_USER}\
  31. --password=${DB_PASS}\
  32. ${DB_NAME} > ${DUMP_FILE}
  33.  
  34. if ! [ -z "${DUMP_TRAIN}" ] && [ ${DUMP_TRAIN} -gt 0 ]; then
  35. DUMP_TRAIN=$((${DUMP_TRAIN} + 1));
  36. OLD_DUMPS=$(ls -t ${DUMP_DIR} | grep -E "${DUMP_PREFIX}.*${DB_NAME}.sql" | tail -n +${DUMP_TRAIN});
  37. for file in ${OLD_DUMPS}; do
  38. rm "${DUMP_DIR}/${file}"
  39. done
  40. fi
  41.  
  42. c=$(echo "${OLD_DUMPS}" | wc -l)
  43. echo "[$(date +'%d.%m.%Y %H:%M:%S')] dump \"${DB_NAME}\" from [${DB_USER}@${DB_HOST}] to ${DUMP_FILE} and removed ${c} files: "${OLD_DUMPS} >> ~/.dumper.log
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement