备份mongo数据库,移动文件,备份压缩目录

备份mongo数据库

#!/usr/bin/env python
#coding:utf-8

import datetime
import os
import shutil

user = ‘root‘
passwd = ‘123456‘
port = 28018
backup_path = ‘/data_1/backup_logs/mongodb/‘
after_dbname = ‘bz-dw-and-‘
cx_path =‘/data/bz-dw-and/‘
now_time = datetime.datetime.now()
time = now_time.strftime(‘%Y%m%d-%H:%M:%S‘)

try:
    for dir_name in os.listdir(cx_path):
        all_backup_path = os.path.join(backup_path,dir_name)
        if not os.path.exists(all_backup_path):
            os.mkdir(all_backup_path)
        db_name = after_dbname + dir_name
        os.system("mongodump -u %s -p %s --port %s --authenticationDatabase admin -d %s -o %s" % (user,passwd,port,db_name,all_backup_path))
        os.chdir(all_backup_path)
        os.system(‘tar zcf %s-%s.tar.gz %s‘ % (db_name,time,db_name))
        shutil.rmtree(db_name,True)
except:
    print "数据库备份发生错误"

#移动文件

#!/usr/bin/env python
#coding:utf-8
import os,datetime,shutil
data=r‘/data/testlog‘
data_1=r‘/data_1/backup_logs‘
after_time=datetime.datetime.now()-datetime.timedelta(days=15)
old_time=after_time.strftime(‘%Y%m%d‘)
for dir_name in os.listdir(data):
    dest_file_path=os.path.join(data_1,dir_name)
    if not os.path.exists(dest_file_path):
        os.mkdir(dest_file_path)
    dir_path=os.path.join(data,dir_name)
    for (root,dirs,filename) in os.walk(dir_path):
       for files in filename:
           src_file_path=os.path.join(root,files)
           time_chuo=os.path.getmtime(src_file_path)
           time=datetime.datetime.fromtimestamp(time_chuo)
           file_time=time.strftime(‘%Y%m%d‘)
           if file_time < old_time:
               shutil.move(src_file_path,dest_file_path)

#备份压缩目录

#!/usr/bin/env python
import os,datetime,re,tarfile
log_dir=r‘/data/testlog‘
old_time=datetime.datetime.now()-datetime.timedelta(days=13)
after_time=datetime.datetime.now()-datetime.timedelta(days=7)
old_date=old_time.strftime(‘%Y%m%d‘)
after_date=after_time.strftime(‘%m%d‘)
file_name=‘allgame‘+‘-‘+old_date+‘-‘+after_date+‘-‘+‘logs.tar.gz‘
tar = tarfile.open(‘/data/backup_logs/all_game_log/temp.tar.gz‘, ‘w:gz‘)
for (root,dirs,filename) in os.walk(log_dir):
    for files in filename:
        for num in range(7,14):
        old_datetime=datetime.datetime.now()-datetime.timedelta(days=num)
            old_datetime_gsh=old_datetime.strftime(‘%Y%m%d‘)
        if re.match(‘\w+‘+old_datetime_gsh+‘\w+‘,files):
        abs_path=os.path.join(root,files)
        tar.add(abs_path)
tar.close()
os.rename(‘/data/backup_logs/all_game_log/temp.tar.gz‘,‘/data/backup_logs/all_game_log/‘+file_name)

原文地址:http://blog.51cto.com/yht1990/2126131

时间: 2024-10-09 04:50:41

备份mongo数据库,移动文件,备份压缩目录的相关文章

shell实现自动备份整个数据库,一个库备份一个文件

自动实现备份整个数据库 实现一个库备份一个文件 实现排除不需要备份的库 实现备份成压缩文件 实现定义保留多少天的备份文件 核心代码 1 #!/bin/bash 2 #set -x 3 ######################### 4 # 功能:自动备份整个mysql数据库 5 # 作者:时光博客 6 # 发布时间:2018/06/04 7 # 最后修改时间: 8 # 版本:v1.0 9 ######################## 10 ########################

学会4种备份MySQL数据库(基本备份方面没问题了)

