62 lines
1.1 KiB
Bash
Executable File
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
|