De las dudas más comunes, es cómo obtener información del hardware, sobre todo del disco duro, para esto, la mejor manera, es utilizando smartctl, comando que es parte del paquete smartmontools. Para usarlo se debe:
[~]# smartctl -i /dev/sda
smartctl 6.5 2016-05-07 r4318 [x86_64-linux-4.15.6-200.fc26.x86_64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Device Model: TOSHIBA MQ01ACF050
Serial Number: 15RICDOST
LU WWN Device Id: 5 000039 603b88b2c
Firmware Version: AV0A1C
User Capacity: 500,107,862,016 bytes [500 GB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Rotation Rate: 7200 rpm
Form Factor: 2.5 inches
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: ATA8-ACS (minor revision not indicated)
SATA Version is: SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Mon Mar 12 18:32:15 2018 -03
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
Como se ve, rápidamente se obtiene todo lo necesario, incluso, el form factor y velocidad.
Este blog tiene la idea de acercar un poco el tema de las herramientas computacionales, usando preferencialemente Linux, y traducir a "cristiano" todos esos programas, software y otras palabras raras que usan los que saben de computación y aquellos que dicen saber también. Por eso aquí va un filtro con cosas útiles e intentado ser claro, cualquier cosa... por mail, msn, comentarios, etc como quieran, manden preguntas, felicitaciones, reclamos, inquietudes, etc. etc.
Buscar aquí
12 marzo 2018
20 noviembre 2017
cómo compartir carpetas entre máquinas linux
Una duda bastante habitual, es cómo compartir archivos entre dos máquinas linux, y en realidad, es algo que se hace desde hace mucho tiempo y no es complicado. Habitualmente, utilizamos quizás un cliente sftp, o rsync o quizás scp, etc. Pero una mejor manera es utilizando NFS un antiguo protocolo en los *NIX de muy buena performance y fácil configuración, que nos permite compartir los filesystems, dando variados ajustes de seguridad de ser necesario.
Primero, hay que levantar algunos servicios como nfs, una vez levantado, hay que agregar al firewall el puerto del servicio que es el 2049.
Después se modifica el archivo /etc/exports o se agrega un archivo al /etc/exports.d, en mi caso lo agregué al /etc/exports:
~]# cat /etc/exports
/home/nfs 10.11.13.0/24(rw,sync)
La idea aquí es compartir el directorio nfs en la carpeta /home, a todos los equipos que estén en la red 10.11.13.X, y que tengan permiso de lectura y escritura. Además, el sync nos indica que los cambios deben ser completados en el servidor NFS antes de informar el éxito el cliente, esto es para asegurarse de que no hay problemas.
Una vez lista la modificación, se ejecuta
exportfs -a
y con esto queda disponible el directorio compartido.
Desde otra máquina con linux, para montar el directorio compartido, se debe tener disponible algún punto de montaje, habitualmente es bueno dejarlos bajo /mnt, y se debiera crear una nueva carpeta:
mkdir /mnt/nfs_compartido
Finalmente, podrán montar este directorio compartido con un comando como:
mount -t nfs nombre_servidor_nfs:/home/nfs /mnt/nfs_compartido
hay un detalle importante acá en la configuración, es que si se agrega en el archivo de configuración /etc/exports el parámetro fsid=0 por ejemplo (he visto varias páginas que usan esta opción), se tendrá que montar en la máquina cliente utilizando
mount -t nfs nombre_servidor_nfs:/ /mnt/nfs_compartido
pero por simpleza y saber que se está montando, es mejor no usar el fsid.
Primero, hay que levantar algunos servicios como nfs, una vez levantado, hay que agregar al firewall el puerto del servicio que es el 2049.
Después se modifica el archivo /etc/exports o se agrega un archivo al /etc/exports.d, en mi caso lo agregué al /etc/exports:
~]# cat /etc/exports
/home/nfs 10.11.13.0/24(rw,sync)
La idea aquí es compartir el directorio nfs en la carpeta /home, a todos los equipos que estén en la red 10.11.13.X, y que tengan permiso de lectura y escritura. Además, el sync nos indica que los cambios deben ser completados en el servidor NFS antes de informar el éxito el cliente, esto es para asegurarse de que no hay problemas.
Una vez lista la modificación, se ejecuta
exportfs -a
y con esto queda disponible el directorio compartido.
Desde otra máquina con linux, para montar el directorio compartido, se debe tener disponible algún punto de montaje, habitualmente es bueno dejarlos bajo /mnt, y se debiera crear una nueva carpeta:
mkdir /mnt/nfs_compartido
Finalmente, podrán montar este directorio compartido con un comando como:
mount -t nfs nombre_servidor_nfs:/home/nfs /mnt/nfs_compartido
hay un detalle importante acá en la configuración, es que si se agrega en el archivo de configuración /etc/exports el parámetro fsid=0 por ejemplo (he visto varias páginas que usan esta opción), se tendrá que montar en la máquina cliente utilizando
mount -t nfs nombre_servidor_nfs:/ /mnt/nfs_compartido
pero por simpleza y saber que se está montando, es mejor no usar el fsid.
06 noviembre 2017
Cómo reemplazar solo una parte de los textos
Habitualmente, cuando se necesita reemplazar una parte de texto pequeña, no toda una palabra, por ejemplo, en una línea se tiene la hora con formato:
HH:MI:SS
por ejemplo:
cualquier texto, 23:59:57
otro texto cualquiera, 23:58:04
un texto mas cualquiera, 23:57:39
el texto cualquiera, 23:56:37
si interesara por ejemplo dejar solo lo correspondiente a la hora, algo así
cualquier texto, 23:00:00
otro texto cualquiera, 23:00:00
un texto mas cualquiera, 23:00:00
el texto cualquiera, 23:00:00
una forma util es usando sed:
sed 's/\(.*\)\([0-9][0-9]\):[0-9][0-9]:[0-9][0-9]/\1\2:00:00/'
traduciendo esto, en la parte del patrón a buscar:
1- \(.*\) esto hace match con cualquier cosa
2- \([0-9][0-9]\) esto hace match, con un patrón que viene con dos números entre 0 y 9 cada uno.
3- :[0-9][0-9] esto hace match, con un patrón que viene un símbolo de dos puntos (:) seguido de dos números, entre 0 y 9 cada uno.
4- :[0-9][0-9] esto hace match, con un patrón que viene un símbolo de dos puntos (:) seguido de dos números, entre 0 y 9 cada uno.
Entonces el patrón buscaría:
Cualquier cosa, seguida de dos números entre 0 y 9 cada uno, seguido del símbolo de dos puntos, seguido de dos números entre 0 y 9, seguido del símbolo de dos puntos, seguido de dos números entre 0 y 9.
El truco aquí es que en 1 y 2, el patrón está encerrado entre \( y \), esto indica que lo que haga match en ese patrón, será posible utilizarlo después. Por ello, después en la segunda parte del sed, donde se indica con que se reemplazará, aparecen los \1 y \2, que indica lo obtenido en 1 y 2.
HH:MI:SS
por ejemplo:
cualquier texto, 23:59:57
otro texto cualquiera, 23:58:04
un texto mas cualquiera, 23:57:39
el texto cualquiera, 23:56:37
si interesara por ejemplo dejar solo lo correspondiente a la hora, algo así
cualquier texto, 23:00:00
otro texto cualquiera, 23:00:00
un texto mas cualquiera, 23:00:00
el texto cualquiera, 23:00:00
una forma util es usando sed:
sed 's/\(.*\)\([0-9][0-9]\):[0-9][0-9]:[0-9][0-9]/\1\2:00:00/'
traduciendo esto, en la parte del patrón a buscar:
1- \(.*\) esto hace match con cualquier cosa
2- \([0-9][0-9]\) esto hace match, con un patrón que viene con dos números entre 0 y 9 cada uno.
3- :[0-9][0-9] esto hace match, con un patrón que viene un símbolo de dos puntos (:) seguido de dos números, entre 0 y 9 cada uno.
4- :[0-9][0-9] esto hace match, con un patrón que viene un símbolo de dos puntos (:) seguido de dos números, entre 0 y 9 cada uno.
Entonces el patrón buscaría:
Cualquier cosa, seguida de dos números entre 0 y 9 cada uno, seguido del símbolo de dos puntos, seguido de dos números entre 0 y 9, seguido del símbolo de dos puntos, seguido de dos números entre 0 y 9.
El truco aquí es que en 1 y 2, el patrón está encerrado entre \( y \), esto indica que lo que haga match en ese patrón, será posible utilizarlo después. Por ello, después en la segunda parte del sed, donde se indica con que se reemplazará, aparecen los \1 y \2, que indica lo obtenido en 1 y 2.
31 julio 2017
cómo ejecutar una aplicación gráfica después de un su -
Pasa que al hacer un cambio de usuario normal con su - en linux, no se puede ejecutar una aplicación gráfica, sin importar si se cambia a usuario root u otro. En mi caso por ejemplo, estaba tratando de gatillar el comando dbca de oracle, para crear una base de datos, me cambie al usuario oracle usando su - oracle, y no es posible lanzar las app graficas, a pesar de setear la variable display. Para conseguir esto se debe ejecutar:
[usuario@linux ~]$ xauth list
linux/unix: MIT-MAGIC-COOKIE-1 73841fb1abcd6c28d4e03e477542bf53
[usuario@linux ~]$ echo $DISPLAY
:0
y ejecutar
xauth add
Ojo que por defecto si se fijan muestra linux/unix: MIT... despues del unix: debiera ir el número de display, pero debido a que está usando el display 0 no lo muestra y se debe agregar a mano al comando, por ello debe quedar como:
xauth add linux/unix:0 MIT-MAGIC-COOKIE-1 73841fb1abcd6c28d4e03e477542bf53
y finalmente export DISPLAY=
y con eso ya se debieran poder gatillar las aplicaciones graficas desde el usuario a pesar de pasar por su -
Un detalle, en el caso que sea necesario de pasar desde el usuario usuario -> root -> oracle , por ejemplo, hay que hacer la misma operación de xauth add en el usuario root.
04 mayo 2017
importar ovpn a Network Manager
Importar una VPN del tipo OpenVPN en Network Manager siempre tiene algún problema, entonces la manera más fácil y fluida que encontré es hacerlo a través de la consola de comados con:
nmcli connection import type openvpn file /ruta/al/archivo/ovpn
ejemploL
[root@equipo ~]# nmcli connection import type openvpn file /home/user/Documents/configuration.ovpn
Error: failed to import '/home/user/Documents/configuration.ovpn': configuration error: unsupported 1th argument remote_host to 'route' (line 6).
si se fijan, falla en la línea 6, si esa linea es quitada desde el archivo, funciona de inmediato :)
Ojo, esto se debe hacer como root o usando sudo!!
nmcli connection import type openvpn file /ruta/al/archivo/ovpn
ejemploL
[root@equipo ~]# nmcli connection import type openvpn file /home/user/Documents/configuration.ovpn
Error: failed to import '/home/user/Documents/configuration.ovpn': configuration error: unsupported 1th argument remote_host to 'route' (line 6).
si se fijan, falla en la línea 6, si esa linea es quitada desde el archivo, funciona de inmediato :)
Ojo, esto se debe hacer como root o usando sudo!!
03 mayo 2017
mejorar las búsquedas con locate
Una herramienta muy buena para buscar archivos en los sistemas de archivos es el comando locate. Una de las ventaja/desventaja es que si queremos buscar por una parte del path o nombre del archivo, funciona perfecto, por ejemplo, si se necesita saber todos los archivos que contienen la palabra que ingreso, por ejemplo:
locate iso
buscará todos los archivos que en el nombre tienen iso o directorios que su nombre contenga iso.
Ahora, para una búsqueda más precisa puede ser usado con expresiones regulares, por ejemplo, si se quiere buscar solamente los archivos que terminan con la palabra iso, puedo buscar con:
locate --regexp iso$
/home//SOS/rhel-server-6.4-x86_64-dvd.iso
/home/ISOS/rhel-server-6.6-x86_64-dvd.iso
/home/ISOS/rhel-server-6.8-x86_64-dvd.iso
/home/ISOS/rhel-server-7.2-x86_64-dvd.iso
Cabe notar que locate se actualiza diaramente, en base a la ejecución de un comando y que tiene una base de datos desde donde muestra los resultados. Si se quiere actualizar los resultados, debe ser ejecutado manualmente, para más detalles revisar man locate.
locate iso
buscará todos los archivos que en el nombre tienen iso o directorios que su nombre contenga iso.
Ahora, para una búsqueda más precisa puede ser usado con expresiones regulares, por ejemplo, si se quiere buscar solamente los archivos que terminan con la palabra iso, puedo buscar con:
locate --regexp iso$
/home//SOS/rhel-server-6.4-x86_64-dvd.iso
/home/ISOS/rhel-server-6.6-x86_64-dvd.iso
/home/ISOS/rhel-server-6.8-x86_64-dvd.iso
/home/ISOS/rhel-server-7.2-x86_64-dvd.iso
Cabe notar que locate se actualiza diaramente, en base a la ejecución de un comando y que tiene una base de datos desde donde muestra los resultados. Si se quiere actualizar los resultados, debe ser ejecutado manualmente, para más detalles revisar man locate.
01 diciembre 2016
obtener como resultado la entrada pero recortada
Al momento de trabajar con texto, puede ser necesario recortar la salida de este texto, por ejemplo,
echo 12.3456789
es necesario que muestre solo 3 decimales:
echo 12.3456789 | sed -r 's/([0-9]+\.[0-9][0-9][0-9])[0-9]+/\1/g'
12.345
La magia está en el uso de paréntesis en la sección de formato y en la sección de reemplazo el \1, esto significa:
- los parentesis redondos, marcan una sección que se recordara.
- el \1 indica que se usará el primero bloque marcado en el formato.
Explicando la expresión regular va a recordar cuando venga 1 o más números entre 0 y 9, seguido por el caracter de punto, seguido de 3 números, cada uno entre 0 y 9. Este es el bloque a recordar. Además, la expresión contempla que debe venir seguido de un numero de 1 o más cifras entre 0 y 9, pero esto no se recuerda pues no está entre paréntesis.
El -r en el sed es para que indicarle que use expresiones regulares extendidas, pues el uso de estos parámetros no son parte del conjunto estandard de opciones.
echo 12.3456789
es necesario que muestre solo 3 decimales:
echo 12.3456789 | sed -r 's/([0-9]+\.[0-9][0-9][0-9])[0-9]+/\1/g'
12.345
La magia está en el uso de paréntesis en la sección de formato y en la sección de reemplazo el \1, esto significa:
- los parentesis redondos, marcan una sección que se recordara.
- el \1 indica que se usará el primero bloque marcado en el formato.
Explicando la expresión regular va a recordar cuando venga 1 o más números entre 0 y 9, seguido por el caracter de punto, seguido de 3 números, cada uno entre 0 y 9. Este es el bloque a recordar. Además, la expresión contempla que debe venir seguido de un numero de 1 o más cifras entre 0 y 9, pero esto no se recuerda pues no está entre paréntesis.
El -r en el sed es para que indicarle que use expresiones regulares extendidas, pues el uso de estos parámetros no son parte del conjunto estandard de opciones.
Suscribirse a:
Entradas (Atom)