Suspendiendo procesos
23 Octubre, 2007
No… no se trata de ponerles mala nota a los procesos, se trata de pausar momentáneamente la ejecución de un proceso y reanudarla más tarde.
Esto puede ser útil en varios casos:
- Uno de tus programas empieza a hacer “trashing” y necesitas realizar alguna acción urgente con el PC.
- Tienes una aplicación que lleva 5h realizando cálculos, pero que usa el 100% de tu CPU y necesitas pausarlo para realizar otras acciones.
- Estás compilando una aplicación y no quieres tener que parar el proceso para ponerte ha jugar (te ha entrado mono
Y cualquier otra situación que se te ocurra, la idea es siempre la misma, pausar un proceso que consuma muchos recursos para realizar otras tareas que necesitan menos tiempo, pero necesitan ejecutarse AHORA.
En linux podemos suspender un proceso mediante dos sencillos métodos.
Con kill:
kill -STOP PID
Por ejemplo:
#kill -STOP 39584
Para continuar con la ejecución:
kill -CONT 39584
Otro método es utilizando ctrl+z, si estás ejecutando el programa en la shell actual. Verás que aparece algo como:
[1]+ Stopped top
Para recuperarlo tan sólo tienes que ejecutar el comando “fg”.
Esto también es posible en sistemas windows, pero necesitaremos una aplicación adicional. Hay varias, pero una llamada de forma original como “Command Line Process Viewer/Killer/Suspender” está bastante bien y es gratuita.
Migrar de PHP4 a PHP5
25 Julio, 2007
Dado que ya tiene fecha para el funeral nuestro querido PHP4 me decidí a migrar el servidor a PHP5. La instalación se hizo en un par de minutos gracias a la colaboración de Debian y Aptitude. PHP5 viene con el soporte para MySQL desactivado así que había que activarlo en php.ini
Llegaba el momento de comprobar el resultado, todas las webs iban bien menos una (siempre tiene que haber alguien para joder la marrana), daba problemas con los Warnings. Según parece PHP4 viene con estos avisos desactivados mientras que PHP5 si los muestra. La solución era fácil, editar el php.ini.
Después de esto y algunos pequeños cambios más en el archivo de configuración (a gusto del consumidor) la migración ha sido un éxito, supongo que en parte porque casi todas las webs se basan en scripts precocinados y preparados para PHP5 aunque el único problema seria con los TAGS de PHP.
Error con php y magic.mime
9 Junio, 2007
Recientemente he actualizado mi distribución debian (unstable) y ahora al ejecutar cualquier script php siempre aparece el siguiente error:
PHP Warning: mime_magic: type search/400 \\input text/x-tex invalid in Unknown on line 0
PHP Warning: mime_magic: type search/400 \\section text/x-tex invalid in Unknown on line 0
PHP Warning: mime_magic: type search/400 \\setlength text/x-tex invalid in Unknown on line 0
PHP Warning: mime_magic: type search/400 \\documentstyle text/x-tex invalid in Unknown on line 0
PHP Warning: mime_magic: type search/400 \\chapter text/x-tex invalid in Unknown on line 0
PHP Warning: mime_magic: type search/400 \\documentclass text/x-tex invalid in Unknown on line 0
PHP Warning: mime_magic: type regex [Cc]onstant[[:space:]]+[Ss]torytext/x-inform invalid in Unknown on line 0
La solución es bien sencilla, hay que ir al fichero /usr/share/file/magic.mime y comentar las siguientes líneas (ponerle un # delante):
#0 search/400 \\input text/x-tex
#0 search/400 \\section text/x-tex
#0 search/400 \\setlength text/x-tex
#0 search/400 \\documentstyle text/x-tex
#0 search/400 \\chapter text/x-tex
#0 search/400 \\documentclass text/x-tex
Y esta:
#0 regex [Cc]onstant[[:space:]]+[Ss]tory text/x-inform
Una vez guardado el archivo ya no ocurrirá más.
Forzar la tarjeta de red ethernet a 10Mbps
2 Junio, 2007
Las tarjetas de red suelen soportar varios modos, 10Mbps HD (Half Duplex), 10Mbps FD (Full Duplex), 100Mbps HD, 100Mbps FD, etc. Por defecto siempre utilizan el modo más alto que consiguen negociar con el enlace, que puede ser otro PC, un HUB o un Switch. Salvo que tengamos algún problema no necesitaremos forzar la tarjeta de red a alguno de estos modos, ella sola se ajustará al que más convenga.
En linux podemos forzar alguno de estos modos utilizando la herramienta ethtool o mii-tool. La primera, ethtool, permite muchísimas más opciones, pero para cambiar únicamente el modo de funcionamiento de la tarjeta prefiero mii-tool, que es mucho más sencilla, tiene menos opciones, pero es mucho más fácil de usar. Ni siquiera es necesario especificar el interfaz.
Para configurar la tarjeta de red en modo 10Mbps FD sólo tenemos que poner:
# mii-tool -A 10baseT-FD
Y automáticamente negociará con el enlace el modo de 10Mbps FD. También tenemos disponibles los demás modos: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD, 100baseTx y 10baseT.
El Efecto Antena 3
27 Febrero, 2007
La gente habla del efecto barrapunto cuando este sitio publica una noticia, ya que ésta genera una gran cantidad de tráfico en los sitios a los que referencia dicha noticia y puede llegar a dejar KO el servidor dónde se aloja el origen de la noticia. Pero no sólo existe ese efecto, también es conocido el efecto Slashdot, el efecto Digg (ambos son de lo más temibles) o el efecto Menéame. Pues bien, a mi me toca hablar del “Efecto Antena 3″ o más en concreto debería decir “El efecto de 1 contra 100″.
Aparte de este sitio también tengo “algo que ver” en sabiask.com, pues bien, el viernes pasado recibí alrededor de 400 visitas en un corto intervalo de tiempo mediante búsquedas similares a “la película más larga“, desde google.es. En concreto, 367 de estas visitas llegaron entre las 20:55 y las 21:05.
No sabía a qué se debía esta cantidad de visitas hasta que hace un rato me he encontrado casualmente con este post en el foro de EOL. En él, un usuario comenta que lo vio (la pregunta de ¿Cual es la película más larga?, me imagino) en el programa “1 contra 100” que emite Antena 3.
Impresionante, también, el efecto de la televisión.
Escritorio remoto con VNC
24 Enero, 2007
Actualmente es bastante frecuente dejar un PC casero encendido las 24h, descargando cosas, haciendo de servidor http o incluso, para utilizarlo desde cualquier parte del mundo como si estuvieras en tu casa, gracias a VNC.
Hay básicamente dos formas de utilizar un escritorio remoto, de forma compartida (almenos en linux) o de forma dedicada. Es decir, podemos hacer que nuestra sesión de X (o de Windows) sea compartida y otros usuarios puedan conectar a ella o podemos iniciar un escritorio al que únicamente se podrá acceder via vnc (hasta dónde yo sé esto sólo es posible en linux).
Para el primer caso, si queremos compartir nuestro actual escritorio, podemos utilizar x11vnc (apt-get install x11vnc en linux). Iniciamos el entorno gráfico (el que sea, kde, gnome, xfce, fluxbox … ) y abrimos una consola, para escribir:
x11vnc -storepasswd
Nos preguntará por una contraseña y nos dirá si la queremos guardar, introduciremos una contraseña y diremos que sí a guardar. Por defecto la guardará en ~/.vnc/passwd así que usaremos ese archivo en el siguiente comando:
x11vnc -rfbauth ~/.vnc/passwd
¡Ya está! ¡Así de fácil! Tenemos el entorno X actual disponible para acceder desde cualquier PC conectado a internet (eso sí, procura tener mapeado el puerto 5900 en tu router). Ahora sólo necesitas el visor, que puedes encontrar en la web oficial de vnc o puedes instalarlo via tu sistema de paquetes favorito (en debian apt-get install xvncviewer).
Ahora sólo te queda ejecutar el xvncviewer e indicar la ip y el escritorio, que por defecto es el 0. Si el PC donde está compartido el escritorio tiene la ip 192.168.0.4 pues pondrás en el xvncviewer 192.168.0.4:0
Si lo que quieres es crear un nuevo entorno gráfico dedicado a vnc entonces tendrás que instalar vnc4server (apt-get install vnc4server) y hacer lo siguiente:
vncpasswd
vnc4server -depth 16 -geometry 1024×768
Con el parámetro depth indicas la profundiad de color y con geometry la resolución del nuevo escritorio. Al ejecutar este comando verás algo parecido a esto:
New ‘hostname:2 (usuario)’ desktop is hostname:2
El “:2″ es el número de escritorio, es lo que tendrás que utilizar cuando lances el xvncviewer y además, mapear el puerto 5900+2 en el router, es decir, el 5902.
Para cerrar un servidor vnc sólo tienes que hacer vnc4server -kill :2 (o el número que sea).
Si se puede leer, se puede copiar
16 Enero, 2007
Es algo obvio, trivial, para mi y para cualquiera, si un sonido se puede reproducir, también se podrá copiar, si un vídeo se puede reproducir, también se podrá copiar, si un disco con un determinado software se puede leer, también se podrá copiar.
¿Por qué siguen gastando ingentes cantidades de dinero para intentar hacer algo que es imposible, por pura lógica?
Esto viene de las últimas noticias que estoy leyendo, sobre la copia de las primeras películas HD-DVD, la copia de los juegos de Wii y Game Cube y por supuesto, también los de Sony (PS3). Lo mejor de todo es cómo lo han hecho, con un mínimo esfuerzo, almenos en los casos de los juegos de Sony y en los HD-DVD, que son los que más me he informado.
Resulta que puedes copiar un juego de PS3 simplemente instalando Linux y utilizando el conocido comando dd de forma habitual, lo cual es de risa. Millones invertidos en buscar métodos para que los discos no puedan ser copiados para que luego, con un simple comando, que cualquier usuario medio de Linux conoce, se puedan copiar.
Con el HD-DVD pasa algo parecido, una gran cantidad de recursos se ha invertido para desarrollar el AACS para que luego, un usuario indignado por no poder reproducir correctamente su película en su monitor, al no disponer de HDCP (sí, quieren proteger hasta las conexiones), se ponga a investigar y logre copiar la película directamente en su disco duro utilizando un pequeño programa en Java (y algo de maña en buscar las claves que decodifica un reproductor oficial, en memoria). Además, todo el trabajo de conseguir la clave de la película se lo hace un programa reproductor de HD-DVD. Lo cual también es bastante obvio, en algún punto, el programa necesitará trabajar con la clave de decodificación y la guardará en memoria, la cual podrá ser investigada con un debugger. Por lo tanto, es inútil tanta encriptación, en algún momento, algún aparato o software, tendrá que decodificar la película y ese aparato o software será manipulable.
Al fin y al cabo, lo único que se consigue poniendo todas estas trabas es que el usuario final, el que compra la película, acabe teniendo un producto de menor calidad que el que puede conseguir bajándose de internet, libre de sistemas anti copia, que podrá reproducir dónde más le guste y convertirlo al formato que prefiera, para poder ver su peli favorita incluso en su reproductor de vídeo portátil o hasta en el móvil.
La sala de los HORRORES
7 Enero, 2007
¿Estáis listos para entrar en la sala de los Horrores? ¿Seguros? No habrá marcha atrás y lo que vais a ver se os fundirá en las retinas para siempre…
Backups de webs remotas con rsync y SSH
12 Octubre, 2006
Después de conseguir acceder por SSH a un servidor remoto de manera completamente automática usando autentificación por claves podemos usar esa ventaja para realizar backups de nuestras webs alojadas en servidores remotos. Solo nos hace falta que el servidor tengo instalado rsync (aparte de tener acceso mediante SSH, claro).
La manera más fácil es crear un simple script en bash y ejecutarlo automáticamente con cron.
En la variable DATE guardamos la fecha actual, la usaremos para no sobreeescribir la base de datos y tener una copia de cada dia. Luego en HOST guardamos los datos de conexión SSH y en RUTA el directorio (local) donde queremos guardar la copia de los archivos de la web.
Luego, mediante rsync, sincronizamos los archivos y antes de sobrescribir o borrar un archivo en el PC destino lo guardamos en una carpeta con la fecha por si acaso. Después volcamos la base de datos con mysql. Entonces volveremos para copiar el archivo que hemos creado en el paso anterior y para acabar comprimimos en gzip el archivo SQL para ahorrarnos espacio en el disco (antes hemos usado la compresión en rsync para ahorrar transferencia).
Ahora pasamos a meter el script en cron para no volvernos a preocupar de el.
chmod +x backup
ln -s backup /etc/cron.daily/backup
No hay que olvidar de cambiar las variables HOST, RUTA y los datos de usuario, contraseña y nombre de la base de datos del backup con mysqldump.
Comprobar el mail pop3 desde telnet
12 Octubre, 2006
Estás en un pc pero, ¿no tienes ningún cliente de correo a mano? y además… ¿tu cuenta de correo no tiene webmail? no estás perdido, siempre puedes utilizar el método pr0 para acceder a tus e-mails, con una consola telnet.
En Windows puedes hacer Inicio > Ejecutar > telnet y en Linux puedes escribir “telnet” en cualquier shell. Seguidamente te aparecerá el prompt de telnet y allí podrás escribir “open direcciondetuservidor.com pop3″.
Tras escribir eso verás algo como:
+OK Hello there.
Entonces escribes USER seguido de tu nombre de usuario:
USER user@email.dom
Aparecerá:
+OK Password required.
Entonces escribes PASS y seguidamente tu contraseña:
PASS unapassword
Si todo ha ido bien aparecerá:
+OK logged in.
Ahora puedes hacer “LIST” para ver la lista de mensajes, “RETR nummensaje” para ver un mensaje, “TOP nummensaje lineas” para ver un determinado número de líneas de cierto mensaje, “DELE nummensaje” para borrar un mesaje, “RSET” para marcar los mensajes como no leídos y “QUIT” para salir.
Por fin podrás leer tus correos como un pr0.