miércoles, 14 de octubre de 2015

Migración de base de datos PostgresSQL con codificación SQL_ASCII a UTF8




Utilizar una consulta tipo:
 
  • SELECT * FROM pg_stat_activity where datname='basededatos'; 

Para verificar que los usuarios han sido buenos y realmente ya se han desconectado.
Si vemos conexiones que no debería haber debemos avisar a los rezagados...

Una vez comprobamos que ya tenemos la base de datos para nosotros solos continuamos.
Antes de nada hacer copia de seguridad de la original:
  • pg_dump basededatos > basededatos.sql

 
Ver codificación de la original: 

  •  file basedatos.sql
    basedatos.sql: ISO-8859 text, with very long lines
 
Hacer recode de la base de datos para transformarla a UTF-8:  
  • cat basedatos.sql | recode iso-8859-1..u8 > basedatos_utf8.sql 
 
Verificar codificación de fichero transformado:
  • file basedatos_utf8.sql
    basedatos_utf8.sql: UTF-8 Unicode text, with very long lines 


Renombra la base de datos original para mantener una copia online:
  • psql
  • postgres=# alter DATABASE basedatos RENAME TO basedatosold; 
Crear la nueva base de datos con codificación utf8, por ejemplo así:
  • postgres=# CREATE DATABASE basedatos  
     WITH OWNER = postgres        
     ENCODING = 'UTF8'        
    TABLESPACE = pg_default         
    LC_COLLATE = 'es_ES.UTF-8'        
    LC_CTYPE = 'es_ES.UTF-8'        
    CONNECTION LIMIT = -1;   
    CREATE DATABASE  
    postgres=#
Editar el fichero basedatos_uft8.sql  y cambiar la línea que establece la codificación:
  • SET client_encoding = 'SQL_ASCII';
  • SET client_encoding = 'UTF8';
Importamos el volcado convertido a la nueva base de datos:
  • psql basedatos < basedatos_utf8.sql
Y todo debería estar OK!!
Como siempre comprobar y comprobar.

 


 

lunes, 5 de octubre de 2015

Cambio de alias de cuenta outlook.com en cliente de correo de windows 10


Como tenía varias cuentas Microsoft decidí unificarlas todas y tras haber hecho la unificación me encontré con que la cuenta principal del inicio de sesión del Windows 10 si me la cambiaba, pero en la aplicación de correo me seguía apareciendo la cuenta vieja.

La solución actual, en este momento para cambiar esto pasa por editar un par de claves de registro, el procedimiento es el siguiente:
  1. Ejecutar REGEDIT
  2. En la clave "HKEY_CURRENT_USER -> SOFTWARE -> Microsoft -> Active Sync -> Partners " existe un nodo hijo con un identificador para cada cuenta.
  3. Buscamos la que corresponde a nuestro usuario en el campo "User".
  4. Cambiamos los campos "User" y "Email" por el alias que queramos y listo

viernes, 24 de julio de 2015

Ver licencias asignadas en Office 365


  1. Instalar Asistente para el inicio de sesión de Microsoft Online Services para profesionales de TI 
  2. Instalar  Módulo de Azure Active Directory para Windows PowerShell (versión de 64 bits) 
  3. PowersShell
  4. import-module MsOnline
  5. $msolcred = get-credential
  6. connect-msolservice -credential $msolcred
  7. Get-MsolUser | Where-Object {$_.isLicensed -eq $True}

sábado, 7 de septiembre de 2013

Java está de moda... Mi querido Perl ¿esta muerto?

En fin, los que me conocéis sabéis que Java no es una de mis predilecciones, y estoy cansado de decir que Perl no está muerto.. pero bueno dejo dos datos importantes.

Uno es este estudio de redmonk The RedMonk Programming Language Rankings: June 2013
el otro es esta URL http://search.cpan.org/recent


Ahora quien me sigue diciendo que Perl está muerto, está claro que cada día hay más Javeros y menos Perleros... pero que le vamos a hacer... de todas formas estoy cansado de oír que Perl es como COBOL... una antigualla (a veces es mejor callarse que intentar rebatir cosas como estas...) A veces la gente menosprecia las cosas con una facilidad ... COBOL fue y sigue siendo bueno en determinadas cosas, Perl es una obra de arte.


