#Linux: Comando Tail

Tail es uno de esos comandos básicos que todo desarrollador debe conocer, ya que, sirve para mirar y hacer seguimiento de logs, y todo buen desarrollador debe: saber leer logs y saber depurar.

Las dos principales opciones de Tail son -n # donde # es un número que representa la cantidad de líneas del final que nos mostrará el comando y -f para que se actualice en caso de que el archivo se modifique, a continuación un comando para ver las últimas 40 líneas de un archivo y que se actualice en tiempo real.

tail -n 40 /var/log/nozak.log

Instalar Servidor Debian/Raspbian/Ubuntu

A continuación resumo en pocos comandos los pasos de instalación de un servidor Debian/Ubuntu/Raspbian. Compilando artículos publicados en este blog bajo la etiqueta #Server6001. Agregando cosas inéditas, para tener en un sólo post todos los pasos que suelo aplicar en un primer momento para la instalación de un servidor Linux basado en Debian.

sudo su

apt-get update && apt-get upgrade

apt-get install openssh-server apache2 apache2-mod-php7.0 php7.0 php7.0-mysql mysql-client mysql-server php-curl tomcat8 vsftpd phpmyadmin php-intl php-soap php-xmlrpc

sudo ln -s /usr/share/phpmyadmin /var/www/

Instalar Cliente no NO-IP

Configurar Servidor FTP

Instalar MariaDB

Explicación de lo que estamos instalando:

openssh-server: Servidor SSH.

apache2: Servidor HTTP.

php7.0: Servidor PHP.

mysql-client: Necesario para administrar MySQL desde la cónsola.

mysql-server: Servidor MySQL.

tomcat8: Servidor Java.

vsftpd: Servidor FTP.

php-curl: Esta extensión es uno de los requisitos obligatorios para instalar sistemas algunos sistemas como Moodle.

Más info en:

🙂

Instalar MariaDB en Debian 9

Créanme cuando les digo que si piensas instalar un servidor LAMP en Debian 9 vas a preferir MariaDB.

# apt install mariadb-client mariadb-server

Crear una base de datos

CREATE DATABASE newdatabase;

Para crear un usuario

CREATE USER ‘username’@’localhost’ IDENTIFIED BY ‘userpassword’;

Asignar los privilegios de la base de datos creada al nuevo usuario

GRANT ALL PRIVILEGES ON newdatabase.* to ‘username’@’localhost’;

Si quieres darle todos los privilegios (como un root)

GRANT ALL PRIVILEGES ON * . * TO ‘username’@’localhost’;

Para cambiar la contraseña de root de MariaDB

$ mysql -u root -p
mysql> use mysql;
mysql> update user set password=PASSWORD(“nuevaclave”) where User=’root’;

Para salir

mysql> flush privileges;
mysql> quit

 

Configuración de Apache2 en Debian para soportar VirtualHost

A continuación, muestro un ejemplo, que puede servir de plantilla, para configurar Apache2 con lo básico para soportar VirtualHost, por lo tanto la posibilidad de tener varios dominios y varias carpetas (incluso fuera del típico /var/www) y con soporte de URL Rewriting, importantes para instalaciones de WordPress, Moodle, CakePHP, etc.

Antes de esto, recordar que los archivos de configuración se encuentran en el directorio: /etc/apache2/sites-available/

Si bien es cierto que, se puede tener un solo archivo para toda la configuración de Apache, se recomienda tener un archivo de configuración por sistema, de tal modo que no tengamos un archivo grande, sino un archivo por sistema, fácil de editar y configurar.

También es necesario recordar que, se debe colocar en el archivo en el directorio sites-available antes mencionado para poder activarlo y desactivarlo con los comandos

sudo a2ensite example.com.conf
sudo a2dissite example.com.conf

También se puede deshabilitar la configuración por defecto:

sudo a2dissite 000-default.conf

También recomiendo tener un archivo por cada sub domain, ya que, por lo general, los subdomains son sistemas completamente separados físicamente (en el sistema de archivos) y se puede requerir configuraciones específicas y separadas.

A continuación un archivo de ejemplo que involucra todas las prácticas mencionadas.

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  ServerName subdomain.example.com
  ServerAlias subdomain.example.com
  DocumentRoot /home/user/www/subdomain.example.com/main
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
  
  <Directory /home/user/www/subdomain.example.com/main>
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    # New directive needed in Apache 2.4.3:
    Require all granted
  </Directory>
