Debian 10: Problema al hacer dpkg -i paquete.deb

Acabo de instalar mi primera debian con entorno gráfico con cinnamon y veo que le faltan bastantes cosillas

# apt -y install mate-terminal pluma glances mtr net-tools dnsutils

Y también que al hacer dpkg -i de algun paquete me suelta éste error:

# dpkg -i google-chrome-stable_current_amd64.deb 
dpkg: avís: no s'ha trobat «ldconfig» en el PATH o no és executable
dpkg: avís: no s'ha trobat «start-stop-daemon» en el PATH o no és executable
dpkg: s'ha produït un error: no s'han trobat 2 programes esperats al PATH, o no són executables
Nota: el PATH del root normalment ha de contenir /usr/local/sbin, /usr/sbin i /sbin

El motivo es que necesitamos definir los directorios donde se encuentran los binarios del sistema:

# echo 'export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin' /home/aspertic/.bashrc
# echo 'export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin' /root/.bashrc

Salimos de la sesión de terminal del usuario y la volvemos a iniciar y ta-dá!

Recuerdo que si un paquete no deja instalar las dependencias, tenemos que forzar la instalación manual con apt -f install

root@aspertic01:/home/aspertic/Baixades# dpkg -i teamviewer_14.5.1691_amd64.deb 
S'està seleccionant el paquet teamviewer prèviament no seleccionat.
(S'està llegint la base de dades… hi ha 173445 fitxers i directoris instal·lats actualment.)
S'està preparant per a desempaquetar teamviewer_14.5.1691_amd64.deb…
S'està desempaquetant teamviewer (14.5.1691)…
dpkg: problemes de dependències impedeixen la configuració de teamviewer:
 teamviewer depèn de libqt5gui5 (= 5.5) | qt56-teamviewer; tot i així:
  El paquet libqt5gui5 no està instal·lat.
  El paquet qt56-teamviewer no està instal·lat.

 [...]

dpkg: s'ha produït un error en processar el paquet teamviewer (--install):
 problemes de dependències - es deixa sense 

Ejemplo script de backup

Aquí os dejo uno de los scripts de backup que uso para hacer la copia de seguridad de los servidores con proxmox. Espero que os sea de ayuda :)

#!/bin/bash

## lmdb-backup (proxmox)
#### Loc: ******
#### OS: Debian 9 (container lxc)
#### Up: 2019/08/28 11:45 (Blackhold)

BACKUP_DIR="/mnt/hd_extern/backups_lmdb"
ID[0]="server1:x.x.x.x1"
ID[1]="server2:x.x.x.x2"

for INFO in "${ID[@]}"
do
    HOST=`echo ${INFO} |awk -F ':' '{print $1}'`
    IP=`echo ${INFO} |awk -F ':' '{print $2}'`
    BACKUP_DIR_SERVER="${BACKUP_DIR}/${HOST}"

    if [[ ! -e ${BACKUP_DIR_SERVER} ]]; then
        mkdir ${BACKUP_DIR_SERVER}
        mkdir ${BACKUP_DIR_SERVER}/daily
        mkdir ${BACKUP_DIR_SERVER}/monday
        mkdir ${BACKUP_DIR_SERVER}/15
        mkdir ${BACKUP_DIR_SERVER}/28
        mkdir ${BACKUP_DIR_SERVER}/lastmonth
    fi

    rsync -av --delete root@${IP}:/var/lib/vz2/dump/ ${BACKUP_DIR}/${HOST}/daily/dump/
    rsync -av --delete root@${IP}:/var/lib/vz2/template/ ${BACKUP_DIR}/${HOST}/daily/template/

    if [[ $(date +%e) -eq 28 ]]; then
        echo Backup final de mes
        rsync -av --delete ${BACKUP_DIR}/${HOST}/28/dump/ ${BACKUP_DIR}/${HOST}/lastmonth/dump/
        rsync -av --delete ${BACKUP_DIR}/${HOST}/28/template/ ${BACKUP_DIR}/${HOST}/lasthmonth/template/

        rsync -av --delete ${BACKUP_DIR}/${HOST}/daily/dump/ ${BACKUP_DIR}/${HOST}/28/dump/
        rsync -av --delete ${BACKUP_DIR}/${HOST}/daily/template/ ${BACKUP_DIR}/${HOST}/28/template/
    fi

    if [[ $(date +%e) -eq 15 ]]; then
        echo Backup dia 15
        rsync -av --delete ${BACKUP_DIR}/${HOST}/daily/dump/ ${BACKUP_DIR}/${HOST}/15/dump/
        rsync -av --delete ${BACKUP_DIR}/${HOST}/daily/template/ ${BACKUP_DIR}/${HOST}/15/template/
    fi

    if [[ $(date +%u) -eq 1 ]]; then
        echo Backup dilluns
        rsync -av --delete ${BACKUP_DIR}/${HOST}/daily/dump/ ${BACKUP_DIR}/${HOST}/monday/dump/
        rsync -av --delete ${BACKUP_DIR}/${HOST}/daily/template/ ${BACKUP_DIR}/${HOST}/monday/template/
    fi
