用STSADM工具全自动备份sharepoint站点

************************************************************************

论坛上一直有网友关心如何给站点做一个自动备份,每天自动定时备份,自动将备份文件通过局域网传输到另一台机器上,并且备份文件保存一周。

近期刚结束了一个项目,正好有时间,就把自动备份给实现了,下面是实现的思路分析和方法:

首先分析一下需求:

1.自动备份,用windows自带的计划任务就可以;

2.备份后将备份文件传输到局域网的另一台机器上,用映射网络驱动器、copy命令行能实现;

3.备份文件保存一周,这个实现起来就比较难了,如何让dos自动删除掉一周前的文件呢?

想了好久也没有办法,不过后来发现,如果把备份当天是“星期几”这个信息作为备份文件名的一部分,就能实现!

在网络上找到了一篇文章,讲解的是怎么在dos命令行里面取当天是“星期几”的案例:
http://hi.baidu.com/jfioe/blog/item/acf053f44b6a196cdcc474c9.html

其中讲到:
“输出 %date%是一个参数 但是他后面带的这些就是取值范围,说说后面的数值 第一个0代表从头开始 后面的3代表共取3个字符
C:\>echo %date:~-3%
星期三
这里面的负数代表倒数,也就取最后3个字符


OK,既然思路和实现的方法都搞清晰了,那最后的实现也就不困难了!

大家看我的备份文件backup000.cmd吧:

----------------------------备份文件开始----------------------------

X:\STSADMbackup\stsadm.exe -o backup -url http://www.sharepoint.org.cn/ -filename X:\STSADMbackup\sharepoint%date:~-3%.data -overwrite

注释:其中“X:\STSADMbackup\“是备份工具:STSADM.EXE的绝对路径;
“sharepoint%date:~-3%.data”是备份文件名,其中的“%date:~-3%”为当前的日期;

net use Y: \\172.*.**.**\sharename$ "******" /user:administrator

注释:映射网络网络驱动器的dos命令行;


copy X:\stsadmbackup\*%date:~-3%.data.* Y:\stsadmbackup\ /Y

注释:将所有当天的备份文件上传到网络驱动器中,其中用*%date:~-3%.data.* 来区分之前和当天的备份文件,大体意思是复制目录中所有文件名包含*%date:~-3%.data.*的文件,到网络驱动器中。

----------------------------备份文件结束----------------------------

将中间的注释去掉,复制到TXT文件里面,保存为后缀是CMD格式的文件,就可以测试一下了!


这样三个简单的命令,就实现了自动备份、自动复制和备份文件保存一周的功能;

在计划任务设置里面就很简单了:

看图片就清楚了!!

【运行后的结果:】

【本机生成的备份文件:】

【网络上的备份文件,通过COPY所得:】

【任务计划高级设置:】

本文是笔者辛勤劳动的结晶,要转载请标明出处!!!谢谢您的配合。

参考资料:SharePoint爱好者

posted @ 2009-11-03 16:31  冷月孤星  阅读(640)  评论(0编辑  收藏  举报