我有两台运行 Windows 2008 R2 的相同服务器。我使用 DFS 复制来保持两台服务器之间的一些共享同步。每台服务器都是一个域控制器,并且每台服务器都可以在另一台服务器不可用时运行,包括 DHCP、DNS 和我们依赖的许多其他东西。
我们还有一个远程工作站,它创建一系列输出文件,并使用 DFS 命名空间将它们放在共享位置。它主要用于备份和报告。
我有一个批处理作业,可以安排每晚运行,检查这些文件,对它们进行一些操作,然后删除超过 30 天的备份文件(如果未处理),这是最后一项任务。这是一个单独的脚本。
我希望此任务仅在其中一台服务器上运行一次,但如果“首选”服务器不可用,则在另一台服务器上运行。此功能可行吗?两台或更多台 WIN2K8 服务器可以处理这种情况吗?
我可以每晚在两台服务器上运行该作业,因为它是可重入安全的,但如果我这样做,可能会导致 DFS 复制问题;所讨论的共享处于完全网格配置中。
如果不可能的话,有什么巧妙的技巧可以使其工作或有任何第三方工具吗?
一个想法是简单地从创建数据文件并将其复制到服务器的工作站运行该作业。这样做的唯一问题是它是用户的工作站,他们有时会在晚上忘记并关闭机器,从而导致无法处理每日报告。
答案1
是的。
创建作业以引用相关 DFS 命名空间而不是特定服务器。它将从运行它的机器上的活动 DFS 目标服务器中删除(如果您在其中一台服务器上运行它,显然该服务器应该以自身为目标),并且删除将通过 DFS 复制到另一台服务器。
C:\somefolder\somefile.foo
因此,您无需删除,而是删除\\dfsnamespaceforsomefolder\somefile.foo
当然,如果您在其中一台 DFS 服务器上运行此脚本,而该服务器不可用,则由于运行该任务的计算机不可用,该任务可能无法在另一台 DFS 服务器上成功启动。一个巧妙的解决方法是让其中一台服务器上的脚本在执行之前检查另一台服务器是否可用,并将此任务设置为在第一个服务器之后运行。如果另一台服务器可用,break
如果不可用,则运行脚本。