Planifica el apagado del PC

ShutdownRevisando los posts, me he encontrado con un porrón de entradas «borrador» que nunca he llegado a publicar, vete tú a saber por qué razón. Entre ellas, me he decidido a recuperar esta entrada que escribí a principios del 2009.

Ahí va:
Más de una vez he pensado en que sería una buena idea, planificar el antivirus en las máquinas de la oficina al finalizar la jornada laboral. De esta manera, nadie se podrá quejar de que su máquina le va lenta o que no puede trabajar cuando el antivirus está escaneando. El problema que tiene esto, es que no todos los antivirus vienen con la opción de apagar la máquina automáticamente al finalizar el escaneo, y la opción de dejar las máquinas encendidas las 24h del día ininterrumpidamente no es nada interesante si tenemos en cuenta cuestiones como el ahorro de energía.

Para ello, podemos hacer un script que apague la máquina, y otro script que se encargue de planificar la tarea a una determinada hora. Seguramente haya una mejor forma de hacerlo, pero la que explicaré a continuación funciona a la perfección.

/*Apagado.bat*/
REM Cerramos (-s) el PC con un retraso de 10 segundos (-t 10), forzando el cierre de aplicaciones sin previo aviso (-f) pero mostrando un comentario en pantalla (-c)

shutdown -s -t 10 -f -c «Apagado automático de equipo»

Este script apagado.bat, podríamos planificarlo manualmente desde:
{Inicio}->{Programas}->{Accesorios}->{Herramientas del sistema}->{Tareas programadas}
Agregar tarea programada
Seleccionamos el script anterior
Realizar esta tarea: diariamente
Seleccionamos la hora y si queremos lanzar la tarea únicamente los días laborables o todos los días de la semana
Finalmente, introducimos los credenciales con los que se ejecutará la tarea

Si tenemos muchos PCs, no nos interesará tener que ir PC a PC, manualmente, añadiendo esta planificación, así que para ello, tenemos este segundo script:

/* Planificador.bat */
C:\Windows\system32\schtasks.exe /create /RU DOMAIN\admin /RP AdminPass /SC daily /ST 21:30:00 /TN «Shutdown» /TR C:\apagado.bat

Este script se encargará de crear una tarea planificada llamada «Shutdown» que se ejecutará diariamente a las 21:30, con credenciales DOMAIN\admin, y que llamará al script anterior, apagado.bat.

Únicamente necesitaremos una herramienta de distribución de software para crear un paquete con los dos scripts, que se encargue de primero copiar apagado.bat a C:, y posteriormente ejecute planificador.bat.

Como nota final, dos apuntes: en planificador.bat, podemos añadir al principio una instrucción «copy apagado.bat C:\» para que sea este script el encargado de copiar el planificador.bat a C:\. Finalmente, decir que Windows Home no tiene la utilidad schtasks, así que no podremos usar el script planificador.bat en estos SO.

Fuentes:
http://support.microsoft.com/?kbid=814596
http://technet.microsoft.com/en-us/library/bb490996.aspx
http://wpkg.org/Schtasks_for_XP_Home

Flickr! Foto por cellanr

Utiliza tu propio dominio con GMAIL

AwesomeEstos de Google son impresionantes.
Con su servicio GoogleApps puedes usar tu dominio en una cuenta de GMAIL, con tal de recibir y enviar emails usando GMAIL, pero mediante tu propia dirección de dominio. Es decir, puedes enviar y recibir mails desde [email protected] usando el interfaz de GMAIL y guardando y gestionando todos los correos desde ahí.

Únicamente necesitas adquirir un dominio, para poder gestionar el correo con GMAIL.