</VirtualHost>

Cada modificación requiere el reinicio del servicio de Apache.

Instalar Open Broadcaster Software (OBS) en Ubuntu

Open Broadcaster Software (OBS para los amigos), es un programa de código abierto para realizar transmisiones en tiempo real o grabar videos desde la computadora.

Antes de instalar OBS se requiere FFmpeg:

En Ubuntu 14.04 LTS o 14.10, FFmpeg no viene incluido pero se puede instalar de la siguiente manera:

sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
sudo apt-get update && sudo apt-get install ffmpeg

En Ubuntu 15.04 y posteriores como ya viene incluido se puede instalar directamente:

sudo apt-get install ffmpeg

Para instalar OBS se colocan los siguientes comandos:

sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt-get update && sudo apt-get install obs-studio

Listo 🙂

Instalar R y R Studio en Ubuntu

Para instalar la última versión de R en Ubuntu o Debian basta con ejecutar en un terminal o cónsola, la siguiente instrucción:

sudo aptitude install r-base

La instalación para Linux no lleva una interfaz por defecto, así que sus usuarios tienen que trabajar con R
en la terminal (ejecutando R para iniciar una sesión) o instalar aparte una interfaz.

Para instalar RStudiocomo interfaz gráfica de usuario de R se descarga de

http://www.rstudio.com/products/rstudio/download/

la versión correspondiente al sistema operativo y a la arquitectura en el que se trabaja. Luego hay que
ejecutar en una terminal la siguiente instrucción para instalarlo:

sudo dpkg -i rstudio–i386.deb

Si te da un error de dependencias, se resuelve de la siguiente manera

sudo aptitude -f install

Elige instalar las dependencias y listo.

Captura de pantalla de 2016-10-11 10-46-00

Recuperando información de una tarjeta SD dañada en Ubuntu

Hace unos días tenía una tarjeta SD con una instalación de Raspbian, a la tarjeta no le funcionaba la partición en la que está el Raspbian instalado, tampoco podía acceder desde ninguna distro de Linux a esa partición, por lo tanto, una reparación era necesaria.

La solución encontrada fue la siguiente:

Paso 1) Saber donde se monta la partición para ello usamos el comando dmesg para conocer cual es el último disco del sistema. (ejemplo sdb), siendo ese el caso necesitamos ver las particiones existentes en el disco

fdisk -l /dev/sdb

En mi caso, la partición que quería recuperar era /dev/sdb2 así que lo siguiente es intentar la reparación

fsck /dev/sdb2

La utilidad comenzará a sugerirte las posibles soluciones que puede aplicar para corregir los defectos. Si el sistema está muy dañado podría ser preferible que en el comando agregaras la opción -y para que aplique todos los correctivos automáticamente.

fsck /dev/sdb2

Aun así es posible que no se logre reparar, así que en StackExchange sugieren que se podría intentar crear una imagen del disco

dd if=/dev/sdb of=file.img

o si tienes instalado dd_rescue

dd_rescue /dev/sdb file.img

Luego montar esa imagen como un dispositivo con

losetup –find –show file.img

Fuente:

http://raspberrypi.stackexchange.com/questions/7489/recover-files-from-broken-sd-card-no-boot

 

 

 

Poketty – Pokemon en cónsola

Mientras algunos esperan impacientes la aparición de Pokemon GO, otros van en sentido contrario, hasta llegar a lo más básico… El Terminal o cónsola…

Desde el blog DesdeLinux encontramos la información que la comunidad de HispaGNU ha comenzado un desarrollo del juego de Pokemon para la cónsola, llamado Poketty y liberado bajo la licencia GPLv3.

