• 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问题解决了

  • 相关阅读:
    SimpleAdapter的用法
    ListView中加载大量的图片
    用PreferenceActivity做一个标准的设置界面
    用代码构造PreferenceScreen
    工具类之Condition
    工具类之Mutex
    Linux初探之如何查看帮助文档自学命令[网址]
    linux基础之帮助文档---常用的命令[转载]
    Linux 下常见的四款chm查看器比较[转载+亲测可用]
    Linux(Ubuntu)下MySQL的安装与配置[转载+亲测]
  • 原文地址:https://www.cnblogs.com/qq78292959/p/3637386.html
Copyright © 2020-2023  润新知