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