• mysql定时备份


    原文地址:

    http://www.niu12.com/article/1

    就在前两天,在玩docker的时候,才疏学浅,把服务器的数据库全删了,经过这两天的整理,
    个人项目也都恢复正常了,但是数据都没有了。
    倒不觉得是件坏事,吃亏还是要趁早吧。这不,赶紧弄了每天数据库备份和阿里云快照,
    幸亏是私人的,如果是公司项目的话,可能真的就FF了。

    也不是没有学到东西,现在就吧mysql在linux下的定时备份写一下, 也算是对以前不足的知识点进行补充。

    首先是要对定时任务的知识补充。

    1.定时任务crontab的安装与启动相关
    service crond start // 启动服务
    service crond stop // 关闭服务
    service crond restart // 重启服务
    service crond reload // 重新载入配置
    service crond status // crontab服务状态

    2.crond -e 进入定时任务

    crond -l 查看该用户下的crontab服务是否创建成功

    查看服务是否已经运行用 ps -ax | grep cron

    3.定时任务的格式
    crontab 格式:

    基本格式 :

    分钟   小时   日   月   星期   命令

    *   *   *    *   *    *

    第1列表示分钟1~59 每分钟用*或者 */1表示 每5分钟用*或者 */5表示
    第2列表示小时1~23(0表示0点)
    第3列表示日期1~31
    第4列 表示月份1~12
    第5列标识号星期0~6(0表示星期天)
    第6列要运行的命令

    记住几个特殊符号的含义:
    “*”代表取值范围内的数字,
    “/”代表”每”,
    “-”代表从某个数字到某个数字,
    “,”分开几个离散的数字 

    crontab文件的一些例子:
    (1) 30 21 * * * /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每晚的21:30重启apache

    (2)45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每月1、10、22日的4 : 45重启apache
    (3)10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每周六、周日的1 : 10重启apache。
    (4)*/2 * * * * /bin/sh /deleteFile.sh
    上面的例子表示每两分钟执行deleteFile.sh这个脚本

    4.mysql数据备份
    crontab -e
    (1)0 0 * * * /usr/bin/sh /usr/local/crontab_script/mysql_blog_backup.sh >> /usr/local/crontab_script/mysql_blog_backup.log

    上面的例子表示每天零点通过/usr/bin/sh命令 执行/usr/local/crontab_script/mysql_blog_backup.sh脚本,
    并将日志输入到/usr/local/crontab_script/mysql_blog_backup.log日志文件中

    (2)/usr/local/crontab_script/mysql_blog_backup.sh脚本文件
    # Name:test_database_backup.sh
    # This is a ShellScript For Auto DB Backup and Delete old Backup
    #备份地址
    backupdir=/applications/data/backup/mysql/blog
    #备份文件后缀时间
    time=_` date +%Y_%m_%d_%H_%M_%S `
    #需要备份的数据库名称
    db_name=blog
    #mysqldump命令使用绝对路径
    /usr/bin/mysqldump $db_name | gzip > $backupdir/$db_name$time.sql.gz
    #删除7天之前的备份文件
    find $backupdir -name $db_name"*.sql.gz" -type f -mtime +7 -exec rm -rf {} ; > /dev/null 2>&1

    (3)在上面的脚本文件中并没有写入数据库用户名和密码,所以需要
    vim /etc/my.cnf
    [mysqldump]
    quick
    max_allowed_packet = 16M
    #在这里输入user及password,在执行mysqldump命令就不用输入用户名和密码了
    user=root
    password=123456
    (4)执行service crond restart即可
  • 相关阅读:
    常用模块(time,os,sys,collections,random,序列化模块,re)
    python-函数篇
    内置函数——filter和map
    python杂七杂八的用法
    计算机硬件
    操作系统简介
    Django入门
    linux下查看cpu物理个数和逻辑个数
    python反射的妙用
    Python(文件、文件夹压缩处理模块,shelve持久化模块,xml处理模块、ConfigParser文档配置模块、hashlib加密模块,subprocess系统交互模块 log模块)
  • 原文地址:https://www.cnblogs.com/zhouqi666/p/10138369.html
Copyright © 2020-2023  润新知