中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎样让局域网的电脑按指定顺序进行备份
作者:
标题: 怎样让局域网的电脑按指定顺序进行备份 上一主题 | 下一主题
wxs81514
初级用户





积分 118
发帖 52
注册 2008-5-7
状态 离线
『楼 主』:  怎样让局域网的电脑按指定顺序进行备份

我最近在做一个自动备份批处理程序,思路是这样的:
      在服务器上在为每台工作站建立了一个与电脑名称相同的文件夹,作为备份用.然后工作站每天在一个指定的时间开始进行备份,自动把当天更新过的文件备份到服务器上.我已经可以让它每天开机自动运行批处理了.
      现在就有一个问题,很多电脑在同一时间进行备份,会造成服务器无法承受,得想个办法让它按照我安排的顺序去备份.比如:RC101\RC102\......RC113\RS001\RS002.....RS018\RG001......,当RC101备份完成后,RC102开始,以此类推直至所有电脑备份完成,如果中间任何一台电脑因关机或其它原因不能执行操作的,则跳过.
    现在最主要就是这个问题了,其它的问题都差不多解决了.请各位高手指点一下,谢谢!

2008-5-15 09:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 2 楼』:  恐怕时间的掌控上是个大问题:

&&提供下思路:
   在每台工作站备份前先检测服务器上是否有名为备份中的临时文件,如有则等待(至于要跳过则在前面设定一等待时间,超过时间删除临时文件再进行备份),如无临时文件则先在服务器上建立名为备份中的临时文件,备份完成则删除临时文件。(要做到按顺序就更难了)

[ Last edited by zw19750516 on 2008-5-15 at 01:17 PM ]



批处理之家新域名:www.bathome.net
2008-5-15 13:08
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
wxs81514
初级用户





积分 118
发帖 52
注册 2008-5-7
状态 离线
『第 3 楼』:  

谢谢!这个思路很有参考价值,其实我也不一定严格按我要求的顺序去执行,只要联机正常的电脑正常
备份了就可以.
以上我仔细想了一下,可能会有一点点不足:比如我设置等待时间为2分钟,而网络中有10台电脑关机,
则要浪费20分钟的等待时间。
还有,怎样去判断临时文件存在了多长时间,如果每台电脑的时间不同步,那不是判断不准。

2008-5-15 15:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jasonyht
新手上路





积分 10
发帖 4
注册 2008-5-15
状态 离线
『第 4 楼』:  

楼主现在用的代码是什么样的啊,可不可以发出来参考下啊

2008-5-15 15:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wxs81514
初级用户





积分 118
发帖 52
注册 2008-5-7
状态 离线
『第 5 楼』:  

我现在是用时间表控制的,有一个大缺点,当有新电脑增加时要人为去改代码,比较麻烦.

echo off
:start
ping -n 60 127.0.0.1>nul
   @rem 延时1分钟,以免程序反复运行太快占太多资源
goto %computername%
net send zhixinserver can not fond the computername "%computername%"
goto end
   @rem 如果备份程序里没有写入与这台计算机同名的备份程序段,则反馈信息到zhixinserver

:RC101
if %time% gtr 08:30:00.00 goto bak   
   @rem 判断时间是否大于某个数值,如果要判断时间是否小于某个数值,把"grt"改为"lss"
goto start
   @rem 如果未到指定的备份时间,不开始备份.
   @rem 以下每台电脑的备份程序都一样,只是开始时间不同,以免服务器忙不过来.

:RC103
if %time% gtr 08:30:00.00 goto bak   
goto start

:RC102
if %time% gtr 08:33:00.00 goto bak   
goto start

  @rem 后面每增加一台电脑就增加以上一段代码

:re101
:re102
goto end
   @rem 无需备份的电脑请列入上表内,直接跳过

:bak
echo %date% %time% %computername% start backup>>\\zhixinserver\baklog\bak.txt
   @rem 记录备份开始
xcopy \\erpserver\ERPFLASH\wallpaper\*.exe %windir% /d/y
   @rem 到服务器上拷贝所需的外部命令

:bak1  
   @rem bak1备份除E盘外最近更新过的资料(最长不超过一个月,筛选doc、xls、ppt、dwg、cdr、pdf文件备份.)
md \\zhixinserver\%computername%\Other_new_files
md \\zhixinserver\%computername%\Other_new_files\Disk_D
md \\zhixinserver\%computername%\Other_new_files\Disk_F
md \\zhixinserver\%computername%\Other_new_files\desktop
md \\zhixinserver\%computername%\Other_new_files\My_Documents
robocopy D:\ \\zhixinserver\%computername%\Other_new_files\Disk_D *.doc *.xls *.ppt *.dwg *.cdr *.pdf /s /xa:h /maxage:30 /PURGE /S
robocopy F:\ \\zhixinserver\%computername%\Other_new_files\Disk_F *.doc *.xls *.ppt *.dwg *.cdr *.pdf /s /xa:h /maxage:30 /PURGE /S
cd %USERPROFILE%\桌面 && robocopy . \\zhixinserver\%computername%\Other_new_files\desktop *.doc *.xls *.ppt *.dwg *.cdr *.pdf /s /xa:h /maxage:30 /PURGE /S
cd %USERPROFILE%\My Documents && robocopy . \\zhixinserver\%computername%\Other_new_files\My_Documents *.doc *.xls *.ppt *.dwg *.cdr *.pdf /s /xa:h /maxage:30 /PURGE /S
    @rem 繁体系统不支持中文路径,这条意为如果进入不了这个路径,则不执行拷贝命令.

:bak2
   @rem bak2这段程序为E盘资料,每天镜像若干天的资料.
md \\zhixinserver\%computername%\Disk_E
robocopy E:\ \\zhixinserver\%computername%\Disk_E /xa:h /maxage:365 /PURGE /S /log:\\zhixinserver\%computername%\Disk_E\log.txt
echo %date% %time% %computername% backup OK!>>\\zhixinserver\baklog\bak.txt
   @rem 记录备份结束

:end

2008-5-15 15:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: