mysql 备份 ftp_MySQL自动备份并上传到远程FTP服务器脚本

17 12 2012

MySQL自动备份并上传到远程FTP服务器脚本

Yinchiang | 0

在网上找了很多MySQL备份脚本,但是没有几个令我钟意的,要么出错要么我自己也看不懂。庆幸自己是个码农,shell脚本学习了半个下午,终于写出了一个备份mysql数据库并上传到远程FTP的脚本了,刚学习,不知道写的怎么样,但是功能已经实现了。嘿嘿,来分享给大家。

#!/bin/sh

#backup for mysql to remote ftp

#author jxcent@gmail.com 2012-12-17 17:30:23

#数据库配置信息

dbname=test

dbuser=root

dbpwd=123456

#ftp配置

ftphost=192.168.1.188

ftpport=21

ftpuser=demo

ftppwd=demo123

#这个就是FTP根目录下的data文件夹,表示就保存在这里

ftpdir=/data

#自定义生成文件名 test_2012-12-17.tar.gz

filename=${dbname}_`date "+%Y-%m-%d"`;

#备份路径,你需要改变它哦~

BackupPath=/usr/home/dbfile

DBbinPath=/usr/local/bin/mysqldump

#执行mysqldump 生成sql文件

${DBbinPath} --opt --extended-insert=false -u${dbuser} -p${dbpwd} ${dbname} > ${BackupPath}"/"${filename}".sql" ;

cd ${BackupPath}

rm -rf *.gz

tar czf ${filename}.tar.gz ${filename}.sql

rm -rf ${filename}.sql

#开始连接远程ftp

echo 'open ftp'

ftp -i -in <

open ${ftphost} ${ftpport}

user ${ftpuser} ${ftppwd}

cd ${ftpdir}

mput ${filename}.tar.gz

echo 'backup is complete!'

exit

fi

望拍砖~

写好了有些东东童鞋要自己修改下哦,比如我保存在/usr/home/dbfile/backup.sh,当然你要注意给这个脚本可执行权限,不然它可跑不起来哦

chmod 755 /usr/home/dbfile/backup.sh

设置计划任务让其每天凌晨0点自动备份数据

vi /etc/crontab

在最后添加如下一行

0 0 * * * root /usr/home/dbfile/backup.sh

就搞定了,你就每天安心睡觉吧~嘿嘿

ps:centos在6.0以后的版本默认ftp命令使用不了,你需要执行下面这条命令更新

rpm -Uvh http://mirror.centos.org/centos/6.3/os/x86_64/Packages/ftp-0.17-51.1.el6.x86_64.rpm

#如果出现404你也可以运行这条命令安装ftp

yum install ftp

在centos下面会出现警告,但是没有问题,请放心使用就行!嘻嘻~

53f0a8687044b83e08468066577c1d35.gif

后面有那么几天也研究了windows下面的mysql数据库备份啦,直接贴上代码了,是一个批处理,你自己把它加入到操作系统的计划任务中就OK了。

#数据库配置

@set dbname=demo

@set dbuser=root

@set dbpass=123456

@set tmp_db_file="F:\back\%dbname%\%date:~0,4%%date:~5,2%%date:~8,2%.sql"

@set db_back_file="F:\back\%dbname%\%date:~0,4%%date:~5,2%%date:~8,2%.7z"

#ftp配置

@set ftp_server=192.168.1.110

@set ftp_user=demo

@set ftp_password=pojo

@set ftp_dir=temp #目录相对于/来划分 /temp/demo 就填写 temp/demo

#当你在使用mysqldump的时候请主要设置成你的环境变量,否则你就写全它吧

mysqldump -u %dbuser% -p %dbpass% %dbname% >%tmp_db_file%

#我用7z压缩的你也可以使用winrar进行打包压缩,看个人喜好了

c:\progra~1\7-Zip\7z a %db_back_file% %tmp_db_file%

del %tmp_db_file% /S /Q

@echo off

echo open %ftp_server%>ftp.txt

echo %ftp_user%>>ftp.txt

echo %ftp_password%>>ftp.txt

#更改你的FTP

echo cd %ftp_dir%>>ftp.txt

#如果你上传的ftp文件出现MD5不对请使用二进制上传

echo binary>>ftp.txt

echo put %db_back_file%>>ftp.txt

echo bye>>ftp.txt

ftp -s:ftp.txt

echo 上传成功!

发表评论电子邮件地址不会被公开。 必填项已用*标注

评论

姓名 *

电子邮件 *

站点

评论审核已启用。您的评论可能需要一段时间后才能被显示。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值