mongo_backup 847 B

123456789101112131415161718192021222324252627282930313233343536
  1. #!/bin/bash
  2. [ $# -ne 5 ] && exit 6
  3. DBHOST=${1}
  4. DBUSER=${2}
  5. DBPASS=${3}
  6. DATABASE=${4}
  7. BACKUP_DIR=${5}
  8. MDUMP=`which mongodump`
  9. [ -z "${MDUMP}" ] && exit 200
  10. [ -z "${BACKUP_DIR}" -o "${BACKUP_DIR}" == "/" ] && exit 200
  11. [ -e "${BACKUP_DIR}/${DATABASE}" ] && rm -rf "${BACKUP_DIR}/${DATABASE}"
  12. [ ! -e "${BACKUP_DIR}/${DATABASE}" ] && mkdir -p "${BACKUP_DIR}/${DATABASE}" >/dev/null
  13. HOST=
  14. [ -n "${DBHOST}" ] && HOST="-h ${DBHOST}"
  15. USER=
  16. [ -n "${DBUSER}" ] && USER="-u ${DBUSER}"
  17. PASS=
  18. [ -n "${DBPASS}" ] && PASS="-p ${DBPASS}"
  19. DB=
  20. [ -n "${DATABASE}" -a "${DATABASE}" != "all" ] && DB="-d ${DATABASE}"
  21. $MDUMP ${HOST} ${USER} ${PASS} ${DB} -o "${BACKUP_DIR}/${DATABASE}" >/dev/null
  22. [ $? -ne 0 ] && exit 100
  23. tar -czf "${BACKUP_DIR}-${DATABASE}.tgz" "${BACKUP_DIR}/${DATABASE}" >/dev/null 2>&1
  24. ret=$?
  25. rm -rf "${BACKUP_DIR}" >/dev/null
  26. exit ${ret}