检查sqlserver服务器的各个分区的剩余空间

来源:互联网 发布:手机淘宝怎么切换卖家 编辑:程序博客网 时间:2024/06/06 09:50

手头SQL-Server服务器多的时候,
查看硬盘容量每次都得进入各个服务器敲入相同的命令。
花了点时间,写了个简单的脚本,先凑合着用。

大体的思路是,
1)先做serverinfo.txt,用来保存所有需要处理的服务器的信息。
2)另写diskcheck.bat文件,
    使用bcp的命令,远程访问各个服务器,
    得到的结果输出到一个server_当前时间串的文件,每次生成新文件。
serverinfo内容的格式如下(各个字段用分号分隔)
type;serverIP;serverName;user;password;driver
其中type是wmic或者其他。
注意,serverinfo.txt的前3行不要写入实际SQLServer服务器信息

例)

type;serverIP;serverName;user;password;drivertype:wmic/dir↓↓↓↓↓↓↓↓↓写各个SQLServer信息↓↓↓↓↓↓↓wmic;172.18.10.101;SQLServer-Live;sa;sapasword;c:\dir;192.168.1.200;SQLServer_Old;sa;sapassword;c:\dir;192.168.1.200;SQLServer_Old;sa;sapassword;d:\dir;192.168.1.200;SQLServer_Old;sa;sapassword;e:\dir;192.168.1.200;SQLServer_Old;sa;sapassword;f:\

分 wmic和dir的原因在于windows服务器上可能没有安装wmic命令
已经安装了wmic命令的服务器,如SQLServer-Live
一条语句就可以抽出所有硬盘的容量和剩余空间
没有安装wmic命令的服务器,如SQLServer_Old,
就只能一个盘一个盘的指定了。
(调查了一下,在dos下没有可以简单的得到所有盘符的命令。)

以下是表示服务器各个硬盘空间的处理

REM 打开防止延迟选项SETLOCAL ENABLEDELAYEDEXPANSIONset datestring=%date:/=%_%time::=%REM echo %datestring%echo disk    freespace    disksize >> "server_%datestring%.txt"REM type;serverIP;serverName;user;password;driverfor /f "skip=3 tokens=1-6 delims=;" %%a in (serverinfo.txt) do (    set type=%%a    set serverIP=%%b    set serverName=%%c    set user=%%d    set password=%%e    set driver=%%f    echo !serverIP!    !serverName!    %datestring% >> "server_%datestring%.txt"        if !type! equ wmic  (        bcp  "set fmtonly off exec master.dbo.xp_cmdshell 'wmic logicaldisk get caption, freespace,size '" queryout abc.txt -c -S !serverIP! -U !user! -P !password!        type abc.txt | find ":" >> "server_%datestring%.txt"    ) else (        echo !driver!  >> "server_%datestring%.txt"            bcp  "set fmtonly off exec master.dbo.xp_cmdshell 'dir !driver!'" queryout abc.txt -c -S !serverIP! -U !user! -P !password!REM find "free bytes"  需要根据不同语言的windows服务器来写,比如中文,日文等等        type abc.txt | find "free bytes" >> "server_%datestring%.txt"        )     )del abc.txt

执行diskcheck.bat就可以在当前路径下得到想要的结果了

原创粉丝点击