Cuando queremos matar un proceso determinado es fácil, lo buscamos con un ps, vemos su PID y nos lo cargamos con kill.
Pero cuando queremos cargarnos todos los procesos de un demonio, que se llaman todos igual pero hay muchos corriendo, podemos ir uno a uno o hacer un pequeño bucle sobre la salida de ps, o podemos utilizar la herramienta killall que ya nos lo da hecho.
En Debian GNU/Linux no viene instalada por defecto, hay que instalar el paquete psmisc:
Para que no se nos corten por inactividad las sessiones SSH con nuestros servidores, deberemos añadirles algo así a su configuración:
/etc/ssh/sshd_config:
# No cortar: ClientAliveInterval 120 ClientAliveCountMax 5
Como cabrea tener bases de datos en latin1 y cosas así que siempre dan problemas al cambiarlas de servidor o de versión de BDD, o con los programas. Cuando aprendes eso empiezas a configurar todo en UTF8, el apache, el mysql, las locales del sistema, etc...
Y cada vez que creas una BDD en mysql este se empeña en ponerte "latin1" o "unicode_swedish_ci" ¿Swedish? ¿Que es esto? ¿Un rollo chovinista?
Después para cada tabla, incomprensiblemente, también tienes que especificar que es "utf8_unicode_ci".
¿Recordáis esos discos de vinilo que según decían algunos al escucharlos al revés se oían mensajes satánicos? :-)
Pues no sabemos si es más satánico un disco de los Accept del derecho o del revés, pero hoy os vamos a explicar como hacer eso con textos en la consola.
Con el comando rev podemos poner cualquier cadena en orden inverso, así:
$> echo "esto es una prueba"|rev abeurp anu se otse
o también:
$> cat /etc/issue.net | rev 0.5 xuniL/UNG naibeD
Tenemos el fichero prueba.txt con el siguiente contenido:
¿Que ocurre cuando se nos llena el disco y no sabemos que es lo que lo ha llenado? Tal vez sean logs descontrolados, o tal vez ficheros de correo, o...
Si preguntamos a algún amigo gafotas, lo más probable es que nos conteste esto:
find / -type d -size +1G
¡Oh! ¡Qué bueno! Diréis, ¡find me permite ver que directorios ocupan más de 1Gb!
No. Eso sólo sirve para ficheros (-type f), ya que el sistema de ficheros, como tamaño del directorio devuelve lo que ocupa en disco dicho directorio, es decir, el tamaño mínimo de bloque, por ejemplo 4Kb, siempre, contenga lo que contenga.
No os preocupéis, yo también fui víctima de la credulidad y de la vagancia, y pasaron unas horas antes de darme cuenta de mi error.
Últimamente se está poniendo muy de moda un servicio de sincronización de ficheros llamado Dropbox.
Se trata de un servicio combinado de interfaz web, protocolo webdav y un residente que se ocupa de sincronizar una carpeta con el servidor. Podemos instalar dropbox en varios ordenadores y así tener lo mismo en esa carpeta en todos ellos.
El servicio nos deja, de forma gratuita, unos 2Gb de espacio para meter lo que queramos, y entre otras características nos permite obtener enlaces públicos para los ficheros de la carpeta "Public", o compartir directorios con sólo dar la dirección de correo que debe recibirlos.
Para hacer copias de respaldo de carpetas que tengamos por el disco, por ejemplo la de los profiles de Firefox, o una copia de seguridad de nuestras facturas... podríamos recurrir a jugar con enlaces simbólicos, aunque esto no siempre funciona, y resulta un poco peligroso. Si estropeamos algo en un ordenador, lo estropeamos en todos, y realmente no queremos editar en todos, sólo tirar copias de seguridad de cada uno en su directorio correspondiente y tenerlas a salvo incluso de un incendio.
Cuando hemos estado haciendo modificaciones sobre una copia de un proyecto, un grupo de ficheros, por ejemplo un site web, con directorios con php, css, etc., al acabar, podemos no saber con exactitud que es lo que hemos estado cambiando, y ahora queremos pasarlo a producción o a otros sitios que tenemos parecidos.
Claro, si usásemos un control de versiones en condiciones, no habría problema, pero hay veces que no se tiene o no se puede.
Para ver un listado de los ficheros que hemos modificado:
#> diff --recursive --brief dir_proyecto_original dir_proyecto_modificado
Con eso obtendremos solamente el listado de los ficheros modificados, pero si además queremos ver todas las diferencias entre los ficheros originales y los nuevos, quitaremos la opción --brief:
#> diff --recursive dir_proyecto_original dir_proyecto_modificado
Podemos enviar esos dos listados por correo electrónico, junto con el nuevo tarball, para que sepan que es lo que hemos tocado.
Y todo porque quería beberme unas tildes.
Felices de nosotros nos decimos, si quiero quitar las tildes de una frase podré hacer algo así con mi buen amigo tr:
#> echo "Hólá tararí tú"|tr "áéíóú" "aeiou" Huulue tararuu tuu
¿Que es eso? Pues eso es que el malvado tr no se entiende con la codificación utf-8 de nuestra consola, y que está traduciendo internamente los caracteres con tilde, estrellándose estrepitosamente.
Para el curso de sistemas que estoy realizando he creado una guía de uso y aprendizaje de cron, el planificador de tareas típico de UNIX.
La guía contiene ejercicios aptos para dar clase con ella.
Todo el contenido del curso de sistemas está disponible aquí.
Os presento una guía de aprendizaje acompañada de ejercicios sobre el administrador de volúmenes de disco "lvm2". Le he escrito para el curso de administración de sistemas GNU/Linux que estoy desarrollando.
La guía enseña como crear y borrar volúmenes físicos, grupos de volúmenes y volúmenes lógicos, y a utilizarlos.
Por supuesto se admiten dudas, sugerencias, correciones, etc...
Todo el contenido del curso de sistemas está disponible aquí.