Ver el progreso de un dd

¿Cuantas veces estás copiando una imagen o directamente un disco duro y no tienes la idea de cuanto tiempo va a durar la tarea? el dd es el “en la informática sabes cuando empiezan las cosas pero no cuando terminan” en toda regla.
Con esto, vas a seguir igual, pero al menos puedes hacer algunos cálculos para hacerte una idea de cuando va a terminar :P

Vamos a usar pv, pipe viewer, que es una herramienta para monitorizar el progreso de los datos a través de un pipe. Lo podemos insertar tal cual como un pipe o entre dos procesos para obtener un indicador visual de la velocidad con la que están pasando los datos y así realizar una estimación para que termine la tarea.

Primero lo instalamos

# apt-get install pv

Y ahora por ejemplo, queremos clonar un disco a otro disco

# dd if=/dev/sda | pv | dd of=/dev/sdb

La salida sería algo similar a esto

1,74MB 0:00:09 [ 198kB/s] [      <=>                               ]

También lo podríamos usar en la salida de un comando

root@carboni:/home/laura/isos# pv kali-linux-2016.1-amd64.iso |md5sum
12MiB 0:00:03 [ 217MiB/s] [=============================] 25% ETA 0:00:08

Fuente: askubuntu

Gracias Josep Vergés por el reto ;)…

Proxmox + nat + iptables

Acabo de contratar un servidor en un datacenter y sólo me dan una sola ip.
Como me gusta tener los servicios separados y todo bien ordenadito le he instalado proxmox 4, con soporte LXC, pero necesito que el host se comunique con los contenedores de alguna forma.

Lo que vamos a crear va a ser una interfaz virtual nueva, donde crearemos nuestra subred y luego redigiremos los puertos con iptables. Esto es lo que se llama hacer nat y redirección de puertos :P…

Compartir una sesión de terminal con screen

A veces es necesario que dos usuarios conectados remotamente accedan a la misma sesión, sea para realizar juntos una configuración o para que uno le muestre al otro como hacer alguna cosa.
Una herramienta super cómoda será screen.

El usuario que va a crear la terminal compartida ejecuta el siguiente comando para iniciar la sesión de screen y nombrarla (mySharedSession en este caso).

$ screen -d -m -S mySharedSession

El siguiente paso radica en unir la terminal del usuario a la sesión compartida de screen mediante la ejecución del siguiente comando que debe ser ejecutado por todos los usuarios incluyendo al creador de la sesión ya que esta se crea inicialmente separada de su terminal actual.

$ screen -x mySharedSession

En cualquier momento es posible listar las sesiones de screen disponibles mediante la ejecución del siguiente comando.

$ screen -ls

Salir y terminar sesiones

Para salir de una sesión compartida sin destruírla es necesario ejecutar la siguiente combinación de teclas: CTRL+a d.

Para salir de una sesión destruyéndola se puede utilizar el comando exit (cierre brusco) o la combinación de teclas CTRL+a k (cierre limpio) la cual es equivalente a CTRL+a :kill. Debe tener en cuenta que la destrucción de la sesión afecta a todos los usuarios que se encontraban conectados a ella.

Fuente: Jorgeivanmeza

Renombrar fichero que empieza con guión “-“

Al ejecutar un comando se me ha creado un fichero llamado “–logpriority” y al borrarlo me decía

root@blackhold:/etc/pve/lxc# rm "--logpriority" 
rm: unrecognized option '--logpriority'
Try 'rm ./--logpriority' to remove the file ‘--logpriority’.
Try 'rm --help' for more information.
root@blackhold:/etc/pve/lxc# mv "--logpriority" lala
mv: unrecognized option '--logpriority'
Try 'mv --help' for more information.

Con y sin comillas me soltaba este error, la solución ha sido hacer esto:

root@blackhold:/etc/pve/lxc# mv ./--logpriority lala
root@blackhold:/etc/pve/lxc# ls
100  100.conf  101  101.conf  102  102.conf  lala
root@blackhold:/etc/pve/lxc# rm lala

Y listos!…

Mailman: Scripts para moderar usuarios en las listas

Tengo algunas listas en las que no me interesa activar la moderación de emergencia y simplemente quiero sólo moderar los mails que mandan los usuarios en la lista y permitir así que algunos si puedan mandar y otros no.

He tratado de realizar esto a través de Opciones de privacidad Filtro de Remitente default_member_moderation a Si y los usuarios siguen pudiendo mandar mails… así que he tenido que buscar otra solución y buscando un poco he encontrado una pequeña sorpresilla, y es que puedes crear tus scripts para mailman y ejecutarlos con el comando withlist!
Nota: Ahora entiendo esto!!! se refiere a las nuevas subscripciones a la lista! gññññ estas traducciones!!!

Como no soy muy experta en python he usado un script que he encontrado en un foro y lo he adaptado un poquitín con bash! :)…

Ping: icmp open socket: Operation not permitted

En un server proxmox beta me encuentro que no puedo hacer ping como un usuario no root, ya que me sale éste error:

blackhold@intxur:~$ ping google.com
ping: icmp open socket: Operation not permitted

El motivo es que para abrir sockets tienes que ser root. Para poder ejecutar ping y abrir sockets se tiene que definir el bit SUID para éste comando. Este problema suele aparecer cuando hay usuarios dentro de una jaula, en algunos sistemas se define por defecto, pero en otros no.

root@intxur:/home/blackhold# ls -la /bin/ping
-rwxr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping

La solución es añadir el +s a ping

root@intxur:/home/blackhold# chmod u+s /bin/ping

y la cosa queda así:

root@intxur:/home/blackhold# ls -la /bin/ping
-rwsr-xr-x 1 root root 44104 Nov  8  2014 /bin/ping

Borrar ficheros mas antiguos de 30 días

Find es una interesante herramienta que permite pasarle multitud de argumentos, incluso otro que permite ejecutar otro comando.
Nos encontramos con el directorio data de mailman en los que hay mogollón de mensajes retenidos a la espera de moderación y queremos hacer un poco de limpieza. Así que vamos a borrar los retenidos mas viejos de 30 días.

tesla:/var/lib/mailman/data# find ./*.pck -mtime +30 -exec rm {} \;

-mtime es para indicarle los ficheros mas antiguos de x días…

Ver la ram que consume cada proceso en modo humano

Para ver cuando consume cada proceso/programa de forma entendible, muy útil para identificar rápidamente qué se nos está comiendo la RAM de nuestra maquina.

ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }'

Replicar un servidor de DNS de un maestro a un esclavo

Tenemos que montar 2 servidores de DNS, un maestro y un esclavo, el esclavo simplemente va a recibir las actualizaciones del maestro, así que los cambios sólo los vamos a realizar al servidor de DNS maestro.

Instalamos bind en ambos equipos

# apt-get install bind9

Y creamos los ficheros de zona en /var/lib/bind/, por ejemplo el de capa8.cat…