zoukankan      html  css  js  c++  java
  • linux下mysql自动备份脚本

    脚本放在 /home/user/mysql_backup.sh

        crontab

        # crontab -l

        # m h  dom mon dow   command

        28 16 * * * /home/user/mysql_backup.sh

        脚本如下

        #!/bin/sh

        # mysql_backup.sh: backup mysql databases and keep newest 5 days backup.

        #

        # Last updated: 20 March 2006

        # ----------------------------------------------------------------------

        # This is a free shell script under GNU GPL version 2.0 or above

        # Copyright (C) 2006 Sam Tang

        # Feedback/comment/suggestions : http://www.real-blog.com/

        # ----------------------------------------------------------------------

        # your mysql login information

        # db_user is mysql username

        # db_passwd is mysql password

        # db_host is mysql host

        # -----------------------------

        db_user="root"

        db_passwd="password"

        db_host="localhost"

        # the directory for story your backup file.

        backup_dir="/home/mybackup"

        # date format for backup file (dd-mm-yyyy)

        time="$(date +"%d-%m-%Y")"

        # mysql, mysqldump and some other bins path

        MYSQL="/usr/local/mysql/bin/mysql"

        MYSQLDUMP="/usr/local/mysql/bin/mysqldump"

        MKDIR="/bin/mkdir"

        RM="/bin/rm"

        MV="/bin/mv"

        GZIP="/bin/gzip"

        # check the directory for store backup is writeable

        test ! -w $backup_dir && echo "Error: $backup_dir is un-writeable." && exit 0

        # the directory for story the newest backup

        test ! -d "$backup_dir/backup.0/" && $MKDIR "$backup_dir/backup.0/"

        # get all databases

        all_db="$($MYSQL -u $db_user -h $db_host -p$db_passwd -Bse show databases)"

        for db in $all_db

        do

        $MYSQLDUMP -u $db_user -h $db_host -p$db_passwd $db | $GZIP -9 > "$backup_dir/backup.0/$time.$db.gz"

        done

        # delete the oldest backup

        test -d "$backup_dir/backup.5/" && $RM -rf "$backup_dir/backup.5"

        # rotate backup directory

        for int in 4 3 2 1 0

        do

        if(test -d "$backup_dir"/backup."$int")

        then

        next_int=`expr $int + 1`

        $MV "$backup_dir"/backup."$int" "$backup_dir"/backup."$next_int"

        fi

        done

        exit 0;

        备注:

        mysql是以mysql用户身份运行的,对/home /mybackup不可写也会失败

        chmod 777 /home/mybackup问题解决了

  • 相关阅读:
    [Java123] JDBC and Multi-Threading 多线程编程学习笔记
    3:2D装换 [ 重点 ]
    2:属性选择器 + 结构伪类选择器 + 伪元素
    1:新增 H5 常用属性
    day2
    代码实操第一天
    1 滑动门
    css高级技巧
    11:网页布局总结
    10:定位
  • 原文地址:https://www.cnblogs.com/qq78292959/p/3637386.html
Copyright © 2011-2022 走看看