Lo que sí que es verdad, es que el proceso no me ha parecido muy trivial. En mi caso, yo ya tenía una dirección @gmail con actividad de varios meses, que me interesaba conservar en la nueva cuenta a crear. Los pasos que he seguido han sido:

  1. Desde Google Apps me he dado de alta en la prueba gratuita introducción de la edición estándar, añadiendo mi dominio .com.
  2. He creado un usuario con mi dirección de correo del estilo [email protected]
  3. Desde el panel de control de Google Apps -> Configuración de correo electrónico, he seleccionado «Instrucciones de activación del correo electrónico» donde he podido seleccionar el proveedor de mi dominio (en este caso 1and1), desplegándose así las instrucciones para modificar el registro MX del dominio mediante el panel de control de mi dominio en la web de 1and1.es.
  4. Una vez modificado el registro MX, he comprobado con www.mxtoolbox.com la redirección. En teoría, pueden llegar a pasar entre 24 y 48 horas hasta que el cambio se propaga a los diversos servidores DNS de lo largo de la red. Por esta razón, he tenido que esperar prácticamente un día a que Google diese por buena la redirección MX.
  5. Una vez hecho, he podido ya entrar a la bandeja de entrada de mi dirección de correo con mi dominio ([email protected]).

Hasta aquí, lo necesario para configurar una cuenta de correo de un dominio propio, con Google, pero en mi caso he querido importar los mails de mi antiguo mail de gmail al nuevo.

  1. Para ello, únicamente he tenido que seleccionar, desde el panel del correo de la nueva cuenta (con una vista idéntica a GMAIL), en Configuración -> Cuentas -> Recibir mensajes de otras cuentas, para añadir la anterior cuenta de GMAIL.
  2. He recibido un correo en mi anterior cuenta de GMAIL para confirmar la sincronización, que he tenido que aceptar.

Con esto, cada cierto tiempo (no configurable), mi nueva cuenta se encarga de descargar el correo recibido en mi anterior cuenta. Esto además, asegura que en la primera comprobación se importen todos mis antiguos correos (tanto leídos como no leídos) a la nueva cuenta.

En definitiva, una forma muy barata (¿he dicho ya que es gratis?) y cómoda (una vez configurada) de contar con un correo, 100% de empresa, en la nube.

Por cierto, gracias por el chivatazo, K.

Flickr! Foto por Angel mat-eye

Notas rápidas del MCSA

Nerd
Bueno, después de más de cuatro meses asistiendo a clases para la certificación MCSA de Microsoft, he decidido compartir algunas anotaciones interesantes que se han visto durante el curso, aunque no entran en el temario del mismo. Así que prepararos para una entrada bastante técnica, pero muy útil (o eso espero) para la gente de sistemas:

  • Servidor de ficheros: una buena idea es tener discos «hot swap», para poder reemplazarlos sin necesidad de parar el servicio, en caso de necesidad. Esto no nos sirve, si lo que falla es el disco donde tenemos el sistema operativo; para ello, usaremos 2 discos en espejo.
  • Discos duros: básicamente hablamos de discos SATA y discos SCSI (llamados SAS actualmente). Estos últimos son los recomendados siempre en entornos de empresa, puesto que el rendimiento es mucho mejor a pesar de que el pico de rendimiento puede ser mayor en discos SATA, aunque únicamente en picos puntuales.
  • DMZ: nunca se deberían facilitar accesos directos al exterior desde la red interna. Para ello, usaremos máquinas que harán de intermediarios para los servicios requeridos (como DNS, correo, web, etc.) que se ubicarán en esta DMZ. Estas máquinas perimetrales, no deberían ser miembros del dominio, por temas de seguridad.
  • Servidor Radius/IAS: Montaremos un servidor Radius cuando 1) queramos centralizar ahí las directivas de acceso remoto o 2) queramos autentificar equipos contra servidores que no estén en Directorio Activo
  • NAS vs SAN: entre otras, la diferencia principal es que NAS tiene un sistema operativo que hace toda la gestión, mientras que SAN únicamente comparte disco.
  • Siempre que podamos, intentaremos deshabilitar (no quitar) los componentes no estrictamente necesarios (USB, CD, ciertos tipos de archivo anexos en correos electrónicos, etc.)
  • NetBios: hoy en día, si podemos, deshabilitaremos Netbios en nuestra red. Con ello, deshabilitaremos también la función «Mis sitios de red», ya que únicamente se verá nuestro propio equipo. Los usuarios, por tanto, tendrá que usar la búsqueda por Directorio Activo para encontrar recursos compartidos, impresoras, usuarios, etc. Esto lo haremos, puesto que si tenemos muchos equipos, NetBios puede llegar a colapsar la red.
  • Directorio Activo: agarraos …
    • No montaremos un árbol de dominios con más de 3 niveles de profundidad, puesto que más niveles hacen inviable su gestión.
    • Montaremos un mínimo de 2 Controladores de Dominio por dominio.
    • Antes de montar Directorio Activo, deberemos tener muy claro para qué lo queremos, y siempre, primero se hará la estructura sobre papel.
    • Las cuentas de los usuarios que dejan la empresa, no deberán borrarse en los siguientes 5 años, por temas legales.
    • Los permisos se darán siempre a nivel de grupo.
  • Alto rendimiento: para alto rendimiento, usaremos (si el bolsillo lo permite) una cabina de discos, y montaremos el RAID por hardware que nos permita la cabina.
  • Además, usaremos fibra para la conexión gigabyte, o en su defecto, iSCSI.
  • Auditoría: la auditoría ha de habilitarse para empezar a registrar eventos. Lo que se ha hecho antes de habilitar la auditoría no se podrá auditar. En cualquier caso, para auditar necesitaremos:
    • Directivas: habilitar la directiva de auditoría necesaria, y
    • Recurso: habilitar el recurso que quiero auditar e indicar qué se quiere auditar.
  • Clústers: siempre que podamos, montaremos Clústers con Windows 2008 en lugar de con Windows 2003, por temas de compatibilidad.
  • Tarjetas de red TEAM: este tipo de tarjetas que soportan TEAM, permiten funcionar juntas como una sola (una máquina puede tener por ejemplo 4 tarjetas TEAM a 1 GB cada una, funcionando como una única tarjeta). Ésto nos permitirá usar cada tarjeta para una comunicación. Así, si por ejemplo estamos trabajando con una única comunicación por ejemplo copiando una ISO de 8GB, únicamente estaremos usando una de las tarjetas (a 1GB máximo). Sacaremos provecho al TEAM cuando estemos usando varias comunicaciones de forma simultánea.

