#!/bin/bash
#Mysql 自动备份 压缩并上传到 指定ftp
#设想每天凌晨3点备份mysql
#编辑crontab配置文件
# * * * backupmysql.sh
#压缩并以“服务器名+时间 ”命名打包文件
#数据量小的情况下以mail的方式发送到指定邮箱(需要建立sendmail服务)
#数据量大的情况下以ftp的方式传送到指定的ftp服务器(远程ftp需开启)
#linzhanghui.blog.chinaunix.net
#程序部分以伪代码方式存在。
# #.设置mysql登陆参数
dbuser=root
dbpassword=
dbserver=localhost
dbname=cacti
dbopt=--opt
backupdir=/tmp/dbbackup/ #.设置ftp具体参数
ftpserver=192.168.137.3
ftpuser=userlin
ftppassword=passwdlin #.设置文件备份文件名,备份文件保存天数
fileprefix=lzhserver
dumpfilename=$backupdir$fileprefix`date -d now +%Y%m%d`.sql
newfile=$fileprefix-`date -d now +%Y%m%d`.tar.gz
keepdays= #.写入操作到日志文件(事先需建立)
logfile=/var/log/mysqlbackup.log
logtmp=/var/log/mybackup.tmp #=====如果没有备份文件夹则建立之======
if [ ! -d "$backupdir" ];
then
echo "无此文件夹,建立中..."
mkdir -p $backupdir
fi
#=====事先删除7天之前的备份数据库文件=====
echo "开始执行备份...">>$logfile
echo "删除保留天数之前的备份文件...">>$logfile
find $backupdir -name $fileprefix* -mtime +$keepdays -fls $logtmp -exec rm {};
echo "删除的备份文件:">>$logfile
cat $logtmp >>$logfile
echo "删除旧备份文件成功!" >>$logfile
#=====备份+打包======
if [ -f $backupdir$newfile ]
then
echo "$newfile 备份文件存在, 备份结束 ...">>$logfile
else
if [ -z $dbpasswd ]
then
mysqldump -u$dbuser -h$dbserver $dbopt $dbname >$dumpfilename
else
mysqldump -u$dbuser -p$dbpasswd -h$dbserver $dbopt $dbname >$dumpfilename
fi
tar czvf $backupdir$newfile $dumpfilename
echo "$backupdir$newfile 备份成功!+“$压缩包容量”">>$logfile
fi
#======以ftp方式发送=====
ftp -i -n <<end_ftp
open $ftpserver
user $ftpuser $ftppassword
lcd $backupdir
hash
prompt
put $newfile
close
bye
end_ftp

如果直接使用文件夹复制的方式备份mysql数据库
 
1、先查一下DATADIR
mysql> show variables like '%datadir%';
2、关闲数据库
# mysqladmin shutdown
3、复制数据库文件
cp -Rf  $datadir /xxx
$datadir:就是你的数据目录

另外测试过把.sql压缩成.sql.tar.gz
数据库文件可以少很多很多空间

mysql自动备份维护shell脚本 (copy)的更多相关文章

  1. mysql 自动备份和nginx自动安装脚本

    一.自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #wugk #Define PATH定义变量 ...

  2. MySql自动备份shell

    MySql黑屏备份是每个运维工程师必备的技能,以下是MySQL自动备份脚本: #/bin/bash#This is mysql backup shell on 2019/4/28 BAKUP_DIR= ...

  3. Mysql 自动备份脚本

    转自: Mysql 自动备份脚本2 - - ITeye技术网站http://kangh.iteye.com/blog/2309091 备份方案: 备份主机:192.168.10.11 数据库服务器:1 ...

  4. 实现对MySQL数据库进行分库/分表备份(shell脚本)

    工作中,往往数据库备份是件非常重要的事情,毕竟数据就是金钱,就是生命!废话不多,下面介绍一下:如何实现对MySQL数据库进行分库备份(shell脚本) Mysq数据库dump备份/还原语法: mysq ...

  5. centos7 mysql自动备份

    MySQL自动备份shell脚本   在数据库的日常维护工作中,除了保证业务的正常运行以外,就是要对数据库进行备份,以免造成数据库的丢失,从而给企业带来重大经济损失.通常备份可以按照备份时数据库状态分 ...

  6. 关于mysql自动备份的小方法

    目前流行几种备份方式:逻辑备份.物理备份.双机热备份.备份脚本的编写等,本文分别从这些方面总结了MySQL自动备份策略的经验和技巧,一起来看看. 目前流行几种备份方式: 一.逻辑备份:使用mysql自 ...

  7. centos下yum安装crontab+mysql自动备份

    参考博文: centos下yum安装crontab yum install vixie-cron crontabs      //安装 chkconfig crond on               ...

  8. MySQL 使用XtraBackup的shell脚本介绍

    mysql_backup.sh是关于MySQL的一个使用XtraBackup做备份的shell脚本,实现了简单的完整备份和增量备份.以及邮件发送备份信息等功能.功能目前还比较简单,后续将继续完善和增加 ...

  9. Windows下mysql自动备份的最佳方案

    网上有很多关于window下Mysql自动备份的方法,其实不乏一些不好的地方和问题,现总结出一个最好的方法供大家参考: 新建一个记事本,然后重命名为: mysql_backup.bat 然后单击右键选 ...

随机推荐

  1. 通过参数传递,判断数字、字符串、list、tuple、词典等数据类型是否为可变数据对象

    list: >>> a = [1,2,3,4]>>> a[0]1>>> a[1]2>>> a[0] = 10>>&g ...

  2. 项目总结笔记系列 Social Hub KT Session1

    项目后台访问地址: URL:http://socialhub-itg-app.itcs.hp.com/data_feed_service/main.jsp 或者URL:http://c0048925. ...

  3. Hibernate原生SQL查询

    最近在做一个较为复杂的查询,hibernate基本的查询不能满足,只好使用其提供的原生sql查询.参考网上的一些资料,做一些总结. 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行 ...

  4. js中typeof的使用方法

    typeof在js中是一个一元操作符,可以判断操作数的类型,其返回值为字符串,有number.string.object.boolean.function.undefined.使用方式可以是typeo ...

  5. ubuntu 下安装memcache 以及php扩展

    1,下载软件   下载   memcached   http://memcached.org/downloads   下载libevent http://libevent.org/     2,安装  ...

  6. cnodejs社区论坛1--登陆

  7. vue安装

     条件:已安装 node&npm 1.安装 cnpm :                      $ npm install -g cnpm --registry=https://regis ...

  8. JavaScript学习笔记-数组

    数组 数组中的每个元素的位置是索引,索引是基于32位的由0开始的数值,最大索引为(2的32次方-2),最大长度为(2的32次方-3) 数组是无类型的:元素可为任意类型:动态的:可根据需要自动增长.缩减 ...

  9. 如何将List<string>转化为string

    Convert List, string. A List can be converted to a string. This is possible with the ToArray method ...

  10. JavaScript强化教程——jQuery AJAX 实例

    什么是 AJAX?AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML).简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据 ...