python + crontab 实现 MySQL 数据库自动备份_python mysql crontab-程序员宅基地

技术标签: python  

python + crontab 实现 MySQL 数据库自动备份[复制链接]

   
 
跳转到指定楼层
1#
发表于 2009-2-6 23:10:10 | 只看该作者 | 倒序浏览
很早以前为了实现 MYSQL 数据库自动备份,在 FreeBSD 下用SH写了一个脚本放到 CRONTAB 中,便轻松搞定。
今日突发奇想,想用 Python 做个脚本实现 MYSQL 数据库自动备份,于是折腾了一翻,效果不错,呵呵。

测试环境:ubuntu704 + python2.5 + mysql5

一、程序清单:auto_backup.py
(请确定当前用户对备份目录、日志目录有一定权限)
#**********************************************************************************************************************
#!/usr/bin/env python
# -*- coding: utf8 -*-
# Mysql_backup @ Python
# Functions: 自动创建当日备份目录、日志记录、压缩备份文件
# Created By Fufay on 2007-04-30,Version 0.1

import sys,os,time

# ----------------------------- 初始信息 --------------------------------------------
mysql_usr = 'root'                                         # mysql 用户
mysql_pwd = '780408ss'                              # mysql 密码
mysql_db = 'mysql'                                       # mysql 数据库
mysql_charset = 'gb2312'                      # 数据库编码
bk_path   = '/home/fufay/Python/backup/'    # 备份目录
cmd_path = '/usr/bin/'                                  # 命令 mysqldump 的路径
Logs_path = bk_path + 'Logs'                     # 日志文件全路径
# ----------------------------- 初始完毕 --------------------------------------------

# 写日志函数
def writeLogs(filename,contents):
    f = file(filename,'aw')
    f.write(contents)
    f.close()

# 备份目录以当日日期为名
today = bk_path + time.strftime('%Y-%m-%d')
# 数据库备份名称以备份时间为名
fname = today + os.sep + time.strftime('%H%M%S') + '.gz'

# 创建当日备份目录
if not os.path.exists(today):
    Msg = '-'*30 + time.strftime('%Y-%m-%d,%H:%M:%S') + '-'*30 + '\n'
    if(os.mkdir(today)) == None:
        Msg += '** 成功创建备份目录: ' + today + '\n\n'
        writeLogs(Logs_path,Msg)
    else:
        Msg += '!! 创建备份目录: ' + today + '失败,请检查目录是否可写!\n\n'
        writeLogs(Logs_path,Msg)
        sys.exit()

# 备份 Mysql 命令
cmd_dump = "%smysqldump -u%s -p%s --default-character-set=%s --opt %s | gzip > %s" % \
                (cmd_path,mysql_usr,mysql_pwd,mysql_charset,mysql_db,fname)

# 执行备份命令
if os.system(cmd_dump) == 0:
    writeLogs(Logs_path,'数据备份为: ' + fname + '\n')
else:
    writeLogs(Logs_path,'数据备份失败!\n')

# over
#**********************************************************************************************************************

二、crontab 相关。
打开终端,将 auto_backup.py 拷贝到某个文件夹(如:/home/fufay/Python/),并将其权限设定为 “允许执行”:
       chmod a+x ./auto_backup.py

设定 crontab:
      crontab -e
如:
*/30    *   *   *   *   /home/fufay/Python/auto_backup.py
保存退出
ok,这样系统每隔30分钟(当然可以设置每天/每周等等)就会运行一下 auto_backup.py 这个文件做数据库备份工作了。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wangzhaopeng0316/article/details/8619914

智能推荐

智能视频监控平台EasyCVR级联后,上级平台如何获取下级的云端录像?_视频监控 上级域 下级域 啥意思-程序员宅基地

文章浏览阅读78次。在上级平台获取直播录像目录,下发播放指令_视频监控 上级域 下级域 啥意思

【用unity实现100个游戏之16】Unity程序化生成随机2D地牢游戏1(附项目源码)_unity 单词城堡垒游戏源码-程序员宅基地

文章浏览阅读661次,点赞6次,收藏4次。关于使用TileMap生成随机2D地图,其实之前已经有做过类似的,感兴趣可以看看但是随着学习深入,发现之前做的比较粗糙和不够全面,最近又在外网看到_unity 单词城堡垒游戏源码

MySQL | 六个最常用的 MySQL 数据库监控工_mysql最常用的数据监测软件-程序员宅基地

文章浏览阅读1.8w次。六个最常用的 MySQL 数据库监控工具_mysql最常用的数据监测软件

Expo大作战(四十)--expo sdk api之 Calendar,Constants-程序员宅基地

文章浏览阅读200次。简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网我猜去全部机翻+个人修改补充+demo测试的形式,对expo进行一次大补血!欢迎加入expo兴趣学习交流群:597732981【之前我写过一些列关于expo和rn入门配置的东i西,大家可以点..._通过expo go操作calendar