miércoles, 24 de octubre de 2012

Instalara VMWARE VSPHERE CLI 5 en Debian Mint

  • Añadir en /etc/os-release un comentario tipo #mdadsa ubuntu. pq hace un grep -i de ubuntu. De esta manera nos encuentra los prerequisitos como si fuese una ubuntu con el dpkg -i
  • Si no usas proxy y no tienes la variables de entorno http_proxy y ftp_proxy definidas comenta lo siguiente:
      #if ( !( $ftpproxy && $httpproxy)) {
      #   uninstall_file($gInstallerMainDB);
      #   exit 1;
      #}
Y con esto debería ir

miércoles, 23 de mayo de 2012

Script para desbloqueo de cuentas de Active Directory

Desbloquea los usuarios de AD de todo el directorio

'nivel de subárbol
Const ADS_SCOPE_SUBTREE = 5
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 10000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = _
"SELECT distinguishedName,AdsPath FROM 'LDAP://dc=depo,dc=es' WHERE objectCategory='user'"
Set objRecordSet = objCommand.Execute
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set Flog = oFSO.CreateTextFile("cuentas.log")
'CANTIDAD = objRecordSet.RecordCount
if not objRecordset.eof then
    objRecordset.Movefirst
    while not objRecordset.eof
        Set objuser = GetObject(objRecordSet.Fields("AdsPath").Value)
              if objUser.IsAccountLocked = TRUE Then               
                Flog.Writeline("desbloqueando " & objRecordSet.Fields("distinguishedName").Value)
                objuser.put "lockoutTime", 0
                objUser.SetInfo
            end if             
              objRecordSet.MoveNext
    wend
end if
Flog.close

lunes, 21 de mayo de 2012

Balancear IIS desde Apache, según sesiones

Gracias al wmi-client para linux (se puede descargar desde aquí http://www.orvant.com/packages). Y el pequeño script en perl que os pongo a continuación, podemos realizar un balanceo hacia servidores IIS según la carga de los mismos, redirigiendo siempre hacia el servidor con menos carga la petición


CGI en perl para realizar el balanceo

#!/usr/bin/perl
$usuario="usuario";
$clave="clave";
$puerto="8080";
@servidores=("server1.dominio.tld","server2.dominio.tld");
$cmd_base="/usr/bin/wmic";
$query='"select CurrentConnections from Win32_PerfFormattedData_W3SVC_WebService"';
#el timeout del apache en este caso está en 300, pero usamos 180 por precaución
$tiempoespera=180/(scalar @servidores);
$srvredir=$servidores[0];
$minimo=1000;
foreach $srv (@servidores)
{
$comando=$cmd_base." -U $srv/$usuario\%$clave //$srv $query";
#damos un tiempo de timeout
eval {
local $SIG{'ALRM'}=sub { die "no responde\n"};
alarm($tiempoespera);
@resultado=split(/\n/,`$comando`);
alarm(0);
};
if($@)
{
print STDERR "Timeout de ejecución del servidor $srv";
next;
}
if($resultado[0]=~/failed/)
{
print STDERR "Timeout WMI del servidor $srv";
next;
}
foreach $linea (@resultado)
{
@totales=split(/\|/,$linea);
if($totales[1]=~/_Total/)
{ if($totales[0]<$minimo)
{
$minimo=$totales[0];
$srvredir=$srv;
}
last;
}
}
}

$URL="http://$srvredir:$puerto/";
print "Content-Type: text/html\n";
print "Location: $URL\n\n";

Se pude mejorar, pero  funciona bastante bien, evidentemente el usuario clave puerto, servidores etc. hay que cambiarlo para cada caso.


L2TP Ipsec Windows to Mikrotik eror 789

 Add this to registry REG ADD HKLM\SYSTEM\CurrentControlSet\Services\PolicyAgent /v AssumeUDPEncapsulationContextOnSendRule /t REG_DWORD /d...