Disponemos de un servidor remoto Linux con acceso por SSH y TeamViewer, pero recientemente nos aparecía como desconectado en Teamviewer, por lo que tuvimos que activar Teamviewer por comandos a través de SSH siguiendo estos pasos:
Leer más...Solucionar error Linux BUG: soft lockup - CPU stuck
Tenemos un servidor remoto con Ubuntu 18.04 Mate y nos encontramos que en muchas ocasiones al reiniciarlo desde SSH perdemos la conexión.
Al acceder físicamente al equipo vemos que está mostrando por pantalla varias veces un error similar a este:
watchdog: BUG: soft lockup - CPU#6 stuck for 22s! [plymouthd:7117]

Parece ser un problema con los drivers de la tarjeta gráfica NVIDIA por usar los drivers libres, así que veremos los pasos a seguir para usar los drivers propietarios y solucionar el problema.
Leer más...Cambiar esquema de color htop
Es posible que al conectar por SSH y hacer htop no se vean los totales y porcentajes de uso de memoria y procesador, como podemos ver en esta imagen:

Esto es por la forma en la que terminal muestra el color gris, tal y como explica su autor en stackoverflow.
Podemos arreglarlo de dos maneras diferentes para obtener este resultado:

Cambiar codificación del contenido de ficheros en Linux
Ya hemos visto anteriormente como cambiar la codificación del nombre de ficheros en Linux Ahora veremos como cambiar la codificación de su contenido con la ayuda del comando iconv. La mayoría de las veces el cambio que necesitaremos será de LATIN1 a UTF8 o viceversa.
Primero debemos saber la codificación actual del archivo con el comando file:
file archivo.php
archivo.php: PHP script, ISO-8859 text
Vemos que es ISO-8859, que corresponde a LATIN1.
Comprobamos con iconv -l las posibles codificaciones que soporta, y vemos que ISO-8859 exactamente no está, pero sí ISO-8859-1, ISO-8859-2, etc. Usaremos ISO-8859-1 que corresponde a LATIN1. Para pasarlo a utf8 usaremos:
iconv -f ISO-8859-1 -t utf8 archivo.php -o archivo-nuevo.php
- -f: --from-code, la codificación actual del fichero
- -t: --to-code, la codificación que deseamos tener
- -o: --output, el fichero con la nueva codificación. Si ejecutamos el comando sin este parámetro mostrará el fichero por pantalla pero no hará nada con él.
En el ejemplo también podriamos haber usado LATIN1 en lugar de ISO-8859-1 para hacer la conversión.
En github tenemos un script muy útil para cambiar la codificación de ficheros html, php, css y js recursivamente, borrando el original:
find ./ -name "*.php" -o -name "*.html" -o -name "*.css" -o -name "*.js" -type f |
while read file
do
echo " $file"
mv $file $file.icv
iconv -f ISO-8859-1 -t UTF-8 $file.icv > $file
rm -f $file.icv
done
Podemos modificarlo facilmente para otras extensiones de archivo.
Codificación de acentos HTML
Otro problema habitual lo tenemos con el html interpretando mal los acentos.
En estos casos cambiaremos las vocales acentuadas y ñ por sus equivalentes HTML:
find . -type f -name '*php' -exec sed -i 's/á/\á/g' {} +
find . -type f -name '*php' -exec sed -i 's/é/\é/g' {} +
find . -type f -name '*php' -exec sed -i 's/í/\í/g' {} +
find . -type f -name '*php' -exec sed -i 's/ó/\ó/g' {} +
find . -type f -name '*php' -exec sed -i 's/ú/\ú/g' {} +
find . -type f -name '*php' -exec sed -i 's/ñ/\ñ/g' {} +
También puede ayudarnos el comando recode:
echo 'avión' | recode ..html
avión
echo 'avión' | recode html/..
avión
Auditoria de archivos en Samba Linux
Actualización: Desde la versión de samba 4.13.14 de noviembre de 2021 en Ubuntu 20.04, se cambió el nombre de algunas operaciones (como mkdir por mkdirat), por lo que el contenido del fichero audit.conf daba problemas: registraba el error "Could not find opname" en el log especifico del equipo cliente samba y registraba TODAS las operaciones realizadas, por lo que en poco tiempo el audit.log ocupaba gigas. Hemos actualizado el artículo con la sintaxis correcta.
Si tenemos un servidor de archivos donde se manejan datos personales, con la entrada en vigor del RGPD (la nueva LOPD), es obligatorio mantener un registro de actividad de los usuarios: debemos saber cuando y quien accede a cada archivo y qué hace con él.
Para esto podemos añadir a Samba el módulo vfs_full_audit. Esto es un VFS (Stackable VFS Modules), que son módulos que añaden funcionalidades extra a Samba desde la versión 3, como este full_audit, que nos permite registrar toda la actividad de los usuarios Samba.
Vamos a ver como activarlo:
Probar conexión JDBC a MySQL desde línea de comandos Linux
Podemos probar facilmente una conexión JDBC a MySQL desde línea de comandos siguiendo estos pasos:
Descargar sqlline y descomprimir:
tar xvf jline-sqlline-mysql-connector.tgz
cd jline_sqlline__mysql_connector
Ejecutamos sqlline:
java -Djava.ext.dirs=. sqlline.SqlLine
Ahora estamos dentro de la consola de sqlline, y podremos probar la conexión así:
!connect jdbc:mysql://hostname:port/db username password
Por ejemplo:
!connect jdbc:mysql://localhost:3306/appbd?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true appuser apppassword
Connecting to jdbc:mysql://localhost:3306/appbd?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
Connected to: MySQL (version 5.6.39)
Driver: MySQL-AB JDBC Driver (version mysql-connector-java-5.1.17-SNAPSHOT ( Revision: ${bzr.revision-id} ))
Autocommit status: true
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:mysql://localhost:3306/appbd>
Saldremos con el comando !closeall.
Fuente:
Buscar y reemplazar en VIM desde Linux
Para buscar y reemplazar una cadena de texto en VIM, el editor de línea de comandos de Linux, debemos pulsar los dos puntos (:) para acceder al modo de comandos y escribir una línea como la siguiente:
1,$ s/viejo/nuevo/g
En este ejemplo buscaría dentro del fichero la cadena "viejo" y la sustituye por "nuevo".
Cambiar color de directorios al hacer un ls desde comandos Linux
Al listar el contenido de un directorio desde línea de comandos en Linux con ls, los directorios se muestran en un color azul oscuro que hace muy difícil identificarlos.
Podemos cambiar este color de la siguiente manera:Leer más...
Añadir fecha de ejecución a comando history
El comando history nos muestra un listado de todos los comandos introducidos con nuestro usuario.
Una opción muy útil es añadir a ese listado la fecha y hora en la que se introdujo cada comando.
Podemos hacerlo para todos los usuarios en (/etc/bashrc en CentOS, /etc/bash.bashrc en Ubuntu) o para usuarios concretos en ~/.bashrc añadiendo esto al final:
export HISTTIMEFORMAT='%F %T : '
%F muestra la fecha en formato de año-mes-día. Podemos cambiarlo por %d-%m-%Y para poner por separado día, mes y año respectivamente.
%T es la hora en formato hora-minuto-segundo de 24 horas.
Para borrar el listado de comandos entero, usaremos history -c.
Para borrar un comando en concreto, hacemos un history, miramos su ID y lo podremos borrar con history -d ID.
Activar log de mysql en Linux
Pulsa aquí si quieres saber como activar el log de MySQL en Windows con WAMP.
Vamos a activar el log de MySQL en un servidor Linux, concretamente en Ubuntu 16.04, para que queden registradas todas las consultas realizadas a las bases de datos en un archivo.
Activar log MySQL de forma permanente
Para activar el log de MySQL de manera que siga activado tras reiniciar el servidor, debemos hacerlo editando el fichero de configuración de la MySQL:
Leer más...