我如何查询我的SQL服务器只获取数据库的大小?
我用过这个:
use "MY_DB"
exec sp_spaceused
Run Code Online (Sandbox Code Playgroud)
我懂了 :
database_name database_size unallocated space
My_DB 17899.13 MB 5309.39 MB
Run Code Online (Sandbox Code Playgroud)
它返回了我不需要的几个列,也许有一个从这个存储过程中选择database_size列的技巧?
我也试过这段代码:
SELECT DB_NAME(database_id) AS DatabaseName,
Name AS Logical_Name,
Physical_Name,
(size * 8) / 1024 SizeMB
FROM sys.master_files
WHERE DB_NAME(database_id) = 'MY_DB'
Run Code Online (Sandbox Code Playgroud)
它给了我这个结果:
DatabaseName Logical_Name Physical_Name SizeMB
MY_DB MY_DB D:\MSSQL\Data\MY_DB.mdf 10613
MY_DB MY_DB_log D:\MSSQL\Data\MY_DB.ldf 7286
Run Code Online (Sandbox Code Playgroud)
所以我写了这个:
SELECT SUM(SizeMB)
FROM (
SELECT DB_NAME(database_id) AS DatabaseName,
Name AS Logical_Name,
Physical_Name,
(size * 8) / 1024 SizeMB
FROM sys.master_files
WHERE DB_NAME(database_id) = 'MY_DB'
) AS TEMP …
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法来选择我的sql server上的所有数据库,它只包含表"dbo.mytable"
我怎样才能做到这一点 ?
我已经有了这两个sql查询:
Select name From sys.databases Where database_id > 5
Run Code Online (Sandbox Code Playgroud)
和
IF EXISTS
(SELECT * FROM sys.objects
WHERE object_id = OBJECT_ID(N'[dbo].[mytable]') AND type in (N'U'))
Select 1 [Exists]
Else
Select 0 [Exists]
Run Code Online (Sandbox Code Playgroud)
第一个查询列出了我的sql server上的所有数据库,第二个查询是否存在dbo.mytable.我想合并它们.
谢谢
我想在Windows 2012 R2基础架构上自动化应用程序/角色/功能部署(无人值守),这个项目需要很多小时的编程,这就是我在这里问的原因.
我想部署以下应用程序和角色:Active Directory,DNS,Sql Server 2012,Citrix XenApp Server,Citrix XenDesktop服务器,Citrix Datacollector,Citrix许可证服务器,Citrix Storefront服务器.
因此,基本部署将在8台服务器上(已安装在ESXi上,仅配置ip配置).
我想象这个场景:
我将填写一个包含所有信息的CSV文件,并执行Powershell脚本来部署所有内容,我们可以想象一个脚本将为每个组件(sql,ad,dns,citrix等)调用不同的脚本.
我不想依赖任何工具(sccm,puppet或其他......),这就是我想从头开始创建它的原因 - >但也许我错了.
我也看了,有一个所谓的新功能PowerShell的DSC,以简化应用程序部署http://blogs.technet.com/b/privatecloud/archive/2013/08/30/introducing-powershell-desired-state-configuration-dsc .aspx 有一个简单的例子:如果你需要4个iis webserver,那么执行以下代码:
Configuration DeployWebServers
{
Node ("test1.domain.com","test2.domain.com","test3.domain.com","test4.domain.com")
{
Windows-Feature IIS
{
Name = "Web-Server"
Ensure = "Present"
}
}
}
DeployWebServers -OutputPath "C:\scripts"
Start-DscConfiguration -path "C:\scripts" -Verbose -Wait -Force
Run Code Online (Sandbox Code Playgroud)
但在我的情况下,每个应用程序/角色或功能只有1个服务器,如果我理解的话,只有在(x)服务器上需要部署相同的配置时,此功能才有意义
你的建议是什么?我应该选择从头开始编写powershell脚本吗?或者选择像木偶或厨师这样的解决方案(更容易),但在这种情况下,我将依赖于工具.
最好的解决方案是使用sql数据库 - >我的项目的最终目标是一个带有数据库的Web应用程序,该数据库将执行我的powershell脚本来部署我的基础结构
当然,从这个Web应用程序,我将通过表单填充我的数据库,我的powershell脚本将查询此数据库以获取信息(IP地址,客户端名称,域名,密码,用户......)**
感谢您的意见.
这是我的代码:
$a = @()
for ($i = 0; $i -lt 5; $i++)
{
$item = New-Object PSObject
$item | Add-Member -type NoteProperty -Name 'Col1' -Value 'data1'
$item | Add-Member -type NoteProperty -Name 'Col2' -Value 'data2'
$item | Add-Member -type NoteProperty -Name 'Col3' -Value 'data3'
$item | Add-Member -type NoteProperty -Name 'Col4' -Value 'data4'
$a += $item
}
Run Code Online (Sandbox Code Playgroud)
使用此代码,我可以得到如下结果:
Col1 Col2 Col3 Col4
---- ---- ---- ----
0 1 2 3
1 2 3 4
2 3 4 5
3 4 …
Run Code Online (Sandbox Code Playgroud) 我想从哈希表中删除特定值。
该表如下所示:
Name Value
---- -----
column {test, test2}
Run Code Online (Sandbox Code Playgroud)
如何删除“ test2”值?
我尝试了以下方法:
$ myhashtable.remove(“ test2”)
不幸的是,这不起作用。
有人可以帮我吗?谢谢!
这是我的代码:
#! /usr/bin/python
import os
from pymongo.connection import Connection
from pymongo.master_slave_connection import MasterSlaveConnection
database = 'toto'
collection = 'logs'
master = Connection(host="X.X.X.X", port=27017)
slave1 = Connection(host="X.X.X.X", port=27017)
con = MasterSlaveConnection(master, slaves=[slave1, master])
db = getattr(con,database)
#host_name.append("getattr(db,collection).distinct( 'host_name' )")
#print host_name[1]
hosts = db.logs.distinct( 'host_name' )
services = db.logs.distinct("service_description" , { "service_description" : { $ne : null } } )
#print hosts
print services
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误:
File "./rapport.py", line 23
services = db.logs.distinct("service_description" , { "service_description" : { $ne : null } …
Run Code Online (Sandbox Code Playgroud) 这是我的阵列:
$ array包含这些值:
Y:\155150716070\00000027.JPG
Y:\155150716070\00000028.JPG
Y:\155150716070\00000029.JPG
Y:\155150716070\00000030.JPG
Y:\155150716070\00000031.JPG
Y:\155150716070\00000032.JPG
Y:\155150716070\00000033.JPG
Y:\155150716070\00000034.JPG
Y:\155150716070\00000035.JPG
Y:\155150716070\00000036.JPG
Run Code Online (Sandbox Code Playgroud)
如何用" JPG
" 代替" " TIF
以获得类似的东西?
Y:\155150716070\00000027.TIF
Y:\155150716070\00000028.TIF
Y:\155150716070\00000029.TIF
Y:\155150716070\00000030.TIF
Y:\155150716070\00000031.TIF
Y:\155150716070\00000032.TIF
Y:\155150716070\00000033.TIF
Y:\155150716070\00000034.TIF
Y:\155150716070\00000035.TIF
Y:\155150716070\00000036.TIF
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助
我想更改使用此脚本生成的文件的创建日期:
$clientname = Read-Host "Enter the client name"
$path = Read-Host "Enter the complete path of .bak files"
$time = "01-00-00"
$space = " "
for ($i = 0; $i -lt 7;$i++)
{
$date = (Get-Date).AddDays(-1-$i).ToString('yyyy-MM-dd')
New-Item -ItemType file $path$clientname$space$date$space$time.bak
}
Run Code Online (Sandbox Code Playgroud)
所以它给了我这些文件:
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 16/08/2013 16:55 0 client 2013-08-15 01-00-00.bak
-a--- 16/08/2013 16:55 0 client 2013-08-14 01-00-00.bak
-a--- 16/08/2013 16:55 0 client 2013-08-13 01-00-00.bak
-a--- 16/08/2013 16:55 0 client 2013-08-12 01-00-00.bak
-a--- 16/08/2013 …
Run Code Online (Sandbox Code Playgroud) 我想为从CSV生成的现有数组添加列和值.
这是我的代码:
$mycsv = "C:\Users\test\Documents\serveurs.csv"
$servers = Import-Csv $mycsv
Run Code Online (Sandbox Code Playgroud)
这是结果:
ServerName Ip ---------- -- Castor 172.22.0.64 Pollux 172.22.0.67
我想为每个ServerName添加带有值的新列,如下所示:
ServerName Ip Available ---------- -- --------- Castor 172.22.0.64 Yes Pollux 172.22.0.67 No
所以我尝试了下面的代码:
$item = New-Object PSObject
$item | Add-Member -Type NoteProperty -Name 'Available' -Value 'Yes'
$servers += $item
Run Code Online (Sandbox Code Playgroud)
但它实际上不起作用,任何人都可以帮助我吗?
最后的想法是使用Test-Connection Cmdlet在服务器可通过网络访问时分配值.
谢谢
如何将receive-job结果输出到文件?
我试过这个,但它不起作用:
$log = "C:\springfield\citrix\CitrixAutomation.log"
Get-Job | Receive-Job | Out-File $log
Run Code Online (Sandbox Code Playgroud)
我也试图将输出保存Get-Job | Receive-Job
到变量,但它不起作用..
$log = "C:\springfield\citrix\CitrixAutomation.log"
$getjobarr = @()
Function LogWrite
{
Param ([array]$logstring)
$logstring | Out-File $log -Append
}
$getjobarr += Get-Job | Receive-Job
LogWrite $getjobarr
Run Code Online (Sandbox Code Playgroud)
我认为Get-Job
并且Receive-Job
只能输出到控制台,所以我该如何实现呢?
谢谢你的帮助
powershell ×7
arrays ×2
sql ×2
sql-server ×2
automation ×1
csv ×1
deployment ×1
hashtable ×1
mongodb ×1
puppet ×1
pymongo ×1
python ×1
scripting ×1
windows ×1