Shell脚本一键自动备份mongodb数据库, Shell脚本一键自动备份mongodb数据库,定义备份目录和文件名, 把该内容保存在此文件夹的位置,然后命名为。xxx.sh ,一会儿会执行这个文件, 使用 sh xxx.sh, 只需要配置数据库用户名和密码即可,使用sh xxx.sh 执行完毕后,此文件的同目录下会有一个备份好且压缩后的包, 此为一键备份mongodb数据库,全部表部分表均可。
#!/bin/bash # 定义备份目录和文件名, 把该内容保存在此文件夹的位置,然后命名为。xxx.sh ,一会儿会执行这个文件, 使用 sh xxx.sh BACKUP_DIR=/www/backup # 数据库名称 -------------------需要设置--------------- DATANAME="databasename" # 数据库密码------------------ -需要设置--------------- PASSWORD="123456" # 需要读取的表,如果全部,为空即可,如果多个,使用逗号隔开 ("a","b")。---需要设置--------------- table_array=() # 数据库端口地址及端口号设置,可以为ip , 如:127.0.0.1:600 --------------需要设置--------------- database_hostandport=www.hao366.net:600 # ----------------------------------- 以下无需要改动--------------------------------------------------- # 备份到的文件夹如果已存在,则删除 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 2>/dev/null # 检查命令是否执行失败 if [ $? -ne 0 ]; then echo "压缩 $DATANAME 失败" else echo "压缩 $DATANAME successfully." fi # 删除压缩前的文件夹 rm -rf $BACKUP_DIR/$DATANAME 2>/dev/null # 检查命令是否执行失败 if [ $? -ne 0 ]; then echo "删除压缩前的文件夹失败" else echo "已删除压缩前的文件夹 , successfully." fi
使用sh xxx.sh 执行完毕后,此文件的同目录下会有一个备份好且压缩后的包, 此为一键备份mongodb数据库,全部表部分表均可。