linux定时备份mysql数据到windows

1.在linux服务器上安装ftp服务端软件
 
Shell代码  
wget http://mirror.centos.org/centos-6/6.3/os/x86_64/Packages/vsftpd-2.2.2-11.el6.x86_64.rpm  
rpm -ivh vsftpd-2.2.2-11.el6.x86_64.rpm  
2.安装成功后修改/etc/vsftpd/vsftpd.conf,这里主要设置拒绝匿名登陆和锁定用户到自家目录
 
Xml代码  
#拒绝匿名登陆  
anonymous_enable=NO  
#锁定用户到自家目录  
chroot_local_user=YES  
ps:更多ftp设置参考http://zserver.blog.51cto.com/370152/157203/  
3.service vsftpd restart 重启ftp服务.
 
4.设置iptables,这里ftp采用的是Port模式,只须要打开监听端口21和数据端口20
 
Xml代码  
编辑/etc/sysconfig/iptables,添加以下规则  
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT  
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT  
5.重启刷新防火墙规则,service iptables restart
 
6.在linux系统为ftp添加一个用户,并将用户家目录设置为ftp默认目录 经过-d参数设置,最后设置密码。
 
Shell代码 
useradd  ftp1 -d /var/ftp/pub -s /sbin/nologin  
passwd ftp1  
    到这一步,linux段的ftp服务就算安装完成了。
 
7.编写shell脚本/home/scripts/dumpdata.sh备份mysql数据到ftp目录/var/ftp/pubmysql

Shell代码 
mysqldump --no-defaults --default-character-set=utf8 --single-transaction -uroot -p123456 dbname> /var/ftp/pub/dbname`date +%y%m%d`.sql  
 cd /var/ftp/pub  
 tar -jcf richart`date +%y%m%d`.tar.bz2 ./richart`date +%y%m%d`.sql  
 if [ $? -eq 0 ]  
 then  
        rm -rf /var/ftp/pub/richart`date +%y%m%d`.sql#打包压缩成功后,删除原文件,节约空间  
 fi  
find /var/ftp/pub/ -mtime +90 -name *.tar.bz2 -exec rm -f {} \;#删除90天前的备份文件  
ps:编写完了记得给脚本加执行权限  linux

8.将脚本加入到crond计划,crontab -e,加入下面代码
Shell代码 
02 3 * * * /home/scripts/dumpdata.sh  
    到这里服务器段的工做就算完成了,接下来就是要在windows(xp)端获取数据
 
9.编写批处理文件wget.bat,经过ftp获取数据,并删除90天前的备份文件
Bat代码  
G:  
cd G:/sqldata  
set fileName=dbname%date:~2,2%%date:~5,2%%date:~8,2%.tar.bz2  
(echo open 192.168.1.100  
echo ftp1  
echo ftp1pass  
echo prompt  
echo binary  
echo get %fileName%  
echo bye) > ftp_getData.src  
ftp -s:ftp_getData.src  
forfiles /p "G:\sqldata"  /m *.tar.bz2 /d -90 /c "cmd /c del @path"  
echo %date%sql数据备份成功!时间:%time% >> ftp.log  
ps:有的xp系统中最初可能没有forfiles这个命令,经过网上下载后放在C:\WINDOWS\system32里面  sql

10.最后一步,将wget.bat批处理命令加入到windows计划任务
Dos代码  
运行,cmd,打开dos窗口  
net stop schedule  
net start schedule  
at 03:46 /every:Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday G:\sqldata\wget.bat  
at 命令查看计划任务列表  
ps:有的windows系统task scheduler服务是禁止的,经过控制面板-->管理工具-->服务,找到该服务,启用就能够了。  shell

相关文章
相关标签/搜索