¡Espero que os sea de utilidad!

Flickr! Foto por elvissa

Migración de hosting

Ya hacía tiempo que quería cambiar de hosting, y he aprovechado estas fechas tal señaladas para realizar la migración de mi web de un proveedor de hosting a otro. Me he decidido por 000webhost.com, después de pasar los últimos 2 años con 1and1, en su plan de bienvenida.

Durante estos dos años en 1and1, no he tenido problemas, a excepción del acceso con cliente FTP, que se ha llegado a hacer tedioso e incomprensiblemente lento y “fallón”.

En cuanto al nuevo proveedor, 000webhost.com, para mis necesidades tiene sus ventajas e inconvenientes. Como ventaja principal, tiene un plan gratuito que parece tener buena pinta. Como desventaja, su utilidad fantástico para la instalación «sencilla» de programas como «WordPress» no funciona, y lleva así un buen tiempo (tanto, que empiezo a pensar que únicamente les funciona el fantástico a los usuarios con cuentas de pago).

En cualquier caso, para la migración manual del WordPress, he seguido estos pasos:

  1. Descargar la última versión de todos los archivos de WordPress de mi antiguo servidor.
  2. Realizar un backup de la base de datos con un el plugin de wordpress wp-database-backup (que ha resultado no funcionar).
  3. En el nuevo hosting, crear una base de datos mysql cualquiera desde el cPanel de 000webhosts, para alojar la base de datos de Wordress (al finalizar la creación aparece el resumen de los detalles que necesitaremos para la instalación manual de Wordress).
  4. Subir por FTP todos los archivos de WordPress al nuevo servidor.
  5. Modificación del archivo config.php de WordPress, para usar los detalles de la base de datos creada en el punto 4, siguiendo estas indicaciones.
  6. Subir el archivo config.php al servidor.
  7. Ejecutar https://helloit.es/wp-admin/install.php
  8. Seguir el asistente, para al finalizar, tener nuestro nuevo blog vacío pero funcionando.
  9. Entrar con phpMyAdmin a la administración del antiguo blog, y realizar un backup por defecto de las tablas de WordPress.
  10. Editar la consulta sql generada para reemplazar todas las alusiones a mi anterior hosting por el nuevo (buscando http://s229103401.mialojamiento.es y reemplazando por https://helloit.es). Eliminar todas las querys del tipo CREATE TABLE para dejar únicamente las del tipo INSERT INTO.
  11. Entrar con phpMyAdmin a la administración del nuevo blog, y vaciar (que no eliminar) todas las tablas de la base de datos de WordPress (pero sin remover la base de datos).
  12. Ejecutar la sentencia sql modificada con el backup del blog.

Después de realizar todos estos pasos, he conseguido migrar el blog de un hosting a otro, al parecer, con éxito. Finalmente, he necesitado modificar mi registro DNS para que mi dominio apunte a la ip del nuevo servidor.

Ahora tocará postear, más a menudo 🙂

– Toc, toc. -¡Ocupado!

Busy Hace poco me llamaron diciendo que una determinada página web no funcionaba. Efectivamente así era. Entramos en el servidor web en cuestión (Windows con IIS) y probamos de ver la página de bienvenida del IIS, que tampoco funcionaba. Después de algunas comprobaciones, vimos que teniendo el servicio IIS parado (y por tanto sin tener la web publicada), el puerto 80 estaba ocupado por otra aplicación. ¿Pero, por cual? Lo único que sabía, gracias a netstat -an era que efectivamente nuestro puerto 80 estaba escuchando.

Para descubrir qué aplicación nos estaba fastidiando el puerto 80, bajé una aplicación de Microsoft, llamada TCPView , que no nos sirvió para nada. La verdad es que es una herramienta gráfica, que refresca en tiempo real las conexiones de la máquina, pero que no nos mostraba nada sobre determinados puertos, entre ellos, el puerto 80.

Navegando llegué a esta página, donde explicaban como usar netstat para sacar el identificador del proceso (pid) correspondiente a cada conexión. Si lo juntamos con el comando "find", podemos sacar únicamente por pantalla las conexiones que están en estado "escuchando".

netstat -ano | find /i "listening"

Una vez hemos identificado el pid del proceso que nos tiene el puerto 80 ocupado, podemos utilizar una pequeña herramienta llamada PUList , que viene con el Windows 2000 Resource Kit, pero que podemos bajar de forma totalmente independiente (aunque atención, nos pedirá validar Windows). En el ejemplo (sacado directamente de la página del autor del post original), querremos buscar el nombre del proceso (que es lo que devuelve pulist) con pid "6372"

pulist |find /I "6372"

He de decir que el comando find, solo nos ayudará a acotar las salidas de los comandos que realmente necesitamos, que son "netstat -ano" y "pulist".

Con esto podremos identificar el proceso, y hacer una búsqueda en google para saber más sobre él, o directamente, abrir el administrador de tareas para finalizar dicho proceso.

Flickr! Foto por Alaskan Dude

¡Argh! ¡No funciona Internet!

Fear ¿Qué pasa cuando llegas a la oficina y…? ¡argh! ¡No funciona Internet ! Muchas cosas se te pasan por la cabeza, pero cuando descubres que tampoco responde a ping el servidor dns interno… La cosa cambia.

Ya no es un problema de conectividad o de red, que puede ser debido al switch, firewall, router, cables, ISP, etc. La cosa se centra únicamente en el servidor dns. Ese es el momento de levantarse e ir a la sala de servidores a mirar qué pasa (recordemos que el servidor no responde, así que tampoco debería funcionar el control remoto: no hay más remedio que levantarse).

Una vez en el cpd, se agradece haber etiquetado todos los servidores, y más aún ver que el servidor dns no tiene la luz encendida… ¿¡está apagado!? Pues sí, ese es el problema.

Después de encenderlo y comprobar que todo vuelve a la normalidad, después de este acto casi heroico que ha requerido de esta infinidad de conocimientos técnicos (léase, apretar el botón de encendido), toca ver qué ha pasado.

En los logs de Windows del "Event Viewer " del servidor, dentro de "System Logs " se podrá observar cuándo se apagó y cuando ha vuelto a encenderse. Por ejemplo, el último evento registrado en los logs antes de apagarse, dice "The Event log service was stopped ". Mirando un poco antes, se observa como se van deteniendo algunos servicios hasta que se llega a una entrada que tiene como origen "Windows Update Agent ". Examinando dicha entrada, se aprecia la siguiente descripción:

Restart Required: To complete the installation of the following updates, the computer will be restarted within 5 minutes:
– Cumulative Security Update for Internet Explorer 6 Service Pack 1 (KB963027)
– Security Update for Windows 2000 (KB959426)
– Security Update for Windows 2000 (KB923561)
– Windows Malicious Software Removal Tool – April 2009 (KB890830)
– Security Update for Windows 2000 (KB960803)
– Security Update for Windows 2000 (KB952004)

¡Fantástico! Las actualizaciones de Windows, estaban configuradas como automáticas, con permisos de descarga e instalación gestionados por Windows Update… Así que con la última publicación de las actualizaciones de Windows, el servidor se ha descargado e instalado dichas actualizaciones, con el posterior reinicio. ¿Reinicio? ¿Por qué no se ha reiniciado el PC? ¿Porqué se ha apagado directamente?

Una vez detectada la causa (otra cosa es ver quien o qué ha cambiado esto), es turno de la solución. Simplemente se vuelven a dejar las actualizaciones de Windows con permisos de descarga pero no de instalación, o si se dispone de algún programa de gestión centralizada de parches, pues entonces ni eso.

Flickr! Foto por herby_fr

Windows XP en disco SATA

ProblemasDesde que mi hermano se compró su actual ordenador (con Windows Vista pre-instalado) no ha dado más que problemas, tanto de reconocimiento de drivers, de incompatibilidades con programas, y un largo etcétera.

Varias veces probé de instalarle Windows XP sin suerte, ya que el PC en cuestión trae discos SATA que no reconoce mi CD de instalación de XP SP2.

Por fin, ayer lo conseguí, así que resumo aquí los pasos que seguí (de este fantástico tutorial ):

  1. Descargar e instalar el programa nLite
  2. Desde la administración de dispositivos de Windows Vista, anotar los drivers concretos del disco SATA que usa.
  3. Con esta información, descargar los drivers del disco SATA para Windows XP
  4. Ejecutar nLite y seguir los pasos del tutorial, para volcar el contenido del CD de Windows XP al disco duro
  5. Desde nLite, seleccionar los drivers del disco SATA y posteriormente añadir los drivers concretos (anotados en el punto 2) en el volcado que se ha hecho de Windows XP
  6. Finalizar con nLite creando una imagen con el Windows XP con los drivers SATA incluidos.

Ahora podremos instalar Windows XP en nuestro PC con disco SATA sin problemas.

Flickr! Foto por gaelx

W2K8 Server con VMWare

Hoy tocaba instalar Windows Server 2008 sobre una VMWare Server 1.0.5.

Lo primero ha sido pedir una versión de evaluación de Windows Server 2008 en TechNet , que nos permitirá disponer de una versión totalmente funcional durante 180 días. 1,86GB para servidores de 32 bits. Descargas directa.

Posteriormente ha tocado crear una nueva máquina virtual sobre VMWare para alojar el sistema operativo. El problema ha sido que VMWare únicamente tiene preestablecidos los parámetros de servidor para Windows 2003 Server: seleccionamos pues Windows 2003 Server Enterprise y creamos la máquina virtual.

Instalamos el SO y funciona a las mil maravillas, excepto por el hecho de que no reconoce la ethernet. Buscando por Internet encuentro que hay que modificar levemente (con la máquina virtual apagada) el archivo de configuración de la máquina virtual (el .vmx) añadiéndo la siguiente línia:

ethernet0.virtualDev = «e1000»

Una vez hecho esto, ya podemos iniciar la máquina virtual con Windows Server 2008 funcionando a la perfección como guest sobre una VMWare 1.0.5 sobre el flamante Ubuntu Server 6.06 LTS.

¿Cómo está tu MailServer?

MailLlego a mxtoolbox, una web muy útil que nos sirve para indicarnos a que IP resuelve un determinado dominio para su registro MX, es decir, a qué IP irá un correo que enviamos para este determinado dominio.

A parte de esta funcionalidad, que podríamos ejecutar directamente desde la línea de comandos, también nos ofrece un par de servicios si cabe, más interesantes todavía: diagnóstico de nuestro smtp y blacklists. Especialmente interesante el segundo, que consulta si el dominio en cuestión aparece catalogado como spammer en alguna de las 124 blacklist a las que consulta, dando asesoramiento gratuito de cómo actuar en caso de aparecer como tal.

Flickr! Foto por e³°°°

VMWare brigde error

Hoy voy a comentar un problema que me he encontrado configurando una máquina virtual Windows 2003 Server en VMWare Server sobre un Ubuntu Server 8.04 LTS. Básicamente aparecía el siguiente error al iniciar la máquina virtual configurada para conectar en modo «Brigde» (funcionando tanto el modo NAT como el modo «host only»):

Error: «The network bridge on device /dev/vmnet0 is temporarily down because the bridged Ethernet interface is down. The virtual machine may not be able to communicate with the host or with other machines on your network.»

El problema se ha identificado intentando reconfigurar la máquina virtual (con el guest apagado, claro).

[…]

root@Terran:~# vmware-config.pl
Do you want networking for your virtual machines? (yes/no/help) [yes]
Would you prefer to modify your existing networking configuration using the wizard or the editor? (wizard/editor/help) [wizard] editor

The following virtual networks have been defined:

. vmnet0 is bridged to eth0
. vmnet1 is a host-only network on private subnet 172.16.120.0.
. vmnet8 is a NAT network on private subnet 192.168.10.0.
[…]

De la anterior «captura» nos hemos dado cuenta que que vmnet0 estaba asignado a la eth0, así que se ha decidido comprobar si realmente estabamos usando esta eth0 en el host:

root@Terran:~# ifconfig

eth1 Link encap:Ethernet HWaddr 00:50:bf:5a:a6:e7
inet addr:10.10.12.11 Bcast:10.10.12.255 Mask:255.255.255.0
inet6 addr: fe80::250:bfff:fe5a:a6e7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:563969 errors:0 dropped:0 overruns:0 frame:0
TX packets:475524 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:299505491 (285.6 MB) TX bytes:416600924 (397.3 MB)
Interrupt:16 Base address:0xd800

Efectivamente, VMWare ha configurado por defecto (seguramente por hacer la configuración del mismo sin pararse a leer todos los puntos) la salida Bridge con una interfaz que no era la eth1 que estábamos usando (nuestro servidor tiene más de una tarjeta de red). Hemos reconfigurado este punto en VMWare de la siguiente manera:

Do you want networking for your virtual machines? (yes/no/help) [yes]

Would you prefer to modify your existing networking configuration using the wizard or the editor? (wizard/editor/help) [wizard] editor

The following virtual networks have been defined:

. vmnet0 is bridged to eth0
. vmnet1 is a host-only network on private subnet 172.16.120.0.
. vmnet8 is a NAT network on private subnet 192.168.10.0.

Do you wish to make any changes to the current virtual networks settings?
(yes/no) [no] yes

Which virtual network do you wish to configure? (0-99) 0

The network vmnet0 has been reserved for a bridged network. You may change it, but it is highly recommended that you use it as a bridged network. Are you sure you want to modify it? (yes/no) [no] yes

What type of virtual network do you wish to set vmnet0?
(bridged,hostonly,nat,none) [bridged]

Configuring a bridged network for vmnet0.

Your computer has multiple ethernet network interfaces available: eth1, vmnet1,
vmnet8, eth0. Which one do you want to bridge to vmnet0? [eth0] eth1

The following virtual networks have been defined:

. vmnet0 is bridged to eth1
. vmnet1 is a host-only network on private subnet 172.16.120.0.
. vmnet8 is a NAT network on private subnet 192.168.10.0.

Do you wish to make additional changes to the current virtual networks settings? (yes/no) [yes] no