首页 Linux shell脚本自动备份压缩mongodb数据库(mongodb数据库备份)

shell脚本自动备份压缩mongodb数据库(mongodb数据库备份)

2024-07-01 22:45 编辑:  丽丽学习网

定义备份目录和文件名, 把该内容保存在此文件夹的位置,然后命名为。xxx.sh ,一会儿会执行这个文件, 使用命令 sudo sh xxx.sh  执行完后,发现该文件夹中多了一个压缩包,即是备份压缩好的mongodb数据库,具体如何使用shell脚本自动备份压缩mongodb数据库(mongodb数据库备份), 直接上代码:

#!/bin/bash
# 定义备份目录和文件名, 把该内容保存在此文件夹的位置,然后命名为。xxx.sh ,一会儿会执行这个文件
BACKUP_DIR=/www/backup/database
# 数据库名称 -------------------需要设置---------------
DATANAME="username"
# 数据库密码------------------ -需要设置---------------
PASSWORD="password"
# 需要读取的表,如果全部,为空即可。--------需要设置---------------
table_array=(a,b)
# 数据库端口 -------------------------------需要设置---------------
database_hostandport=127.0.0.1:27017
# 备份到的文件夹如果已存在,则删除
if [ ! -d $BACKUP_DIR/$DATANAME ]; then
    # 不存在
    echo "Folder $folder created."
else
    # 存在,先删除
    echo "Folder $folder already exists. already deleted"
    rm -rf $BACKUP_DIR/$DATANAME
fi
BACKUP_FILE="${DATANAME}_$(date +%Y%m%d%H%M%S).tar.gz"
# 循环读取数组中的每个元素
# 获取数组长度
array_length=${#table_array[@]}
if [ $array_length -eq 0 ]; then
    # 全备份
    mongodump -h $database_hostandport -u $DATANAME --password $PASSWORD --authenticationDatabase $DATANAME -d $DATANAME -o $BACKUP_DIR
else
    for i in "${table_array[@]}"; do
        # 执行备份命令 , --excludeCollection 后接要忽略的集合,或使用 -c 后接指定要导出的集合,一条指令只能一个
        mongodump -h $database_hostandport -u $DATANAME --password $PASSWORD --authenticationDatabase $DATANAME -d $DATANAME -c $i -o $BACKUP_DIR
    done
fi
# 压缩
tar -zcvf $BACKUP_FILE $DATANAME
# 删除压缩前的文件夹
rm -rf $BACKUP_DIR/$DATANAME

把文件保存起来,在此目录 下执行 ,sudo sh xxx.sh 即可, 或是直接执行  sh  ./xxx.sh