Notice: Undefined index: pag in /var/www/vhosts/web/version-2010/controllers/noticiasController.php on line 397
alvaroremesal.net - blog Ir a contenido
Está usando una versión antigua de su navegador. Este sitio web no está preparado para su visualización en navegadores obsoletos.
Por favor, por su seguridad, instale un navegador más actualizado y seguro.

Navegador Internet Explorer 8  Navegador Google Chrome  Navegador Mozilla Firefox
 

blog

30 jul

Identificar qué proceso tiene abierto un puerto

0 comentarios Linux , how-to

Nota rápida para que no se me olvide: si se supone que hay un puerto ocupado por un proceso, pero no se sabe qué proceso, podemos identificarlo fácilmente:

 

$ sudo nc -l $PUERTO # Esto es para confirmar que el puerto está ocupado
$ sudo lsof -Pnl +M -i6 | grep $PUERTO

 

Esto nos devuelve, por ejemplo:

 

java      13983        0   52u  IPv6 456646354       TCP *:8080 (LISTEN)

 

Y de ahí podemos sacar toda la información del proceso usando su PID (el primer número):

 

$ sudo ps aux | grep $PID



03 sep

Tarea cron cada dos semanas

1 comentario Linux , how-to

Fantástico truco de Steve Adams. Con cron podemos programar tareas por horas, días, semanalmente, mensualmente... pero, ¿cómo programar una tarea para que se ejecute cada dos semanas?

 

#----+-----+-----+-----+-----+-------------------------------------------------
#min |hour |day  |month|day  |command
#    |     |of mn|     |of wk|
#----+-----+-----+-----+-----+-------------------------------------------------
03    04    *     *     4     expr `date +%W` % 2 >/dev/null || script_a_ejecutar

 

El comando comprueba si la semana actual es par o impar, y ejecuta el comando en caso de ser par.

 

En caso de querer ejecutar el comando sólo en las semanas impares, para evitar el error de cron por un valor de retorno distinto a cero, se debe usar:

 

expr `date +%W` % 2 >/dev/null && run_my_script || true

 



26 ago

Hacer un tar desde una lista de ficheros

2 comentarios Linux , how-to

Me acaba de ocurrir: tengo un listado de ficheros en un archivo, un fichero por línea, y debo hacer un paquete con ellos. Así que pruebo lo obvio:

 

$ tar zcf fichero.tgz < lista_ficheros
tar: Rechazo cobarde a crear un archivo vacío

 

Sorpresa, a tar no le gusta recibir la lista de ficheros a empaquetar "en columna", sino que los espera "en fila". Parecía trivial fusionar todas las líneas del listado de ficheros en una sola, pero al final me llevó un rato, así que lo anoto aquí para futuras referencias:

 

$ echo `cat lista_ficheros` >> lista_ficheros_linea
$ tar zcf fichero.tgz `cat lista_ficheros_linea`

 

Esto funcionará si el fichero con la lista de archivos no contiene líneas en blanco. Si es el caso, basta con filtrar caracteres:

 

$ echo `cat lista_ficheros | cut -f2 | grep ".${X}"` >> lista_ficheros_linea
$ tar zcf fichero.tgz `cat lista_ficheros_linea`

 

 



24 ago

Test de memoria

0 comentarios Linux , how-to

A veces tenemos un equipo que se cuelga frecuentemente o que tiene errores extraños y que no podemos aislar. En estos casos hay que mirar con sospecha a la RAM, ya que es probable que sea la causa del problema. Soluciones como Memtest86+ son de sobra conocidas, pero, ¿y si no podemos arrancar con un disco de inicio para ejecutar Memtest? ¿Por ejemplo, en un servidor VPS?

 


Seguir leyendo


20 ago

Monitorizar disco duro con SMART

0 comentarios Linux , how-to

Según la Wikipedia: La tecnología S.M.A.R.T. acrónimo de Self Monitoring Analysis and Reporting Technology consiste en la capacidad de detección de fallos del disco duro. La detección con anticipación de los fallos en la superficie permite al usuario el poder realizar una copia de su contenido, o reemplazar el disco, antes de que se produzca una pérdida de datos irrecuperable.

 

En Linux lo tenemos muy sencillo para monitorizar cómodamente nuestro disco. Lo primero, instalar el conjunto de herramientas SMART:

 

$ sudo apt-get install smartmontools

 

Y comprobar que nuestro disco es compatible y que tenemos SMART activado en la BIOS del equipo:

 

$ sudo smartctl -a /dev/sda

 

Este comando nos devolverá una larga lista de información que muestra los valores actuales de salud de nuestro disco. Por ahora sólo interesa que no devuelva un error de Device does not support SMART, en otra anotación trataré esta información y para qué nos sirve.

 

Si hemos obtenido la información, sin ese mensaje de error, es que el disco es compatible y tenemos SMART activado en la BIOS, así que pasamos al último paso: instalar un monitor que nos avise en caso de que se detecte la posibilidad de algún futuro problema en el disco. Haremos esto con smart-notifier, un pequeño programita que lee la información de smartmontools en el inicio del sistema y si detecta algún valor peligroso nos avisa.

 

$ sudo apt-get install smart-notifier

 

Para que smartmontools se ejecute al incio del sistema, descomentamos una línea en /etc/default/smartmontools:

 

$ sudo vi /etc/default/smartmontools
start_smartd=yes

 

