Y allí estaba yo, haciendo equilibrios con una torre PC de más de dos kilos y medio, los alicates en la boca y alternando entre las manos el destornillador, el soporte del disipador y una caja de componentes.
– MaY, acaba de llamar Chunguez, de Ipsofatonic. Que lo que le montasteis la semana pasada ha dejado de funcionar.
Ruido blanco. Zen. No pensar. Bueno, eso y que el recado me lo da una persona con la que me llevo bien y le ha tocado la china de descolgar el teléfono. Respiro. El proyecto Ipsofatonic. Resumiendo mal y pronto, gestor del cliente A a quien no hace nadie ni puto caso en el departamento de sistemas de su casa nos contacta, para que montemos un servidor («un compartido» como siempre ha dicho en sus palabras) para un desarrollo que le va a realizar un cuarto proveedor.
La risa. Tras mucho batallar, preguntar, responder, insistir y repreguntar, se monta una instancia en cloud megamolona, con un poco de sobredimensionamiento para ir tirando cuando la cosa se vaya de madre, que nos conocemos y se le generan los accesos. Todo esto, en simultaneo con las tareas diarias que si que nos dan de comer. Y Chunguez dando por ojete, sin comunicar nada a nuestro comercial y pidiendo más y más y más.
Inciso: Hubo una muy buena hace un tiempo acerca de que Apache y PHP no aceptaba la subida de ficheros de más de trepecientos megas. Uno, que ya tiene el culo más que pelado en estas mierdas y que sabe que preguntar no lleva a ningun sitio, aumenta directamente los límites de subida y tiempo de ejecución. Total, el desarrollo no es nuestro y no pienso enfangarme en una discusión estéril acerca de quien gasta genitales más grandes. Fin del inciso.
Rumiando todo esto me siento en mi ordenador. Maqui está liado con otra mierda y no considero necesario consultarle todavía. Como ya me conozco el tema, empiezo por visitar la página de estado del servicio cloud en cuestión. Todo correcto. Una menos. Me logueo en la interfaz y la instancia aparece en servicio, fresca, lozana y gloriosa. Siguiente punto en el checklist: abro una sesión SSH.
Y funciona.
Empiezo a temblar. Esto no pinta bien. Puede ser culpa mía o pueden ser circunstancias ajenas. Si son ajenas, veré que hago. Si es culpa mía, lo de siempre. Agachar las orejas y comerme el rapapolvo. Pero vamos, a lo primero es ver que se ha roto. Dado que lo que no funciona es apache, abro un navegador a la url en cuestión y compruebo que efectivamente, no hay nadie detrás.
Comando: service apache2 status
Salida: apache2 is NOT running
Bueno, pues que solo sea esto. Un reinicio chungo de apache. Vamos al lio a ver por donde truena.
Comando: service apache2 start
Salida: apache cannot create /tmp/tmpxxxx, fatal error. Exiting. apache2 is NOT running
Wtf?
Bueno, parece que el servicio no puede escribir en /tmp/. Puede ser tema del disco duro que puede estar lleno…
Comando: df -h
Salida:
S.ficheros Tamaño Usados Disp Uso% Montado en
....
/dev/IDENTIFICADORHW 30G 6G 24G 20% /
....
Pero qué….!? Reprimo el juramento. Qué cosa más rara. Y de repente, la proverbial bombillita…. ¿será que no…?
Comando: ls -l /
Salida:
total 64
lrwxrwxrwx. 1 root root 7 ene 9 1979 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 oct 9 1979 boot
drwxr-xr-x 19 root root 3300 abr 22 1979 dev
drwxr-xr-x. 145 root root 12288 abr 28 1979 etc
drwxrwxrwx. 4 root root 4096 mar 4 1979 home
lrwxrwxrwx. 1 root root 7 ene 9 1979 lib -> usr/lib
drwx------. 2 root root 16384 ene 9 1979 lost+found
drwxr-xr-x. 3 root root 4096 mar 4 1979 media
drwxr-xr-x. 2 root root 4096 jul 19 1979 mnt
drwxr-xr-x. 7 root root 4096 jul 14 1979 opt
dr-xr-xr-x 186 root root 0 abr 18 1979 proc
dr-xr-x---. 19 root root 4096 abr 8 1979 root
drwxr-xr-x 38 root root 1220 abr 28 1979 run
lrwxrwxrwx. 1 root root 8 ene 9 1979 sbin -> usr/sbin
drwxr-xr-x. 2 root root 4096 jul 19 1979 srv
dr-xr-xr-x 12 root root 0 abr 18 1979 sys
drwxr-xr-x. 13 root root 4096 may 22 1979 usr
drwxrwxrwx. 21 apache apache 4096 oct 7 1979 var
¿¡QUE NO HAY TMP!? Repito el comando de nuevo. No puede ser posible. Bueno, a desfacer el entuerto y luego me pregunto las causas. A ver…
Comando: mkdir /tmp
Comando: chmod -R 777 /tmp
Comando: service apache2 start
Salida: * Starting web server apache2
Comando: service apache2 status
Salida: apache2 IS running
Vale, bola de partido salvada. Pero Maqui tiene que ver esto. Le llamo. Se lo enseño. Blanco se queda.
– Pero…. cómo?
– Yo qué sé. Poniendome retorcido, que desde código de aplicación hayan decidido que es buena idea calzarse los temporales borrando /tmp/ a cholón. No sé. No estoy en su mente. Aunque….
Vuelvo a teclear con la determinación de quien sabe lo que está haciendo. Verás la que se va a liar aquí.
Comando: su - _usuario_chunguez
Comando: history
Salida:
...
204 rm -R /tmp
205 sudo rm -R /tmp
...
OLE. Me levanto y me doy una vuelta por la oficina intentando asimilar la soberana burrada que he contemplado. Maqui solo puede hacer facepalm con la mano izquierda, levantar la vista, ver la pantalla y cambiar a facepalm con la mano derecha. Vuelvo a sentarme.
– Pásame el log del history, que esto es de traca. Es increible.
Y Maqui se ha lanzado a hacer su trabajo. Tres correos y una llamada después, ya tenemos la secuencia y culpable de la gañanada en cuestión. Chunguez ha decidido que era buena idea subir un fichero al servidor y descomprimirlo allí. Como no tiene ni puta idea, ha pensado que una vez descomprimido, era aún mejor idea borrar los temporales. Entendiendo por temporales TODA LA PUTA CARPETA /tmp del servidor. Y cuando ha saltado la tarea programada de reiniciar los servicios, apache, el pobre, ha hecho *pum*.
Moraleja: en las inmortales palabras de Jose Mota…. «PA QUE TOCAS»
Madre mía, Chunguez tiene más peligro que un mono con una ballesta. xD