Por ejemplo, supongamos que queremos ver el estatus de la tempdb en una serie de servidores y queremos que todos los resultados aparezcan en un archivo de texto que llamo jobstatus.txt y que presenta el siguiente formato:
***************************************************************** TEMPDB STATUS ***************************************************************** Server Name DB Name DB Size Mb Space Used Mb Servidor1 Tempdb 3316.44 0.55 Server Name DB Name DB Size Mb Space Used Mb Servidor2 Tempdb 150.00 0.70 Server Name DB Name DB Size Mb Space Used Mb Servidor3 Tempdb 65.56 0.59 |
En primer lugar creamos el script que queremos correr y lo salvamos con extensión *.sql
set nocount on declare @dbsize dec(15,2) declare @database_size nvarchar(13) declare @spaceused nvarchar(13) select @dbsize = sum(convert(dec(15,2),size)) from tempdb.dbo.sysfiles select @database_size =(convert(dec(15,2),@dbsize / 128)), @spaceused=(select convert(dec (15,2),(sum(convert(dec(15,2),reserved))/128)) from tempdb..sysindexes where indid in (0, 1, 255)) select convert(nvarchar(30),@@servername) as 'Server Name','Tempdb' as 'DB Name', @database_size as 'DB Size Mb', @spaceused as 'Space Used Mb' set nocount off |
A continuación, necesitamos el batch file:
date /t >>jobstatus.txt time /t >>jobstatus.txt echo *****************************************************************>> jobstatus.txt echo TEMPDB STATUS >>JOBSTATUS. echo *****************************************************************>>jobstatus.txt ::Aquí tenemos los servidores. for %%t in ( servidor1 servidor2 servidor3 ) do osql -E -S %%t -t30 -n -w500 -i TEMPDB.sql >> jobstatus.txt echo ------------------------------------------------------->> jobstatus.txt echo ------------------------------------------------------->> jobstatus.txt echo END OF REPORT ::si queremos que automáticamente se nos abra el fichero notepad jobstatus.txt |
Salvamos con extensión *.bat. Para ejecutar, ya sabéis doble click o bien podéis programarlo como un job (aseguraros que la cuenta que lo ejecuta tiene permisos en cada uno de los servidores).
El próximo día os pondré otro ejemplo, esta vez utilizando perl, salvando un fichero para cada servidor.
No hay comentarios:
Publicar un comentario