done

Y lo añado en cron

root@lmdb-backup:~# vi /etc/cron.d/lmdb
# backup planets - activated on 2019-08-18 - blackhold
30 1    * * *   root    /root/scripts/backup_nodes_planet_lmdb.sh

Por supuesto, para hacer funcionar el script es necesario instalar rsync y también poner la clave pública del servidor de backups en el autorized_keys (ssh) de los servidores que queramos hacer copia de seguridad. Recomiendo fervientemente que ninguno de los servidores ni contenedores, tenga acceso directo …

Convertir pdf a jpg

Normalmente cuando tengo que editar un pdf lo abro con inkscape, pero esta vez me encuentro un pdf que son unos planos y la conversión con inkscape se lo toma con la calmísima, así que total como sólo necesito una imagen, voy a convertir el contenido del pdf a imagen y me ahorro varias horas de espera…

¿Cómo?

# convert -verbose -density 150 -trim plano.pdf -quality 100 -flatten -sharpen 0x1.0 plano.jpg

Ahora a cargarlos en el inkscape como imagen y a redimensionar a mi gusto :)

EOF…

El tiempo en la consola

Navegando por las redes sociales me he encontrado una entrada curiosa:

Brutal alias per tenir el temps a la consola:
alias weather='curl -s wttr.in | sed -n "1,7p"'

Así que me he puesto a jugar :P la ciudad por defecto que me detecta es Madrid, pero no me gusta esta geolocalización:

