达到的效果:备份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可以查找到。
分享到:
相关推荐
ubuntu安装mysql,以及mysql的主从备份, ubuntu版本: 17.04
服务器上没做数据库的自动备份,那你就等着删库跑路了,文章教你如何在ubuntu、centos服务器上自动备份mysql,按步骤复制粘贴即可!
ubuntu搭建mysql及备份策略文档,ubuntu下mysql双向同步
在ubuntu下安装mysql服务器 以及导入数据库的方法 还有设置双机热备份
mysql数据库备份与还原,里面有描述如何用语句还原和备份数据库
1、创建保存mysql备份文件的路径 /mysqldata #mkdir /mysqldata 2、创建/usr/sbin/bakmysql 文件 #nano /usr/sbin/bakmysql 输入: 代码如下: #!/bin/sh name=’date+%Y%m%d’ mysqldump –all-databases -uroot -p...
1、mysql 8.0数据库物理备份工具,物理备份mysql 8,适配mysql 8大版本 2、包括适配各个系统的版本ubuntu、debian、suse、centos、redhat、oracle linux、银河麒麟v10、欧拉系统、windows. 3、有独立预编译绿色版本...
Linux下使用图形化工具MySQL WorkBench远程...作为一个数据库管理者,你可以使用Workbench去配置MySQL服务、管理MySQL用户、进行数据库的备份与还原、监视数据库的健康状况,所有的都在对用户友好的图形化环境下处理。
《MYSQL备份与恢复》之 Innodb与 MyISAM引擎 一、系统环境 1.1 ubuntu 12.0.4 X86_64 1.2 percona-xtrabackup-2.0.3.tar.gz 1.3 xtrabackup简介 xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时...
ubuntu-12-04-deb 软件 安装包备份 ,ubuntu samba ssh mysql g++ ftp vim telnet /var/cache/apt/archives
为了mysql数据库的安全,我们需要定时备份mysql数据库,这里提供下脚本代码,需要的朋友可以参考下
前几天图书馆说服务器(Ubuntu14.04)有安全漏洞,不按时修复会关停。 看了一下漏洞清单,主要是ssh和mysql的版本问题。 把mysql升级了一下,升到了5.7,升级之前还备份了数据,不过升级后发现数据并不会丢失。 1 ...
mysql-connector-java_8.0.16-1ubuntu16.04_all.deb,上传以备份,方便下载
ubuntu docker 搭建 mongodb,开启授权访问 redis,mysql mssql 备份还原.rar
1、本地备份编写自动备份脚本:vim /var/lib/mysql/autobak内容如下: 代码如下:cd /data/home/mysqlbakrq=` date +%Y%m%d `/usr/local/mysql/bin/mysqldump sqldb –flush-logs -uroot -p123456 –opt > 777city_$...
MySQL实用教程(高等学校计算机教材) 郑阿奇 第1章 数据库的基本概念 第2章 数据库和表 第3章 表数据操作 第4章 数据库的查询和视图 第5章 索引与数据完整性约束 第6章 MySQL语言结构 第7章 过程式数据库对象 第8章 ...
两台ubuntu和Centos下分别安装两个mysql数据库。亲自测试Mysql主备。成功!希望对需要的人有帮助。
MySQL自动备份从MySQL中的所有数据库自动备份并将它们转移到另一台服务器您可以按照以下步骤从数据库中进行备份,并将其转移到该服务器外部的安全位置。 然后将其放入cronjob中以定期进行。 第一次登录到您的服务器...