千家信息网

linux下实现mysql自动备份的脚本

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍"linux下实现mysql自动备份的脚本",在日常操作中,相信很多人在linux下实现mysql自动备份的脚本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2025年01月20日linux下实现mysql自动备份的脚本

这篇文章主要介绍"linux下实现mysql自动备份的脚本",在日常操作中,相信很多人在linux下实现mysql自动备份的脚本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"linux下实现mysql自动备份的脚本"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

脚本放在 /home/user/_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问题解决了

到此,关于"linux下实现mysql自动备份的脚本"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0