Blog personal de Aitor Iriarte. Intento ayudar en lo que queda de una comunidad con personas que se respetan unas a otras. Si esto sigue adelante sólo es por comentarios positivos o alentadores. Si ves que este blog permanece congelado, el nulo feedback es el único motivo. Antes de ejecutar los comandos en sistemas en producción, asegurate leyendo la ayuda o en sitios especializados, de que son adecuados para el fin que pretendes.
lunes, enero 31, 2011
Checkpoint
Antes del backup ejecutaremos cpstop para parar los servicios de Checkpoint.
y después cpstart para arrancarlos.
Un sitio muy recomendable para los asuntos de Checkpoint es fir3net.com
Podemos ver por ejemplo la lista de comandos de Checkpoint, o la resolución de múltiples problemas.
En la resolución de problemas suele ser muy interesante la utilización de tcpdump y netstat. Aquí un ejemplo.
Saludos.
jueves, enero 27, 2011
Oracle SGA ¿está bien dimensionada?
En la ejecución nos hará las siguientes preguntas:
- ¿Queremos un informe HTML o texto plano?
- ¿Qué número de días de snapshots queremos elegir?
- Nos presentará un número de snapshots. Hay que elegir un snapshot de inicio y otro de final.
- Elegir el nombre del informe.
retention => 43200, -- Minutes (= 30 Days). Current value retained if NULL.
interval => 30); -- Minutes. Current value retained if NULL.
END;
/
lunes, enero 24, 2011
Un par de buenos sitios
En este sitio nos dicen si el problema de acceso lo tenemos sólo nosotros, o ellos tampoco pueden acceder:
http://www.downforeveryoneorjustme.com/
Si ellos no pueden acceder vete pensando que algo raro pasa.
Luego resultó que el problema era suyo y Google no tenía ningún problema. He ido al post de Chema y me he encontrado con que recomendaba la misma web que he puesto arriba, aunque por supuesto él tiene más gracia que yo para contarlo:
http://www.elladodelmal.com/2008/03/est-google-caido.html
Ahora bien, si hay un problema con los servidores DNS (como ha sido el caso en el caso de mi empresa), el comando adecuado es NSLOOKUP.
Para hacer nslookup desde "fuera" de la red podemos ir a un sitio remoto como este y ejecutarlo: http://www.spfld.com/nslookup.html
Ahora bien, nuestro problema era mucho más grave. La sospecha era que no eramos visible desde casi ninguna ubicación del mundo.
Para ejecutar nslookup desde múltiples localizaciones tenemos este otro sitio:
http://www.just-dnslookup.com/
Aquí una muestra del resultado:
Saludos.
domingo, enero 23, 2011
Instala un VIM más completo
Concretamente con Ubuntu se instala el VIM-TINY que tiene las opciones básicas, pero no son suficientes al menos para desarrollar algo con PERL, C++, etc.:
1.-No tiene ayuda. Esto es lo que sale cuando haces :help
"The Vim online help is not installed on this Debian GNU/Linux system."
2.-No tiene "Syntax highlighting", o sea, que no te va a ayudar con colorines cuando hagas un script o programa.
Instalación de la versión completa:
sudo apt-get install vim
o para instalar la versión gráfica:
sudo apt-get install vim-gnome
Ahora ya tenemos una Ayuda decente:
:help
La versión se ve con el comando :version
Y lo más importante, cuando abrimos un programita C++ ya se ve decentemente:
ANTES:
DESPUÉS:
Saludos.
jueves, enero 20, 2011
Engañando a la Sociedad
miércoles, enero 19, 2011
Consulta Access
Es fácil porque te va a llevar 4 minutos hacerlo, pero es molesta porque te interrumpe un montón de cosas.
Pues vamos al tema que igual le sirve a alguno (a mí mismo si dentro de unos años me preguntan lo mismo).
Hay una tabla con unos campos (campo1 y campo2). Hay que crear un campo calculado (campo3) que a través de uno o varios "IF THEN ELSE" tome un valor.
Esa estructura IF THEN ELSE se consigue a través de la función SiInm() disponible en Access:
Cuidado, la letra del medio de SiInm es una i (I) y no una ele (l).
Saludos.
lunes, enero 17, 2011
Backup en Linux/UNIX con TAR
Para backear /etc
tar cvf etc.tar /etc
¿Qué significan esas opciones?
c es para crear un nuevo archivo.
v para que podamos ver lo que va almacenando en el tar (opción verbose).
f para indicarle que el output del comando no es una cinta, sino un fichero.
Ahora podríamos comprimir el fichero etc.tar haciendo:
gz etc.tar
que genera el etc.tar.gz
Para obtener el fichero comprimido directamente usaremos la opción z.
tar czvf etc.tar.gz /etc
Si queremos backear TODO habrá que pensar en excluir el directorio donde vamos a dejar ese backup:
tar czvf /backup/fullBackup.tar.gz / --exclude /backup
Si queremos excluir una lista de ficheros entonces podemos crear un fichero de texto llamado por ejemplo excluidos.txt y se lo pasamos al programa:
tar czvf /backup/fullBackup.tar.gz / --exclude-from excluidos.txt
Para acceder al contenido de un fichero TAR:
Para descomprimir y obtener el fichero TAR:
gunzip fullBackup.tar.gz
Para ver el contenido del fichero TAR:
tar --list fullBackup.tar
Otra forma sería:
tar -tf fullBackup.tar
También se puede listar directamente desde el fichero comprimido:
tar -tzf fullBackup.tar.gz
La opción t es para listar (--list).
Con la opción z le indicamos que filtre por gzip.
f indica que se trata de un fichero y no una cinta.
Para desempaquetar los ficheros del .tar:
tar -xvf fullBackup.tar
Más opciones de tar aquí.
Saludos.
martes, enero 11, 2011
Ficheros ultraprotegidos en Windows
lunes, enero 10, 2011
Perfil de usuario Windows corrupto
El último error encontrado al intentar iniciar sesión era: "Error en el servicio del perfil de usuario al iniciar sesión. No se puede cargar el perfil de usuario".
¡Después del error la sesión se cierra sin más!
La solución está perfectamente explicada en este blog: http://geeks.ms/blogs/ciin/archive/2009/04/16/windows-vista-error-en-el-servicio-servicio-de-perfil-de-usuario-al-iniciar-sesi-243-n-no-se-puede-cargar-el-perfil-de-usuario.aspx
La ventaja que tenía yo era que tenía otros usuarios Administradores con los que iniciar sesión. Así que ha sido fácil abrir el registro y arreglarlo.
1.-Vamos a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList:
En el panel derecho podemos ver a que usuario corresponde cada perfil:
Así es la parte izquierda ampliada:
En mi caso tenía dos entradas para el mismo perfil de usuario:
1.-S-1-521-172623586-....-1000
2.-S-1-521-172623586-...-1000.bak
Hacemos un backup de la entrada del registro (exportar fichero como .reg).
Eliminamos la entrada corrupta: S-1-521-172623586-....-1000
Renombramos el .bak con el nombre que tenía la entrada corrupta.
Así ya he podido iniciar sesión correctamente.
Saludos.
domingo, enero 09, 2011
Servicios no utilizados I
Para más INRI el vista viene con un montón de servicios activos que probablemente no utilicemos nunca.
2.-Si no necesitamos acceder a otro servidor por escritorio remoto podemos deshabilitar "TERMINAL SERVICES" que por defecto en Vista se arranca en el inicio de Windows, lo uses o no.
En la lista de servicios podemos ver que en su arranque se ejecuta el proceso SVCHOST.
Así es la ejecución:
svchost.exe -k NetworkService
Paramos el servicio y le ponemos TIPO DE INICIO: DESHABILITADO.
Hay otro servicio que conviene deshabilitar si es que está arrancado. Es el WS-Management (Win RM)y sirve para la Administración remota de Windows. Por defecto este servicio viene como MANUAL.
Ejecuta también el proceso svchost:
svchost.exe -k NetworkService
Saludos.
sábado, enero 08, 2011
Midiendo el azar de nuestro sistema
No hay azar en nuestro ordenador. Es una ilusión que funciona, pero no verdadero azar.
Por eso es conveniente probar hasta que punto nos podemos fiar de las funciones RANDOM.
En el programa de la incluimos iostream para poder utilizar el
cout.
stdlib para la función srand() y time para poder pasarle la hora actual a srand() como semilla.
Iniciamos una secuencia de números aleatorios con SRAND. Luego se invoca RAND las veces que haga falta.
El valor aleatorio máximo que se puede generar es la constante RAND_MAX.
Obtener un valor entre 0 y un entero N determinado:
valor = rand() % (limiteSuperior + 1)
Valor entre límite inferior y límite superior:
valor = rand() % (limiteSuperior - limiteInferior + 1) + limiteInferior
Valor entre 0 y 1:
Hacemos una conversión a float:
valor = (float) rand() / RAND_MAX
El programa de arriba toma valores entre 1 y 2. Cuando se llega a 10⁹ ocurrencias para y muestra los resultados:
Ya se ve que consigue resultados muy cercanos al teórico 50%.
Por cierto, para que muestre el error en formato "natural" en lugar de en notación científica he tenido que utilizar:
cout(setf(ios_base::fixed)
Para forzar notación científica diremos ios_base::scientific
Saludos.
martes, enero 04, 2011
paraboloide de revolucion en c++
Se trata de hacer un programa que calcule el volumen que hay entre el plano z=0 y un paraboloide de revolución.
Para ver lo que es un paralelogramo de revolución y cómo se calcula el volúmen por medio de una integral doble definida podemos ir a este otro post que escribí el 12 de diciembre.
De todas formas pongo una imagen de la wikipedia:
El resultado de la integral definida para x e y entre 0 y 1 es exactamente 2/3.
O sea: 0,66666666666667
Pues este es el programa de C++ que, tal y como me pedían, calcula el volumen con distintas precisiones según el número de puntos que utilizados para el cálculo:
Lo que hago es calcular la función z=x*x + y*y para puntos cogidos al azar. Hago la suma de esos resultados y lo divido entre el número de puntos. Me imaginaba que daría como resultado el volumen, y así ha sido.
A medida que voy utilizando más puntos la precisión aumenta.
Y el resultado:
Saludos.