Skip to content

Instantly share code, notes, and snippets.

@gcanales75
gcanales75 / reporte-perf-virtualdisks.ps1
Created May 31, 2015 00:45
Reporte Performance Discos Virtuales
## Horario inicio de operaciones ##
$abre = get-date -hour 8 -minute 0 -second 0
## Horarios cierre de operaciones ##
$cierre = get-date -hour 16 -minute 0 -second 0
$IOarray = Get-VM $MisVMs | Where {$_.PowerState -eq "PoweredOn"} | select name,
@{N="IORead";E={[Math]::Round((($_ |Get-Stat -Stat virtualDisk.numberReadAveraged.average -Start $abre.adddays(-5) -finish $cierre.adddays(-1) |Measure-Object Value -Average).Average),2)}},
@{N="IOWrite";E={[Math]::Round((($_ |Get-Stat -Stat virtualDisk.numberWriteAveraged.average -Start $abre.adddays(-5) -finish $cierre.adddays(-1) |Measure-Object Value -Average).Average),2)}},
@{N="LatRead";E={[Math]::Round((($_ |Get-Stat -Stat virtualDisk.totalReadLatency.average -Start $abre.adddays(-5) -finish $cierre.adddays(-1) |Measure-Object Value -Average).Average),2)}},
@{N="LatWrite";E={[Math]::Round((($_ |Get-Stat -Stat virtualDisk.totalWriteLatency.average -Start $abre.adddays(-5) -finish $cierre.adddays(-1) |Measure-Object Value -Average).Average),2)}},
@gcanales75
gcanales75 / rackspace-servers-REST.ps1
Created May 31, 2015 00:50
PoSh script para obtener servidores Rackspace Cloud usando REST
$uri = "https://identity.api.rackspacecloud.com/v2.0/tokens"
$user = "user"
$apiKey1 = "My-API-Key"
$account = "account"
$passcred = @{
"username"=$user
"apiKey"=$apiKey1
}
@gcanales75
gcanales75 / reporte-mem-tecnica.ps1
Last active December 4, 2015 04:47
Reporte Configuracion vSphere (Kindda memoria tecnica)
## Script que genera CSV con informacion de la configuracion de distintos elementos en una
## instalacion de vSphere (5.1/5.5). Pensada en que corra al terminar una instalacion o con
## cierta frecuencia para mantener actualizada la informacion del entorno vSphere.
## Archivos CSV que va a generar el reporte
## -> Reporte de VMs
## -> Reporte de discos virtuales y configuracion
## -> Configuracion de politicas en PortGroups
## -> Configuracion de red en PortGroups
## -> IP y funcionalidades en PortGroups
@gcanales75
gcanales75 / reporte-snap.ps1
Last active August 29, 2015 14:23
Reporte Snapshot antiguos
#######################
## Reporte Snapshots ##
#######################
## Busca Snapshots con mas de 24 horas, si no encuentra termina script, en caso de
## encontrar Snapshot genera una tabla que pega en un TXT y envia anexado via correo
## electronico.
## Agrega SnapIn de VMware
Add-PSSnapin VMware.VimAutomation.Core
@gcanales75
gcanales75 / EC2-volumes-backup.ps1
Last active August 29, 2015 14:24
Hace respaldos (snapshots) de volumenes EBS y las mantiene por 7 días
## Variables
$nombre = "Mi_Instancia"
$fecha = Get-Date -Format "yyMMdd-HHmm"
$7dias = (Get-Date).addhours(-165)
$instancia = Get-EC2Instance | select -expandproperty RunningInstance | ? {$_.Tag.Key -eq "Name" -and $_.Tag.Value -eq $nombre}
$id = $instancia.InstanceId
$discos = Get-EC2Volume | Where-Object {$_.Attachment.InstanceId -eq $id}
## Loop para generar snapshots de todos los volumenes EBS attachados a la instancia
foreach( $disco in $discos ) {
@gcanales75
gcanales75 / reporte-discos-virtuales.ps1
Created July 4, 2015 16:28
Reporte de discos virtuales (vmware)
$MyVMs = Get-VM
foreach($VM in $MyVMs){
Get-VM $VM |Get-HardDisk |
Format-Table @{Name="VM";Expression={$_.Parent};a="left"},
@{Name="Disco";Expression={$_.name};a="left"},
@{Name="Capacidad GB";Expression={"{0:N1}" -f $_.CapacityGB};a="right"},
@{Name="Formato";Expression={if ($_.StorageFormat -eq 'Thin') { "Thin" } else { "Thick" }};a="center"},
@{Name="RDM";Expression={if ($_.ExtensionData.backing.LunUuid -ne $null) { "Si" } else { "No" }};a="center"},
@{Name="Independiente";Expression={if ($_.Persistence -eq 'Persistent') { "No" } else { "Si" }};a="center"},
@{Name="Persistente";Expression={if ($_.Persistence -eq 'IndependentPersistent' -or 'Persistent') { "Si" } else { "No" }};a="center"},
@gcanales75
gcanales75 / reporte-VMs-no-respaldadas.ps1
Created July 4, 2015 16:30
Reporte de VMs que no se están respaldado (Veeam B&R)
## Variables de columna "Estado" ##
$on = "Encendida"
$off = "Apagada"
## Genera una lista de VM en todos los Jobs de respaldo (backup) ##
$jobs = get-vbrjob | where {$_.jobtargettype -eq "backup"}
$protected = $jobs.getobjectsinjob()
$vmresp = $protected.name
## Crea la tabla con las VMs que no aparecen en la lista de VMs protegidas en alguno de los Jobs ##
@gcanales75
gcanales75 / agrega-nueva-VM-a-Job.ps1
Created July 4, 2015 16:31
Script para agregar automáticamente VMs nuevas a Job de Veeam
## vSphere 5.5 + Veeam 8
## Aqui y ahora =)
$tiempo = Get-Date
## Buscamos en las ultimas 24 horas todas las VM creadas u OVA/OVF "deployed"
$nuevasVM1 = Get-VIEvent -Start $tiempo.AddDays(-1) | where {$_.FullFormattedMessage -like "*created virtual machine*"}
$nuevas1 = $nuevasVM1.Vm.Name
## Agregamos al job de respaldo $MiJob las VMs encontradas
foreach ($vm1 in $nuevas1) {
@gcanales75
gcanales75 / reporte-VMs-por-horario.ps1
Last active August 29, 2015 14:25
Reporte de Performance de VMs en rango de horario determinado
#########################################
## Reporte utilización VMs por horario ##
#########################################
## Nota 1: Los contadores "virtualDisk.numberReadAveraged.average" y
## "virtualDisk.numberWriteAveraged.average" requieren tener configurado
## el nivel "2" del Statistics Level en vCenter Server.
## Nota 2: Necesita existir previamente la ruta "c:\temp\"
@gcanales75
gcanales75 / ultimas-alarmas.ps1
Last active August 29, 2015 14:25
Ultimas alarmas genradas en vCenter Server
##########################################
## Reporte Alarmas generadas en vCenter ##
##########################################
## Nota 1: Necesita existir previamente la ruta "c:\temp\"
## Nota 2: Unicamente reporta errores y warnings
## Nota 3: Las variables preconfiguradas del script suponen la creacion
## de un reporte con las alarmas de "1" día previo.