$ curl -s wttr.in/Barcelona | sed -n "1,7p"
Weather for City: Barcelona, Spain

    \  /       Partly cloudy
  _ /"".-.     14 – 15 °C     
    \_(   ).   ↖ 11 km/h      
    /(___(__)  10 km          
               0.0 mm 

Además lo quiero en otro idioma que no sea inglés (en catalán no se deja, snif):

$ curl -H "Accept-Language: es" -s wttr.in/Barcelona | sed -n "1,7p"
El tiempo en: Barcelona, Spain

    \  /       Parcialmente nublado
  _ /"".-.     14 – 15 °C     
    \_(   ).   ↖ 11 km/h      
    /(___(__)  10 km          
               0.0 mm 

En ésta cuenta de twitter hay mas información sobre ésta página.

Tontería del día :)…

ssmtp: mandar mails con un smtp externo rápido y fácil!

Que si exim, que si sendmail, que si la madre que los parió! configuraciones con ficheros de configuración quilométricos e inentendibles! llega la solución a vuestros problemas! ssmtp! rápido, sencillo y apto para cualquier administrador de sistemas, además que dispone de un fichero de configuración hyper corto!

Empezamos pues

# apt-get install ssmtp

Esto te va a borrar cualquier software que tengas de envío de correos electrónicos en el sistema.

Modificamos el fichero de configuración

# vi /etc/ssmtp/ssmtp.conf
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=nombre@dominio.com

# The place where the mail goes. The actual machine name is required no 
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=SERVIDOR_SMTP
AuthUser=USUARIO
AuthPass=PASSWORD
UseTLS=YES
UseSTARTTLS=YES
# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
hostname=NOMBRESERVIDOR.DOMINIO.COM

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES

Cerramos el fichero de configuración y listos (si, no hay nisiquiera servicio a reiniciar ni aplicar configuraciones!)

# echo "hola" | mail -s "test" admin@dominio.com
# mutt -a /var/log/backups/Backup_XXX-20161010.log -- admin@dominio.com

Lo primero a lo cutre y lo segundo adjuntando un mail.

Fuente: stackexchange

Notas:
Me he encontrado usando un servidor de correo que no me permitía mandar correos electrónicos si no le definía correctamente el from, para ello tendremos que modificar el fichero /etc/ssmtp/revaliases y dejarlo así:

root:info@xxx.cat:mail.xxx.cat

Luego si vamos a usar mutt en el crontab para mandar mails también se lo definimos

0  4    * * *   root /root/scripts/xxx-owncloud.sh /var/log/backups/Backup_xxx_cloud-$(date "+\%Y\%m\%d").log && mutt -a /var/log/backups/Backup_xxx_cloud-$(date "+\%Y\%m\%d.log") -e 'my_hdr From:info@xxx.cat' -s "[Backup-xxxCloud] xxx Cloud" -- info@xxx.cat

Ver el estado de la bateria por comandline

laura@carboni:~$ upower -i $(upower -e | grep 'BAT') | grep -E "state|to\ full|percentage"
    state:               discharging
    percentage:          37%
laura@carboni:~$ upower -i $(upower -e | grep 'BAT') | grep -E "state|to\ full|percentage"
    state:               charging
    time to full:        3,0 hours
    percentage:          36%

otra forma

laura@carboni:~$ acpi -V
Battery 0: Charging, 38%, 01:03:31 until charged
Battery 0: design capacity 5266 mAh, last full capacity 4733 mAh = 89%
Adapter 0: on-line
Thermal 0: ok, 53.0 degrees C
Thermal 0: trip point 0 switches to mode critical at temperature 103.0 degrees C
Cooling 0: x86_pkg_temp no state information available
Cooling 1: intel_powerclamp no state information available
Cooling 2: Processor 0 of 10
Cooling 3: Processor 0 of 10
Cooling 4: Processor 0 of 10
Cooling 5: Processor 0 of 10

Añadir fecha en el history

Modificamos el fichero .bashrc y al final añadimos lo siguiente

export HISTTIMEFORMAT="%h/%d - %H:%M:%S "

Hacemos logout y volvemos a hacer login y al escribir history éste es el resultado:

root@tesla-lists:~# history
 1778  Sep/22 - 22:15:41 w
 1779  Sep/22 - 22:15:41 last
 1780  Sep/22 - 22:15:41 w
 1781  Sep/22 - 22:15:41 history
 1782  Sep/22 - 22:15:41 vi .bashrc 
 1783  Sep/22 - 22:15:43 history

fdupes: busca archivos duplicados en un directorio

Frase típica: ¿Cómo busco los ficheros duplicados en mi ordenador para conseguir liberar un poco de espacio en el disco?

Pues muy simple, con fdupes :) el programa busca duplicados a partir del tamaño, el nombre y el hash md5.

# apt-get install fdupes

Y para que trabaje

$ fdupes -r /home/laura/Escriptori

Empieza a salir una barra de progreso y a los segundos, te saca un output con los ficheros duplicados.
Si temes que vas a tener muchos, te recomiendo guardar el output a un fichero

$ fdupes -r /home/laura/Escriptori /home/laura/duplicats.txt

Post dedicado a todos aquellos que me habéis hecho la pregunta alguna vez :P…

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…