`

Ubuntu中mysql备份并仅保留最新的几份备份文件

 
阅读更多

 达到的效果:备份mysql到指定路径中,定时删除超过一定时间的备份,并仅保留最新的几份备份数据

1.编辑文件

sudo gedit /home/你的文件名/mysql.backup.sh
#!/bin/bash

### 将备份文件以*.sql格式保存至/backup/mysql中,根据时间保留最新固定的备份文件数 ###
### MySQL Server Login Info ###
MUSER="root"
MPASS="123456"
MHOST="localhost"

#指明命令的路径
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
BAK="/backup/mysql"
LS="$(which ls)"
GAWK="$(which gawk)"
XARGS="$(which xargs)"
RM="$(which rm)"

#获得mysql数据库中所有的数据库名称
DBS="$($MYSQL -u$MUSER -h$MHOST -p$MPASS -Bse 'show databases')"
#不需备份的数据库
IGNOREDBS="information_schema mysql"

#每个数据库保留的备份数
PERBAKS=40
#需要备份的数据库数量,值将在for脚本中获得
tables=0

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

#若路径不存在,则创建之
[ ! -d $BAK ] && mkdir -p $BAK

for db in $DBS
do
    
    skipdb=-1
    
    if [ "$IGNOREDBS" != "" ];
    then
    for i in $IGNOREDBS
    do
        [ "$db" == "$i" ] && skipdb=1 || :
    done
    fi
 
    if [ "$skipdb" == "-1" ] ; then
    FILE=$BAK/$db.$NOW.sql
    echo -e $NOW "开始备份……数据库"++===$db===++>>$BAK/backup.log
    #备份数据库
    $MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db  > $FILE
    #需要备份的数据库数
    tables=$[ $tables + 1 ] 
    fi
done

echo -e $tables"个数据库已备份完成" >>$BAK/backup.log

#需要保留的文件数=数据库数*每份数据库需要保留的份数
COUNT=$[ $tables * $PERBAKS ]

 
echo -e $NOW "共备份"$tables"个数据库,保留"$PERBAKS"份备份,以下文件将删除" >>$BAK/backup.log

$LS -t $BAK/*.sql|$GAWK '{sum+=1;if(NR>'$COUNT'){print sum$1}}' >>$BAK/backup.log
$LS -t $BAK/*.sql|$GAWK '{if(NR>'$COUNT'){print $1}}'|$XARGS $RM -f

$LS -t $BAK/*.sql|$GAWK '{sum+=1} END {print sum}'>>$BAK/backup.log
 
echo "=======================================================">>$BAK/backup.log

ftp -v -n 192.168.0.1 <<END
user 用户名 密码
binary
cd /home/ftp/dbback
lcd $BAK
prompt
mput $FILE
close
bye
 
2.赋执行权限
sudo chmod +x /home/你的文件名/mysql.backup.sh

 

3.编辑定时执行

sudo gedit /etc/crontab

 

  或sudo crontab -e

在#前一行增加如下脚本,即每天23:59分执行备份

59 23   * * *   root    /home/monica/mysql.backup.sh

 

   如需每几个小时执行一次,则需指定在哪一分钟执行此脚本,否则每几个小时后,将在一个小时内每分钟执行一次。如下每6个小时的第一分钟时执行一次。[0,6,12,18]点各执行一次。

 

1 */6   * * *   root    /home/monica/mysql.backup.sh  

 

4.备份文件于路径/backup/mysql可以查找到。

分享到:
评论
1 楼 sue 2011-09-25  
将mysql备份文件传至ftp上

  
ftp -v -n ftp地址END   
user myftp 123456  
binary   
cd /home/myftp   
lcd $BAK   
prompt   
mput $FILE   
close   
bye  



更多可参考网站:http://www.cyberciti.biz/tips/how-to-backup-mysql-databases-web-server-files-to-a-ftp-server-automatically.html


 ### Find out if ftp backup failed or not ###    
if [ "$?" == "0" ]; then    
rm -f $BACKUP/*    
else    
T=/tmp/backup.fail    
echo "Date: $(date)">$T    
echo "Hostname: $(hostname)" >>$T    
echo "Backup failed" >>$T    
mail  -s "BACKUP FAILED" "$EMAILID" <$T    
rm -f $T    
fi   

相关推荐

    ubuntu安装mysql,以及mysql的主从备份

    ubuntu安装mysql,以及mysql的主从备份, ubuntu版本: 17.04

    Ubuntu-mysql5.7.25离线完整安装包(含三个依赖包)

    在Linux环境中,特别是Ubuntu系统,有时我们可能需要离线安装MySQL数据库服务器,特别是在没有网络连接或者网络...记住,安装完成后,务必保持MySQL的最新安全更新,并定期备份数据,以防止潜在的安全风险和数据丢失。

    ubuntu能用的mysql5.7.38,并附带安装手册

    由于MySQL 5.7.38不在Ubuntu的官方存储库中,你需要添加MySQL的官方GPG密钥并创建一个自定义的软件源列表。执行以下命令: ```bash sudo apt-get install software-properties-common sudo apt-key adv --keyserver...

    ubuntu server下安装mysql 以及设置双机热备份

    Ubuntu Server 下安装 MySQL 及设置双机热备份 一、 Ubuntu Server 下安装 MySQL 在 Ubuntu Server 中安装 MySQL 服务器是一件非常简单的事情。我们可以使用 apt-get install 命令来安装 MySQL 服务器。首先,我们...

    ubuntu/centos自动备份mysql.txt

    服务器上没做数据库的自动备份,那你就等着删库跑路了,文章教你如何在ubuntu、centos服务器上自动备份mysql,按步骤复制粘贴即可!

    mysql数据库备份与还原

    对于MySQL这样的广泛使用的数据库系统而言,了解并掌握其备份和恢复机制对于确保业务连续性至关重要。 #### 二、MySQL数据库备份方法 MySQL提供了多种备份方式,包括但不限于物理备份和逻辑备份。其中,最常用的是...

    ubuntu下设置mysql自动备份的例子

    Ubuntu 下设置 MySQL 自动备份的实例 ...通过这个实例,我们可以学习到在 Ubuntu 下设置 MySQL 自动备份的步骤和方法,并了解到相关的知识点和概念。备份数据库是非常重要的,以防止数据丢失或损坏。

    ubuntu mysql

    本文将详细介绍如何在Ubuntu上安装、配置MySQL,并探讨备份策略以及如何实现MySQL的双向同步。 **一、安装MySQL** 1. 更新系统软件库: ``` sudo apt update ``` 2. 安装MySQL Server: ``` sudo apt install ...

    linux mysql自动备份工具

    本篇文章将详细讲解如何在Linux系统中设置一个自动的MySQL备份工具,以便实现数据的自动备份,降低因系统故障或人为错误导致的数据丢失风险。 首先,我们需要了解备份MySQL数据库的基本原理。MySQL提供了多种备份...

    ubuntu mysql5.6 客户端安装包及说明

    压缩包内的文件名“mysqlclient5.6ubuntu”可能表示的是一个包含了所有必需的MySQL 5.6客户端二进制文件和库的集合,这些文件通常包括mysql命令行客户端、mysql_config配置脚本以及其他必要的工具,如mysqladmin和...

    Mysql数据库定时备份(linux版)v1.0.docx

    在这个脚本中,你可以编写MySQL备份的命令,比如使用`mysqldump`工具来创建数据库的SQL文件: ```bash #!/bin/bash # MySQL服务器配置 MYSQL_USER="your_username" MYSQL_PASSWORD="your_password" MYSQL_HOST=...

    ubuntu离线安装mysql

    确保在生产环境中对数据库的安全性和稳定性进行充分考虑,定期备份,并遵循最佳实践来管理和维护 MySQL 服务。 离线安装虽然复杂,但对于无法联网的服务器,这是唯一的选择。熟悉这个过程对于 IT 专业人员来说是...

    ubuntu系统安装mysql

    此命令仅移除`mysql-server`软件包而不保留配置文件。 ##### 1.3 自动移除不再需要的依赖包 ```bash sudo apt-get autoremove mysql-server ``` 这条命令将帮助清理系统中那些因移除MySQL服务器而不再需要的依赖包...

    linux-实现mysql增量备份和还原

    在Linux环境中,MySQL数据库的增量备份与还原是数据库管理中的重要环节,这有助于保护数据安全,减少存储空间的占用,并在需要时快速恢复到特定时间点的状态。Xtrabackup是一款开源的、用于MySQL和Percona Server的...

    ubuntu16.04安装mysql5.7脚本

    在Ubuntu 16.04上安装MySQL 5.7是...在实际环境中,你可能还需要考虑备份策略、日志配置、性能优化和其他安全措施,这些都是管理和维护MySQL服务器的重要方面。不过,上述步骤已经为你提供了一个基础的安装和配置流程。

    Ubuntu Server下MySql数据库备份脚本代码

    在Ubuntu Server环境中,确保MySQL数据库的安全至关重要,定期备份是防止数据丢失的重要措施。本文将详细介绍一个用于MySQL数据库备份的脚本代码,以及如何在系统中设置自动执行此备份任务。 首先,我们需要创建一...

    MySQL在Ubuntu系统上的安装配置

    在开始安装MySQL之前,确保Ubuntu系统的软件包列表是最新的。这一步非常重要,因为它可以帮助我们获取最新的软件包,确保安装过程中不会出现问题。 ##### 更新软件包列表 ```bash # 更新软件包列表 sudo apt-get ...

    mysql_8.0_物理备份工具

    1、mysql 8.0数据库物理备份工具,物理备份mysql 8,适配mysql 8大版本 2、包括适配各个系统的版本ubuntu、debian、suse、centos、redhat、oracle linux、银河麒麟v10、欧拉系统、windows. 3、有独立预编译绿色版本...

Global site tag (gtag.js) - Google Analytics