Gente,
Quiero dejarles un
script útil que les permitirá tener controlado el espacio disponible en disco
siempre.
Los valores que
devuelve por unidad lógica son: Gb Libres, total de GB de la unidad y % de Gb libres restantes.
Para ello deben
primero configurar vuestro server para que les permita usar los “Ole Automation
Procedures” que este sp utiliza.
“Go down on business” entonces :
-------------------------------------------
-- Habilita -
"Ole Automation Procedures --
-------------------------------------------
sp_configure 'show advanced
options', 1
GO
RECONFIGURE;
GO
sp_configure
'Ole Automation Procedures', 1
GO
RECONFIGURE;
GO
sp_configure
'show advanced options',
1
GO
RECONFIGURE;
------------------------------------------------
-- Informa
espacio libre en unidades de disco -
-- Autor: GRH -
Sql Server Para Todos -
------------------------------------------------
DECLARE
@hr int,
@fso int,
@drive char(1),
@odrive int,
@TotalSize varchar(20),
@MB bigint
SET @MB = 1048576
CREATE TABLE #drives (drive char(1) PRIMARY KEY,
FreeSpace int NULL,
TotalSize int NULL)
INSERT #drives(drive,FreeSpace)
EXEC master.dbo.xp_fixeddrives
EXEC @hr=sp_OACreate 'Scripting.FileSystemObject',@fso
OUT
IF @hr <> 0 EXEC sp_OAGetErrorInfo @fso
DECLARE dcur CURSOR LOCAL FAST_FORWARD
FOR SELECT drive from #drives
ORDER by drive
OPEN dcur
FETCH NEXT FROM dcur INTO @drive
WHILE @@FETCH_STATUS=0
BEGIN
EXEC @hr = sp_OAMethod @fso,'GetDrive', @odrive OUT, @drive
IF @hr <> 0 EXEC sp_OAGetErrorInfo @fso
EXEC @hr = sp_OAGetProperty @odrive,'TotalSize', @TotalSize OUT
IF @hr <> 0 EXEC sp_OAGetErrorInfo @odrive
--
UPDATE #drives
SET TotalSize=@TotalSize/@MB
WHERE drive=@drive
FETCH NEXT FROM dcur INTO @drive
END
CLOSE dcur
DEALLOCATE dcur
EXEC @hr=sp_OADestroy @fso
IF @hr <> 0 EXEC sp_OAGetErrorInfo @fso
El resultado obtenido será el siguiente:
** TIP - Pueden guardar estos datos en una tabla y medir de ese modo el % de crecimiento de utilización de vuestros discos duros proyectando el espacio necesario a futuro.
Pueden armar una alerta que, cuando el espacio disponible en disco caiga por debajo de x gb dispare un correo.
Eso es todo amigos, amigable y sencillo.
Saludos cordiales desde Argentina.