代码之家  ›  专栏  ›  技术社区  ›  Filburt kukabuka

哪种工具/技术:数据库和相关服务的系统管理

  •  3
  • Filburt kukabuka  · 技术社区  · 14 年前

    这方面的后续行动 system management question :

    因为我可能不会得到太多的反馈 serverfault 我在这里试试。

    我主要关心的是反映数据库、服务和任务/工作之间的依赖性,这些都是我必须管理的。

    除了考虑PowerShell之外,我甚至考虑使用msbuild,因为它允许对依赖项进行建模并重用配置目标。

    换言之: 我应该使用什么技术来开发一个灵活的解决方案,使我能够以正确的顺序停止D机上的服务A、B和C,并在取下数据库X时禁用F机上的任务E?

    …我想在取下数据库Y时重用停止服务B和C的部分。

    1 回复  |  直到 14 年前
        1
  •  5
  •   stej    14 年前

    如果您熟悉PowerShell并希望使用依赖项,请尝试 psake . 它是什么样子的:

    psake script.ps1:-------
    properties {
     $dbServer = 'sqlexpress'
     ...
    }
    task default -depend StopServer1, StopServer2
    
    task StopS1 -depend MakeS1Backup, StopSqlServer1 {
     ...
    }
    task MakeS1Backup {
     ... make backup
    }
    task StopSqlServer1 {
     stop-service ...
    }
    # and anything similar to StopServer2
    

    然后你可以这样称呼它(还有更多的选择):

    Invoke-Psake script.ps1 
    #or
    Invoke-Psake script.ps1 -task StopS1 #calls only StopS1 task and all other scripts it depends on
    #or
    Invoke-Psake script.ps1 -task MakeS1Backup #only backups S1, it doesn't depend on anything else
    

    它的作用是——停止服务器1(任务stops1),然后处理stops1所依赖的所有任务。因此,在停止s1之前,先备份s1,然后停止SQL Server 1,依此类推。

    我喜欢它比msbuild配置要好得多,它非常冗长和丑陋(尽管非常强大)。