Y ya sólo nos quedaría añadir el ejecutable /usr/bin/smart-notifier para que se ejecute al iniciar nuestra sesión gráfica. Esto se hace de forma distinta en KDE, Gnome, Xfce... por lo que no lo anoto aquí.

 

Una vez añadido, cada vez que arranquemos el equipo se ejecutará el demonio smartd que monitorizará los datos de salud del disco duro, y smart-notifier nos avisará con una ventana en caso de detectar algún problema.

 

Probar smart-notifier

 

Para estar seguros del funcionamiento, nada mejor que hacer una prueba, editando /etc/smartd.conf y añadiendo el parámetro -M test a la línea DEVICESCAN dejando el resto de la línea igual, por ejemplo:

 

$ sudo vi /etc/smartd.conf
DEVICESCAN -m root -d sat -M test -M exec /usr/share/smartmontools/smartd-runner

 

Al reiniciar el demonio smartd debería aparecernos un error de prueba:

 

$ sudo /etc/init.d/smartmontools restart

 

 

 

Para terminar, quitamos el parámetro -M test que acabamos de poner, reiniciamos de nuevo el demonio smartd y listo, ya podemos estar un poco más tranquilos al respecto de la pérdida de nuestros datos.



16 ago

Mysqldump desde entorno chroot en Ubuntu Server

0 comentarios Linux , how-to , MySQL

Supongamos un caso que, antes o después, nos pasará en algún servidor: la máquina muere y es preciso acceder a ella desde un sistema de rescate (un LiveCD por ejemplo). Una de las tareas imprescindibles en ese escenario es hacer un backup de los datos antes de iniciar cualquier actuación de reparación. Los archivos se pueden respaldar sin problemas, pero, ¿qué hay de las bases de datos?

 

Veamos cómo hacer un mysqldump de nuestras bases de datos desde un entorno chroot en Ubuntu Server.

 

Montar directorios de la instalación original

 

Lo primero es, una vez arrancado el sistema de rescate, montar el directorio de sistema de nuestro servidor, por ejemplo:

 

 

$ mkdir /mnt/sistemax
$ sudo mount /dev/sda1 /mnt/sistema1 

 

Donde sda1 es el directorio raíz de la instalación que no funciona. Si hubiera más particiones que nos interesen para el backup, se montan de la misma forma.

 

A continuación, y para que el chroot funcione correctamente, es preciso exportar ciertos directorios de sistema que necesitará el kernel para arrancar servicios en el entorno chroot:

 

 

$ sudo mount ‐‐bind /dev /mnt/sistema1/dev
$ sudo mount ‐‐bind /proc /mnt/sistema1/proc
$ sudo mount ‐‐bind /sys /mnt/sistema1/sys

 

 

Y ya podemos arrancar el entorno chroot:

 

 

$ sudo chroot /mnt/sistema1

 

 

Problemas con upstart

 

Desde hace algunas versiones (Karmic Koala, creo), Ubuntu Server usa upstart para gestionar los servicios y demonios. Los servicios que funcionan bajo upstart no se pueden arrancar en un entorno chroot porque upstart funciona como un supervisor de servicios y los procesos dentro del entorno chroot no pueden comunicarse con el servicio upstart externo al chroot (Bug 430224). Esto causa que algunos paquetes, como MySQL, que ahora usan upstart en lugar de los clásicos scripts init no arrancarán en el entorno chroot. Para poder arrancar estos servicios, se debe configurar el entorno chroot para que /sbin/initctl apunte a /bin/true, con estos comandos:

 

 

$ sudo dpkg-divert --local --rename --add /sbin/initctl
$ sudo ln -s /bin/true /sbin/initctl

 

 

Hacer el dump

 

Una vez hecho esto, ya podemos arrancar MySQL en modo seguro y hacer el dump de las bases de datos que debamos respaldar, dump que posteriormente copiaremos a un lugar seguro:

 

 

$ sudo mysqld_safe --skip-grant-tables --skip-networking &
$ mysqldump unabasededatos > unabasededatos.sql

 



04 ago

Usando mapas del CNIG con OruxMaps

7 comentarios Linux , how-to , Movilidad

El Centro Nacional de Información Geográfica (CNIG) es la referencia en España en mapas, y OruxMaps es la referencia en gestión de rutas en Android (y además es producto nacional). Y usar los mapas del CNIG con OruxMaps es, afortunadamente, muy sencillo.

 


Seguir leyendo


02 ago

Transformar rutas GPS

0 comentarios Linux , Software

Cuando salgo con la bici me gusta llevar conectado en el móvil MyTracs para guardar la ruta que hago. MyTracks se sincroniza automáticamente con Google Maps, con mapas en formato KML. Sin embargo, otros servicios como Wikiloc, usan mapas en formato GPX. ¿Hay forma de transformar de un formato a otro? Sí, la hay, con gpsbabel (está en los repositorios de las principales distros), es así de simple:

 

$ gpsbabel -i kml -f fichero_ruta_original_en.kml -o gpx -F fichero_ruta_convertida.gpx

 



Creative Commons License Esta web http://alvaroremesal.net , su contenido, texto e imágenes está licenciado bajo una Licencia Creative Commons Reconocimiento-Compartir bajo la misma licencia 3.0 España.

2017 - Álvaro Remesal Royo   Avisos legales

logo-acms