Files
backup-2/assets/usr/local/sbin/backup.sh
T
2022-12-14 14:32:46 +07:00

62 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
source lib/lib.sh
ENVS=(PROJECT_NAME DBTYPE DBHOST DBUSER DBPASS DBTABLE STORAGE_HOST STORAGE_REGION STORAGE_PATH ACCOUNT_ID APPLICATION_KEY)
for ENV in "${ENVS[@]}"; do
if [[ -z "${!ENV+x}" ]]; then
log_error "Not set $ENV env"
exit 1
fi
done
EXT_DB=""
case $DBTYPE in
mysql)
log "DB type is <mysql>"
EXT_DB="sql.gz"
source lib/mysql.sh
;;
postgresql|psql|postgres)
log "DB type is <psql>"
EXT_DB="dump.gz"
source lib/postgresql.sh
;;
mongo|mongod|mongodb)
log "DB type is <mongodb>"
EXT_DB="dump.tgz"
source lib/mongo.sh
;;
*)
log_error "Unknown DB type, known <mysql>, <psql>, mongodb"
exit 1
;;
esac
case $STORAGE_TYPE in
s3)
log "Storage type is <s3>"
source storage/s3.sh
;;
*)
log_error "Unknown storage, known <s3>"
exit 1
;;
esac
TIME=`date +%Y-%m-%d-%H-%M`
ARCHIVE="/srv/backup/""$PROJECT_NAME"_$TIME".$EXT_DB"
log "Backuping db.."
db_backup
log "Copy $ARCHIVE to ${STORAGE_TYPE}"
storage_upload
rm $ARCHIVE
log "Completed"
exit 0