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

智能推荐

如何使用FFmpeg将AVI转换为MP4_ffmpeg 转换 不重新编码-程序员宅基地

文章浏览阅读108次。使用FFmpeg将AVI转换为MP4_ffmpeg 转换 不重新编码

广工数字逻辑与EDA设计课程EDA设计实验报告_广工eda实验报告-程序员宅基地

文章浏览阅读759次,点赞7次,收藏6次。基本要求:写上实验目的、实验环境及器件、实验内容和实验结果,附上 Verliog代码、测试平台、综合结果图(RTL 视图及工艺视图) ,综合前仿真、综合后仿真、布局布线后仿真的截图,并写出心得体会。EDA 设计实验报告。_广工eda实验报告

在textarea中插入图片的办法(转载)_textarea插入图片-程序员宅基地

文章浏览阅读2.2w次,点赞3次,收藏17次。原文地址:http://www.cnxinhua.com/html/17688.html 最近一个客户要求这个功能----在textarea中插入图片,用来模仿UBB代码,但又不同于UBB,原因是UBB点击某个图片的时候,在textarea中插入的是一些特殊的字符,而他要求的是将图片插入到textarea中。太难实现了,原因是textarea中只允许插入文字,不允许插入图片,找了很长时间,最终还是_textarea插入图片

头歌-Python入门之运算符的使用_比较和逻辑运算符头歌-程序员宅基地

文章浏览阅读410次。【代码】头歌-Python入门之运算符的使用。_比较和逻辑运算符头歌

【OJ每日一练】1031 - 温度换算_1031: 温度转换-程序员宅基地

文章浏览阅读1.4k次,点赞2次,收藏4次。文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习。输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9 输出要求有文字说明,取位2小数。摄氏温度,浮点数,四舍五入后保留两位小数。一个华氏温度,浮点数。_1031: 温度转换

LINUXE下执行php 定时任务-程序员宅基地

文章浏览阅读39次。linuxtest.php<?php $fn='/home/root.adminssh/boz/logs';$data=rand(1,9999);$fp=fopen($fn,'wb');fwrite($fp,$data);fclose();?>linux下执行命令/usr/bin/php -f ./test.php转载...

随便推点

1、MacBook搭建嵌入式Linux开发板和Parallel虚拟机网络互通_mac开发嵌入式-程序员宅基地

文章浏览阅读559次,点赞8次,收藏10次。MacBook搭建嵌入式Linux开发板和Parallel虚拟机网络互通_mac开发嵌入式

【python 走进NLP】pkuseg一个领域细分的中文分词工具包_领域分词-程序员宅基地

文章浏览阅读1.5k次。2019年1月份北京大学发布了中文分词工具包:pkuseg,来测试下:简介:pkuseg具有如下几个特点:多领域分词。不同于以往的通用中文分词工具,此工具包同时致力于为不同领域的数据提供个性化的预训练模型。根据待分词文本的领域特点,用户可以自由地选择不同的模型。 我们目前支持了新闻领域,网络文本领域和混合领域的分词预训练模型,同时也拟在近期推出更多的细领域预训练模型,比如医药、旅游、专利、小..._领域分词

1工作职场上如何和讨厌的人相处 A 理智 平静 宽容,格局要大,以德御才,大才御小才_职场中怎么和爱传话的人相处-程序员宅基地

文章浏览阅读878次。1.1跟他们交流或是合作时,要注意不要情绪化,我们冷静一下再谈。不要过于斤斤计较。1.2多问“为什么?”重复对方的话,“你是说XXX”消除误会,明白意思,其实每个人都有自己的难题,讨厌是相互的。1.3时间是自己掌控的,不要因为别人的事占据自己的时间,“我先把这忙完啊",拒绝干扰。不要让自己成为一个小心眼的人,小心眼的人不管到了哪里都会遇见N个他讨厌的人。与讨厌的人相处,_职场中怎么和爱传话的人相处

notepad宏的使用,定制各种操作,比如删除一整行、从当前位置到行末用某字符替换_note pad 删除 宏录制-程序员宅基地

文章浏览阅读1.4k次。删除一整行点击菜单中的【宏】-【开始录制】。鼠标在任意一行内容上单击,使光标停在这行。然后在键盘上找到home键,按下,这时光标不管之前在哪个位置,现在光标都会出现在这行的最前面,这时按住shift键不松,再在键盘上找到end键然后按下。这时就选中这一行了。然后按两次delete键,就把当前行删除了。点击【宏】-【停止录制】。再点击【宏】-【保存录制宏】。然后根据提示,填写名称和选择快捷键的组合,在这我选择的是Ctrl+E。然后点击OK保存。可以看到保存成功了可以直接点击来使用,或者_note pad 删除 宏录制

T168_Debug222\appl\Barcode\Two\DataMatrix文件:IDMXORPK.C-程序员宅基地

文章浏览阅读933次,点赞26次,收藏22次。* None *//* None *//* None *//* None *//* None *//* None */#else#endif#endiffor (;count-- )#endif#else#endif#endiffor (;count-- )#endif。

Springcloud:. yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found char-程序员宅基地

文章浏览阅读587次。Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character '@' that cannot start any token. (Do not use @ for indentation)_canner.scannerexception: while scanning for the next token found character

推荐文章

热门文章

相关标签