mysql定时远程备份_Mysql定时本地备份及远程备份

一 Myql备份到本地

#!/bin/bash

#标记程序开始时间

date_start=`date|awk -F"[ :]" '{print $4*3600 + $5*60 +$6}'`

#进入要备份的目录

cd /usr/backup

#数据库备份命令,包括存储过程,使用utf8字符编码,以"global_日期"命名

/usr/local/mysql/bin/mysqldump --opt -R -uroot -proot --default-character-set=utf8 global>global_$(date +%Y%m%d).sql

#/将数据库备份文件进行压缩

tar zcvf global_$(date +%Y%m%d).tar.gz global_$(date +%Y%m%d).sql

#备份完后将原文件删除

rm -rf global_$(date +%Y%m%d).sql

#删除备份时间超过100天的备份文件

rm -rf global_$(date -d -100day +%Y%m%d ).tar.gz

#标记程序结束时间

date_end=`date|awk -F"[ :]" '{print $4*3600 + $5*60 +$6}'`

#计算程序执行时间

time=`expr "$date_end" - "$date_start"`

#生成日志文件

echo 'backup database global in' $(date +%Y-%m-%d%H:%M:%S) >> /usr/backup/dbbackup.log

#结束

echo 'Database backup time' $time >> /usr/backup/dbbackup.log

二 把备份用ftp传送到目的计算机

1 新建本地用户或虚拟用户作为ftp传输帐号 制定存储目录

1.1使用本地用户backuper组backuper密码backup

目录在/usr/sqlbackup

#sudo groupadd backuper

#sudo useradd -g backuper backuper -d /usr/sqlbackup -m

#sudo passwd backuper

1.2 使用虚拟用户

增加新用户在/home/virtual中添加vi /home/virtual

4189e2991ce39926cff0eb12c44d8fb0.png

添加后使用以下命令更新db_load -T -t hash -f /home/virtual /etc/virtual.db

添加用户配置文件cd /etc/vsftpd_user_conf/vi [用户名]

添加以下内容

virtual_use_local_privs=YES

write_enable=YES

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

local_root=/home/virtualuser/

保存寻出

进入目录:cd /home/virtualuser

创建目录:mkdir 

chmod 777 

重启 vsftp:service vsftpd restart

如新用户无法登陆,执行一次

chown -R virtualuser:virtualuser /home/virtualuser

上述是在centos下添加虚拟用户的方法

本次实例 用户名为backuper密码为backup

目录/home/virtualuser/backuper

2安装配置vsftpd

#sudo apt-get install vsftpd

配置文件/etc/vsftpd.conf

不允许匿名

允许上传权限

3 FTP传输数据库备份脚本sql_ftp.sh放在/usr/backup处

############################################################################

#ftp -i -v -n 121.14.17.192 <

#user backuper backup

#binary

#putglobal_$(date +%Y%m%d).tar.gz

#bye

#END_FTP

###############################################################################

三 最终脚本:(以备份global数据库为例globalbackup.sh)

#!/bin/bash

#标记程序开始时间

date_start=`date|awk -F"[ :]" '{print $4*3600 + $5*60 +$6}'`

#进入要备份的目录

cd /usr/backup

#数据库备份命令,包括存储过程,使用utf8字符编码,以"global_日期"命名

/usr/local/mysql/bin/mysqldump --opt -R -uroot -proot --default-character-set=utf8 global>global_$(date +%Y%m%d).sql

#将数据库备份文件进行压缩

tar zcvf global_$(date +%Y%m%d).tar.gz global_$(date +%Y%m%d).sql

#把数据库备份文件用ftp上传到相应地址

ftp -i -v -n 122.14.14.192 <

user backuper backup

binary

put global_$(date +%Y%m%d).tar.gz

bye

END_FTP

#备份完后将原文件删除

rm -rf global_$(date +%Y%m%d).sql

#删除备份时间超过100天的备份文件

rm -rf global_$(date -d -100day +%Y%m%d ).tar.gz

#标记程序结束时间

date_end=`date|awk -F"[ :]" '{print $4*3600 + $5*60 +$6}'`

#计算程序执行时间

time=`expr "$date_end" - "$date_start"`

#生成日志文件

echo 'backup database global in' $(date +%Y-%m-%d%H:%M:%S) >> /usr/backup/dbbackup.log

#结束

echo 'Database backup time' $time >> /usr/backup/globalbackup.log

四 脚本使用方法:

1 新建目录/usr/backup有读写权限 把脚本放进该目录 脚本可执行

2 把脚本名修改为数据库名 如数据库名为global则脚本名为globalbackup.sh

把脚本里面的global数据库名 改为相应的数据库名 即替换所有的global

把数据库用户密码修改为相应的用户密码

把ftp上传地址改为120.132.123.125

本地备份保留时间默认为100天 按需修改

执行脚本 sudo sh globalbackup.sh

3 执行成功后  增加cron计划任务 定时执行脚本

#crontab -e

分 时 日 月 周

00 02 * * *sudo sh/usr/backup/dbbackup.sh

各个vps设置的时间注意要分开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值