前言 我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么比数据跟更为重要. 那么我们该如何保证数据不丢失.或者丢失后可以快速恢复呢?只要看完这篇, 大家应该就能对MySQL中实现数据备份和恢复能有一定的了解. 为什么需要备份数据? 其实在前言中也大概说明了为什么要备份数据, 但是我们还是应该具体了解一下为什么要备份数据 在生产环境中我们数据库可能会遭遇各

linux设置定时备份mysql数据库

最近写自己的项目,买了阿里云服务器,可以在云上根据自己想到的需求随意使用技术,感觉很爽.备份mysql流程如下: 环境:CentOS Linux release 7.2.1511 (Core) mysql5.6.34 创建存放备份文件的文件夹mkmir /backup/mysql 创建备份脚本vi backup.shmysqldump -u root -p888 familytree | gzip > /backup/mysql/familytree_$(date +%Y%m%d_%H%M%S)

简单备份MySQL数据库

本文链接:https://blog.inchm.cn/default/44.html 说是备份MySQL数据库,其实也适用于它的胞弟MariaDB. 备份 创建备份脚本 创建一个备份脚本: #!/bin/sh #把要备份的数据库dump出来,压缩后存放.路径不要有空格 mysqldump -uusername -ppassword your_database_name | gzip > /path/of/backup/directory/your_database_name+_%Y-%m-%d_

ORACLE RMAN备份及还原 RMAN可以进行增量备份:数据库,表空间,数据文件

ORACLE RMAN备份及还原 RMAN可以进行增量备份:数据库,表空间,数据文件 只有使用过的block可以被备份成backup set 表空间与数据文件对应关系:dba_data_files / v$datafile_header 在noarchivelog模式下,可以使用RMAN备份read-only和offline的表空间 ORACLE RMAN停机备份: 备份 RMAN连接上ORACLE,WINDOWS下在命令模式下 RMAN TARGET / 连接本地数据库用的是本地认证模式.RM

mysql xtrabackup 备份恢复实现,mysql命令备份数据库,打包压缩数据库

简介 Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具.特点: (1)备份过程快速.可靠: (2)备份过程不会打断正在执行的事务: (3)能够基于压缩等功能节约磁盘空间和流量: (4)自动实现备份检验: (5)还原速度快: Xtrabackup中包含两个工具: * xtrabackup - 用于热备份innodb, xtradb表的工具,不能备份其他表. * innobackupex

实验:模拟场景中误删除mysql数据库表,然后使用全备份以及二进制日志文件恢复操作

一.实验环境: 1.准备两台虚拟机,一台用于破坏数据库,一台用于还原,两台在同一个网络 2.两台最小化安装centos 7系统,并直接yum安装maraidb数据库 3.准备一个测试数据库文件,例如,hellodb_innodb.mysql 测试库里面最少有两个表. 二.实验步骤: 1.开启数据库的二进制日志功能 vim /etc/my.cnf[mysqld] 下面加入log-bin 表示开启二进制日志功能 2.完全备份 mysqldump -A -F --master-data=2 --sin

mongo数据库主从备份服务集群搭建

MongoDB 主从备份 环境: centos 7 ,mongodb x86_64 mongodb 官网下载页:https://www.mongodb.com/download-center#community 下载完毕,解压到指定的目录,我现在就把它放到/opt目录下(是绿色版的,不用安装) 在bin/这个目录下,都是mongodb的相关工具, 常用 工具说明: bsondump   --将Bson格式的文件转储为Json 格式的数据 mongo        --mongo客户端(用于连接m

docker之mongo数据库备份、导入

1.目的:从服务器a的mongo容器备份数据库导入到b服务器的mongo容器里 2.步骤:1)进入服务器a容器:docker exec -it wedia-test-mongo-svr2 /bin/bash(容器名:wedia-test-mongo-svr2) 2)  执行备份:mongodump -h 127.0.0.1 --port 27017 -u=root -p=密码 -d test -o /dump (-d指定数据库,test:备份数据库名,-o指定备份到那个目录) 3)在容器里打包备