Python自动备份脚本

目的:为了解决修改关键或者基础数据导致项目出现问题,所以,备份是很有必要的,并且解决备份文件过多的问题。

前提:备份的本机必须安装Mysql,否则Mysql命令报错。

使用:linux一般自带python,执行脚本:python sql_bak.py 即可。

   (PS: 如果不小心python后面没输入内容,可输入exit()即可推荐python命令行)

# -*- coding: utf-8 -*-
# Import required python libraries
# pancx 2019-04-10
import os
import time
import datetime
import shutil
# MySQL database details to which backup to be done. Make sure below user having enough privileges to take databases backup.

#数据库ip
DB_HOST = "www.tencentcdb.com"
#数据库端口
DB_PORT = "10111"
#这里填数据库用户名
DB_USER = "root"
#数据库密码
DB_USER_PASSWORD = "\‘(ink^zm+36ygZvgXPjq#*k_Xd=&18!\‘"
#需要备份的数据库
DB_NAMES = "order,act,ggg"
#需要备份到的路径
BACKUP_PATH = "/sqlbak/"

# Getting current datetime to create seprate backup folder like "20190412".
DATETIME = time.strftime(‘%Y%m%d‘)
TODAYBACKUPPATH = BACKUP_PATH + DATETIME

# Checking if backup folder already exists or not. If not exists will create it.
if not os.path.exists(TODAYBACKUPPATH):
    os.makedirs(TODAYBACKUPPATH)

today = datetime.datetime.now()
for item in os.listdir(BACKUP_PATH):
    try:
        foldername = os.path.split(item)[1]
        day = datetime.datetime.strptime(foldername, "%Y%m%d")
        diff = today - day
        if diff.days >= 90:
            print(‘- - - del folder three months ago: ‘ + BACKUP_PATH + item)
            shutil.rmtree(BACKUP_PATH + item)
    except:
        pass

# Code for checking if you want to take single database backup or assinged multiple backups in DB_NAME.
DBS = DB_NAMES.split(",")
for DB_NAME in DBS:
    # Starting actual database backup process.
    DB_PATH = TODAYBACKUPPATH + "/" + DB_NAME + ".sql.gz"

    print("- - - baking ‘" + DB_NAME + ".sql‘")
    dumpcmd = "mysqldump -h" + DB_HOST + " -P" + DB_PORT + " -u" + DB_USER + " -p" + DB_USER_PASSWORD + " --databases " + DB_NAME + " --set-gtid-purged=OFF |gzip > " + DB_PATH
    os.system(dumpcmd)

print("- - - Your backups has been created in ‘" + TODAYBACKUPPATH + "‘ directory")

# mysqldump: [Warning] Using a password on the command line interface can be insecure. 在命令行输入密码,就会提示这些安全警告信息(警告信息可忽略)

原文地址:https://www.cnblogs.com/pcxx/p/11025232.html

时间: 2024-08-29 07:34:32

Python自动备份脚本的相关文章

windows下oracle数据库自动备份脚本

1.根据日期自动生成 Oracle 备份文件 @echo off echo 正在备份Oracle数据库,请稍等...... exp userid='用户名/密码@SID' file=D:\bak\res_%date:~0,4%%date:~5,2%%date:~8,2%.dmp log=D:\bak\res_%date:~0,4%%date:~5,2%%date:~8,2%.log owner=res echo 任务完成! 2.根据日期时间分秒自动生成 Oracle 备份文件 @echo off

Linux自动备份脚本

今天网上一个朋友问了我一个shell的题目,让我帮他做下.下面是题目以及解题思路. 题目: 写作一个备份/etc目录的脚本,要求:将/etc目录下的所有文件cp到/var/backups目录下的以当天的日期命名的目录中例如(/var/backups/etc.20140809).并且判断前一天的目录中的文件与当天的区别,如果无区别,则删除前一天的备份目录. 解答: [[email protected] scripts]# cat auto_bak.sh  #!/bin/bash # # This 

实战:INNOBACKUPEX for mysql 5.6自动备份脚本

#backup.sh #!/bin/sh # # 第一次执行它的时候它会检查是否有完全备份,否则先创建一个全库备份 # 当你再次运行它的时候,它会根据脚本中的设定来基于之前的全库备份进行增量备份 #[email protected] INNOBACKUPEX_PATH=innobackupex  #INNOBACKUPEX的命令 INNOBACKUPEXFULL=/usr/bin/$INNOBACKUPEX_PATH  #INNOBACKUPEX的命令路径 #mysql目标服务器以及用户名和密码

Oracle自动备份脚本的实现

问题描述: Oracle自动备份脚本的实现. 错误提示1: Message file RMAN.msb not found Verify that Oracle_HOME is set properly ...... 错误原因: 自动执行的不能够识别相应的命令,需要在自动备份脚本中显式的声明Oracle的环境变量. 错误提示2: standard in must be a tty ...... 错误原因: 不能在cron使用su或者管道等操作,必须将su命令移动到相关的shell脚本中. 错误提

Windows环境下Oracle数据库的自动备份脚本

批处理文件(.bat) @echo off echo ================================================ echo  Windows环境下Oracle数据库的自动备份脚本 echo  1. 使用当前日期命名备份文件. echo  2. 自动删除7天前的备份. echo ================================================ ::以“YYYYMMDD”格式取出当前时间. set BACKUPDATE=%date

MySql Windws 下自动备份脚本

这几天正在做一个  使用MySQL数据库的项目,目前项目已经完成了,当部署好项目之后,正在考虑如何自动备份MySql数据库的问题,我在网上找了一下资料终于解决了,特此记录一下. 1 @echo off 2 echo. 3 echo MySQL数据库备份 4 5 echo ***************************** 6 echo. 7 echo 今天是 %date% 8 echo 时间是 %time% 9 echo. 10 echo ************************

Linux自动备份脚本--解析

      由于上次做项目的时候,客户要求需要对系统状态做自动备份,当时觉得自己写得脚本实在是不够上档次,就开始在网上搜索各种比较好的脚本,现在找到了一个还挺不错的脚本,与大家一起来解析分享一下.其实我第一遍看的时候中间有一小部分没有弄懂,觉得里面的语法真的是用的恰到好处,不过还是稍稍修改了一点. #说明使用的是bash语法来写脚本 #!/bin/bash #设置日志文件,前提建好了/backup/log目录 LogFile=/backup/log/`date +"%Y-%m"`.lo

Linux下Oracle自动备份脚本

#!/bin/bash export ORACLE_HOME=/usr/local/instantclient_11_2export PATH=$ORACLE_HOME:$PATHexport TNS_ADMIN=$ORACLE_HOME/network/adminexport LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH#export NLS_LANG='simplified chinese_china.ZHS16GBK'export NLS_LA

mysql自动备份脚本及异地定时FTP

分享个自己写的mysql自动备份脚本.定时执行设置及windows自动FTP,请大家指教. 前提环境:mysql数据库服务器开启vsftpd,并配置合适帐号以便能被内网存储服务器FTP 第一步:编写mysql自动执行脚本 #!/bin/sh # mysql_db_backup.sh: backup mysql databases. # # Last updated: Wed Nov  9 07:01:01 CST 2011 # ----------------------------------