▕▔╲┊┊┊┊┊┊┊╱▔▏┊┊┊
┊╲╱╲┊┊┊┊┊╱╲╱┊┊┊┊
┊┊╲┈╲▂▂▂╱┈╱┊┊┊╱╲
┊┊╱┈┈┈┈┈┈┈╲┊┊╱┈┈╲
┊┊▏▕▆▍▂▕▆▍▕┊╱┈┈┈╱
┊▕╭╮┈┳┻┳┈╭╮▏╲┈┈╱
┊┊╲╯┈╰━╯┈╰╱┊╱┈┈╲
┊┊╱┈┈┈┈┈┈┈╲┊╲┈┈┈╲
┊▕╲┈▕┈┈┈▏┈╱▏┊╱┈╱
┊▕┈▔▔┈┈┈▔▔┈▏╱┈╱┊
┊▕┈┈┈┈┈┈┈┈▕▔┈╱┊┊
┈┈╲┈┈┈┈┈┈┈╱▔▔┈┈┈
┈┈▕▂╱▔▔▔╲▂▏┈┈┈┈┈

Sin duda, una gran herramienta para curiosear, practicar, de aprendizaje y/o enseñanza, ya que el código es 100% libre y está a disposición en la página  http://hispagnu.no-ip.org/poketty

¿Qué te pasó Ubuntu? #Reflexión

robot-ubuntuNota previa: Las palabras marcadas con un asterisco (*), están en un mini glosario de términos al final del artículo.

Siempre que se habla de Software Libre uno tiene dos opciones, o documentarte muy bien de lo que vas a hablar (como favor a la humanidad siempre que intentes hablar de algo deberías saber muy bien de lo que estás hablando) o bien advertir del carácter subjetivo de lo que vas a hablar, así poder expresar opiniones, pensamientos o sentimientos acerca de ese algo.

La comunidad de software libre tiende a ser muy crítica al momento de leer artículos y comentarios, ya que, detrás de lo meramente tecnológico existen dimensiones ideológicas y filosóficas, por eso, lo que diré a continuación se trata de una opinión de un “usuario no-avanzado” y muy personal de la distribución* Ubuntu.

He sido usuario Ubuntu por muchos años por su rendimiento, facilidad de uso y su compatibilidad con el Hardware, cuando comencé con esta distro* esos aspectos eran insuperables por ningún sistema de aquel momento (hace 10 años aproximadamente). Recuerdo especialmente los efectos que se lograban con algo llamado Compiz Fusion*, algo nunca visto hasta el momento, también los inmensos niveles de personalización que se podían lograr, pero cuando llegó Unity* la fatalidad para mi fue máxima, me pareció pesado, poco amigable y poco configurable, así que me pasé a Ubuntu Netbook Remix con LXDE, que mantenía la eficiencia que me gustaba, pero al final me cansé un poco tanto de XFCE* como de LXDE*, livianos si, pero sin ningún sabor como lo tenía el antiguo Gnome*, además nunca fui amigo de KDE*.

Recuerdo que era muy emocionante esperar la nueva versión de Ubuntu, ya que, de una versión a otra las mejoras eran notables y sorprendentes, pero desde la llegada de Unity por defecto en 2011, unido con la muerte de Gnome versión 2, hasta la última versión de 2014, a mi personalmente me ha parecido poca la mejora en la experiencia de usuario que ha tenido Ubuntu, mientras que la experiencia en máquinas de gama baja es cada vez peor. Por eso, desde aquellos años mozos hasta hoy sólo he usado Ubuntu con propósitos de desarrollo de software.

Desde hace mucho tiempo el objetivo principal de Ubuntu es la convergencia, es decir, el uso del mismo sistema operativo independientemente del dispositivo o tamaño de pantalla,  la introducción de Unity es un factor fundamental para lograr ese objetivo. Sin embargo esta podría ser una apuesta arriesgada. Dicen por allí que, el que mucho abarca poco aprieta, como muestra tenemos Windows 8, un sistema que son los pininos del mismo propósito en la gente de Microsoft: La convergencia. Pero resulta que para los usuarios de computadoras personales (de escritorio o laptops conencionales), Windows 8 no es un sistema amigable, de hecho, no conozco a nadie que prefiera Windows 8 a Windows 7 y es precisamente porque los factores de una buena usabilidad en tablets y smartphones son muy distintos a los de computadoras de escritorio y portátiles e incluso a las netbooks*.

