自动备份(同步更新)linux环境上的tomcat服务器到windows系统

来源:互联网 发布:js改变css属性display 编辑:程序博客网 时间:2024/05/02 00:15

刚开始拿到这个任务时,有点发懵,真想跟老大说:“这个我做不来的”。但我们程序员都是骄傲的,哪能动不动就说自己不行,对吧。只能硬着头皮,抱着试试看的态度了。

 

首先,我先手动做了一下备份工作。主要两部分:

一,将整个tomcat目录打成tar.gz包,然后使用FileZilla下载到windows。

二,mysql数据的备份,使用Mysql  workbench工具的数据导出导入功能。

 

做到这里,貌似我已经完成了整个备份工作,我跟自己说,好像也不难嘛。接着就是用脚本来完成上面的步骤了。

本来想着通过挂载mount,实现linux上备份后直接放到windows上的,可后来发现,linux在外网而windows在内网,没法搞,哎!

换一种思路,任务分解:

一,写shell脚本,定时导出mysql数据库和备份tomcat目录的

二,windows上写bat批处理脚本,实现文件的下载,导入mysql数据、文件替换、tomcat启停

 

理想是丰满的,现实是骨干的。

此时面临各种问题,简单列举一下:

1.如何定时执行脚本  2.如何用命令备份mysql   3.tomcat目录是比较大的,里面包含了图片视频,肯定不可能每次都全量备份,决定备份最近一周的文件

4.bat批处理完全没写过  5.命令下载文件,使用ftp,后来又遇到此次linux只能ssh连接.....

 

问题多我们不怕,怕的是无从下手。

不断去百度、谷歌,查找各种博客,吸收前辈们总结的经验。

 

下面简单说下此次最后的解决问题的方法,总结下,以便后续查阅

1.如何定时执行脚本?

写好需要定时执行的备份脚本back.sh

 修改/etc/crontab
 添加
 30 18 * * 1,3,5 root /home/XXX/back.sh
 表示每周1、3、5的18点30分执行备份

 重新启动crond
 # /etc/rc.d/init.d/crond restart

 

2.如何用命令备份mysql ?

/usr/bin/mysqldump -u$db_user -p$db_pass $db_name > back.sql

备份成sql文件,导入时执行此sql文件,即可

 

3.备份最近一周修改的文件

使用find命令实现查找,--parent连目录结构一起拷贝

find . -mtime -7 -exec cp --parent {} $temp \;

 

4.windows如何命令ssh连接linux

使用putty和psftp工具,实现远程调用shell脚本、文件下载

echo cd backup > sftp.txt
echo get %day_name%.zip >> sftp.txt
echo bye >> sftp.txt

psftp 192.168.1.180 -l %user% -pw %pwd% -P %port% < sftp.txt

 

5.windows如何用命令解压缩

只研究了解压缩zip格式的,tar.gz未研究呵呵,能实现就可以了(小富即安)

下载安装winrar工具,暂时未找到其他好的办法,若有更好的方法,麻烦告知。

解压到当前目录:

winrar x %day_name%.zip %day_name%\

 

6.最后,添加windows定时计划,百度吧

我是参考的如下blog

http://blog.csdn.net/liqfyiyi/article/details/8812971

 

0 0