差模噪声与共模噪声-程序员宅基地

文章浏览阅读160次。点击蓝字关注我们关注、星标公众号,精彩内容每日送达来源:网络素材传导噪声可分为两种。一种是“差模噪声”,也称为“常模噪声”。这两种称呼有时可根据条件区分使用,不过在本文中作为相同的名词处理。另一种是“共模噪声”。来看下图。本文是围绕电源展开介绍的,因此图例是将带有电路的印刷电路板(PCB)装在壳体中,并由外部给电的示例图。差模噪声产生在电源线之间,是噪声源对于电源线串联进入,噪声电流与电源电流方..._差模噪声和共模噪声

(模板)高精度算法_高精度算法模板-程序员宅基地

文章浏览阅读276次。高精度加法,减法,乘法,通过重载运算符及自定义数据类型实现;#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int N=4005;char A[N],B[N];struc_高精度算法模板

随便推点

如何判断lib是/md or /mt编译的_如何查看 dll或lib是mt-程序员宅基地

文章浏览阅读2.2k次,点赞2次,收藏5次。如何判断lib是/md or /mt编译的使用dumpbin.exe 打开命令行输入 dumpbin.exe /directives xxx.lib其中 /DEFAULTLIB 显示是哪一种方式编译其中MSVCRT 表示MD编译MSVCRTD 表示MDd 编译LIBCMT 表示 MT编译LIBCMTD 表示MTd编译..._如何查看 dll或lib是mt

全球及中国煤炭工业市场产量规模与十四五发展战略报告2022版_国际煤炭行业发展格局-程序员宅基地

文章浏览阅读2k次。全球及中国煤炭工业市场产量规模与十四五发展战略报告2022版HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--【修订日期】:2021年11月【搜索鸿晟信合研究院查看官网更多内容!】第一章 煤炭资源概述1.1 世界煤炭资源储量及分布1.1.1 世界煤炭资源储量规模1.1.2 世界煤炭资源分布概况1.1.3 世界煤炭生产分布的特点1.1.4 世界煤炭资源的管理方式1.2 中国煤炭资源储量及分布1.2.1 国内煤炭资源查明储量..._国际煤炭行业发展格局

西门子PLC配KUKA机器人程序 程序为西门子S7-1500PLC博途调试:_机器人segment信号-程序员宅基地

文章浏览阅读311次,点赞4次,收藏5次。通过对PLC与机器人的配合使用进行深入研究和实践,可以提高生产效率、保证工作安全,并为学习西门子PLC和项目调试提供优秀的参考案例。为了方便工程师对PLC和机器人系统进行监控和调试,通常会配置触摸屏HMI(人机界面),通过界面显示实时数据和系统状态,实现对系统的可视化管理。通过PLC对机器人的控制,可以实现对机器人运动的安全监控和控制。通过PLC对机器人进行信号控制,可以实现对机器人的自动控制。通过PLC对机器人的干涉区逻辑和程序段逻辑进行控制,可以避免机器人之间的碰撞和干涉,保证生产过程的顺利进行。_机器人segment信号

ICDM 2019最佳论文:从图片、文本到网络结构数据翻译,一种新型的多属性图翻译模型_icdm 2019 best paper award-程序员宅基地

文章浏览阅读1.2k次。本文介绍的是一篇 ICDM 2019 最佳论文。作者定义了一种新的图神经网络领域的问题:「多属性图转换」,即基于一个多属性图生成另一个多属性图。多属性图指节点和边都拥有多种描述性属性(标签,类别,特征等)。作者基于此问题开发了一种允许节点属性和边属性同步转换的新颖框架。所提出的边属性转换是一种通用方法,并证明拓扑边转换模型是本文模型的特例。机器之心发布,作者:Xiaojie Guo、Liang..._icdm 2019 best paper award

维特比算法实现的几个例子_viterbi算法例题-程序员宅基地

文章浏览阅读889次。实现1:有观测序列,发射概率,状态转移矩阵返回最佳路径# --*--coding:utf-8--*--import numpy as np# 隐状态hidden_state=['sunny','rainy']# 观测序列observation=['walk','shop','clean']#根据观测序列,发射概率,状态转移矩阵返回最佳路径def viterbi(obs,stat..._viterbi算法例题

二维行程编码(2D RLE)_二维行程编码的计算-程序员宅基地

文章浏览阅读1.2k次。二维行程编码和一维行程编码类似,只是具有相同字符的长度值表示的是包含相同字符的正方形的边长。即编码时,水平方向和垂直方向的符号数必须相同。下面通过例子加以说明。  例子:图7-10 二维行程编码  编码过程:对于左边的8*8的图像,从左到右,从上到下,一行一行扫描、编码。  遇到已经被编码的字符,要跳过,到下一个未被编码的字符。  第一步: X方向有3个符号05,但Y方向只_二维行程编码的计算

推荐文章

热门文章

相关标签