Considero que la convergencia siempre implica un sacrificio. Para desarrollar para todos debes tienes dos opciones:

  • Hacer tu sistema igual para todos los dispositivos y decidir para cual dispositivo eres óptimo. Caso particular que Win8 sea un fastidio en computadoras personales, dado que los gestos* usados en dispositivos táctiles no siempre pueden ser imitados o no son “cómodos” usando un mouse (como arrastrar desde la derecha de la pantalla para que aparezca un menú). En este particular tengo una anécdota: un día instalé un juego en el que decía: “Toca la pantalla para continuar”. ¿Se entiende el chiste? 😀 La pantalla de una PC no es táctil  😀 Incluso haciendo clic o tocando alguna tecla no funcionaba, así que nunca pude jugar, sencillamente el juego era completamente incompatible. Al menos en otros sistemas las apps* que no son compatibles simplemente no se pueden instalar (recordar que muchas representan un gasto de dinero).
  • La otra opción es que el sistema se adapte al dispositivo y su modo de uso, pero la desventaja es que el sistema será más pesado y probablemente 50% del código nos será completamente inútil. En ese caso sería apropiado generar versiones para cada tipo de dispositivo (cero convergencia).

>#FLISoLve CCS 2010: FLISoL en FotosPersonalmente como usuario de escritorio y de computadoras de bajo rendimiento, cada día Ubuntu se me hace una opción menos viable, para mi es lamentable por la cantidad de años de uso y por el cariño que le tengo a la comunidad y al propio sistema, pero lamentablemente ya no soy parte del público objetivo de Ubuntu. Tocará buscar, e instalar algún otro sistema que sea funcional y muy fácil de usar (lo que más me gustaba de Ubuntu porque soy muy “usuario final”).

Mini-glosario de términos

Distribución / Distro: Adaptaciones del sistema operativo GNU/Linux para crear nuevos sistemas operativos.

Gnome, KDE, XFCE, LXDE, Unity: Son sistemas que permiten cambiar completamente la apariencia de una distribución GNU/Linux. Les llaman “Entornos de Escritorio”. Algunos programas están optimizados para trabajar en alguno(s) de esos entornos.

Compiz Fusion: Era (no se si aun existe) un sistema administrador de efectos gráficos, desde los más rimbombantes y divertidos, hasta los más sutiles.

Netbook: Laptops muy pequeñas, también llamadas minilaptops.

Gestos: Es el modo que interactuas con una pantalla táctil, ejemplo: arrastrar, pellizcar, girar la pantalla, sacudir el dispositivo, tocar con uno o más dedos, etc.

Apps: Aplicaciones que puedes descargar y usar en tu sistema operativo.

Quitar elementos de una imagen con GIMP

Quitar elementos de una foto o una imagen en general, es realmente muy fácil con GIMP, incluso para muy novatos. Este truco es usado principalmente para eliminar detalles en nuestras fotografías que no nos gustan (o quitar de la fotografía a tu ex).

Sin embargo, hoy quise hacerlo para quitar elementos de un pantallazo, ya que, fue mi primera necesidad para darle uso.

Necesitamos:
GIMP: Programa de edición de imágenes que viene por defecto en Ubuntu.
Resynthesizer: Un plugin para GIMP que nos hará la vida muy fácil. Su descarga e instalación es muy sencilla, sólo tenemos que colocar el siguiente comando en consola:

apt-get install -y gimp-resynthesizer

Ya tenemos todo listo. Haga clic en la(s) imagen(es) para agrandarla(s), estas se abrirán en una nueva pestaña/ventana.  Esta es mi imagen original:

capturaoriginal

Y deseamos quitar algunos elementos de esta imagen para una mejor presentación, ya que, el pantallazo es para colocarlo en un trabajo.

Paso 1: Abrir la imagen con GIMP.

pantallazo-gimp-1

Los elementos que deseamos quitar son los resaltados en un circulo rojo

pantallazo-gimp-1-edited

Paso 2: Seleccionar con alguna herramienta de selección el área que deseamos quitar.

Nosotros mostraremos la remoción de los íconos, el otro elemento se quita siguiendo los mismos pasos.

pantallazo-gimp-2-edited

Paso 3: Ir al menú >> Filtros >> Realzar >> Smart Remove Selection…

pantallazo-gimp-3-edited

Paso 4: Aceptar, verificar, guardar y salir.

pantallazo-script-fusmartremoveselection

Y el resultado final:

capturafinal

Fuentes: Web oficial, Ubuntulife.