Dump and restore database - haiquang9994/dev_env GitHub Wiki

dumpdb

Nếu dùng ssh connection, cần setup file .my.cnf của ssh server.

#!/bin/bash

SSH_HOST=$1
DB_NAME=$2
if [ -z "$SSH_HOST" ](/haiquang9994/dev_env/wiki/|--z-"$DB_NAME"-)
then
    echo "$(which $0) [SSH_HOST] [DB_NAME]"
else
    time=$(date '+%Y%m%d%H%M%S');
    if [ "$SSH_HOST" == 'local' ](/haiquang9994/dev_env/wiki/|-"$SSH_HOST"-==-'localhost'-||-"$SSH_HOST"-==-'127.0.0.1'-)
    then
        mysqldump --default-character-set=utf8mb4 $DB_NAME | gzip -c > ~/Desktop/${DB_NAME}_local_${time}.sql.zip
        gunzip -S .zip ~/Desktop/${DB_NAME}_local_${time}.sql.zip
        echo Output: ~/Desktop/${DB_NAME}_local_${time}.sql
    else
        ssh $SSH_HOST "mysqldump --default-character-set=utf8mb4 $DB_NAME | gzip -c" > ~/Desktop/${DB_NAME}_ssh_${time}.sql.zip
        gunzip -S .zip ~/Desktop/${DB_NAME}_ssh_${time}.sql.zip
        echo Output: ~/Desktop/${DB_NAME}_ssh_${time}.sql
    fi
fi

restoredb

Nếu dùng ssh connection, cần setup file .my.cnf của ssh server.

#!/bin/bash

MYSQL_PATH=$1
SSH_HOST=$2
DB_NAME=$3

if [ -z "$MYSQL_PATH" ](/haiquang9994/dev_env/wiki/|--z-"$SSH_HOST"-||--z-"$DB_NAME"-)
then
    echo "$(which $0) [MYSQL_PATH] [SSH_HOST] [DB_NAME]"
else
    if [ "$SSH_HOST" == 'local' ](/haiquang9994/dev_env/wiki/|-"$SSH_HOST"-==-'localhost'-||-"$SSH_HOST"-==-'127.0.0.1'-)
    then
        cat $MYSQL_PATH | mysql $DB_NAME
    else
        cat $MYSQL_PATH | ssh $SSH_HOST "mysql $DB_NAME"
    fi
fi

dumpdb_mongo

#!/bin/bash

SSH_HOST=$1
DB_NAME=$2
USERNAME=$3
PASSWORD=$4

if [ -z "$SSH_HOST" ](/haiquang9994/dev_env/wiki/|--z-"$DB_NAME"-||--z-"$USERNAME"-||--z-"$PASSWORD"-)
then
    echo "$(which $0) [SSH_HOST] [DB_NAME] [USERNAME] [PASSWORD]"
else
    time=$(date '+%Y%m%d%H%M%S');
    if [ "$SSH_HOST" == 'local' ](/haiquang9994/dev_env/wiki/|-"$SSH_HOST"-==-'localhost'-||-"$SSH_HOST"-==-'127.0.0.1'-)
    then
        mongodump --host=127.0.0.1:27017 --db=$DB_NAME --username=$USERNAME --password=$PASSWORD --authenticationDatabase=admin --quiet --archive="~/Desktop/${DB_NAME}_local_${time}" --gzip
        echo Output: ~/Desktop/${DB_NAME}_local_${time}
    else
        ssh $SSH_HOST "mongodump --host=127.0.0.1:27017 --db=$DB_NAME --username=$USERNAME --password=$PASSWORD --authenticationDatabase=admin --quiet --archive --gzip" > ~/Desktop/${DB_NAME}_ssh_${time}.zip
        gunzip -S .zip ~/Desktop/${DB_NAME}_ssh_${time}.zip
        echo Output: ~/Desktop/${DB_NAME}_ssh_${time}
    fi
fi

restoredb_mongo

#!/bin/bash

ARCHIVE_PATH=$1
SSH_HOST=$2
FROM_NAME=$3
TO_NAME=$4
USERNAME=$5
PASSWORD=$6

if [ -z "$ARCHIVE_PATH" ](/haiquang9994/dev_env/wiki/|--z-"$SSH_HOST"-||--z-"$FROM_NAME"-||--z-"$TO_NAME"-)
then
    echo "$(which $0) [ARCHIVE_PATH] [SSH_HOST] [FROM_NAME] [TO_NAME] [USERNAME] [PASSWORD]"
else
    if [ "$SSH_HOST" == 'local' ](/haiquang9994/dev_env/wiki/|-"$SSH_HOST"-==-'localhost'-||-"$SSH_HOST"-==-'127.0.0.1'-)
    then
        if [ -z "$USERNAME" ](/haiquang9994/dev_env/wiki/|--z-"$PASSWORD"-)
        then
            cat $ARCHIVE_PATH | mongorestore --host=127.0.0.1:27017 --archive --nsFrom=${FROM_NAME}.* --nsTo=${TO_NAME}.*
        else
            cat $ARCHIVE_PATH | mongorestore --host=127.0.0.1:27017 --archive --username=$USERNAME --password=$PASSWORD --authenticationDatabase=admin --nsFrom=${FROM_NAME}.* --nsTo=${TO_NAME}.*
        fi
    else
        if [ -z "$USERNAME" ](/haiquang9994/dev_env/wiki/|--z-"$PASSWORD"-)
        then
            cat $ARCHIVE_PATH | ssh $SSH_HOST "mongorestore --host=127.0.0.1:27017 --archive --nsFrom=${FROM_NAME}.* --nsTo=${TO_NAME}.*"
        else
            cat $ARCHIVE_PATH | ssh $SSH_HOST "mongorestore --host=127.0.0.1:27017 --archive --username=$USERNAME --password=$PASSWORD --authenticationDatabase=admin --nsFrom=${FROM_NAME}.* --nsTo=${TO_NAME}.*"
        fi
    fi
fi