Linux desde 0 y más allá

junio 9, 2011

Comprobar si un disco está fallando en un sistema linux

Archivado en: linea de comandos — Etiquetas: , , — mohicano @ 6:41 pm

A veces el rendimiento de nuestro sistema se degrada de tal forma que trabajar con archivos se ralentiza o el acceso a nuestro servidor de datos es demasiado lento. Uno de los posibles factores será la red pero otro muy habitual será un disco duro fallido. Lo podemos comprobar leyendo /var/log/messages que es donde nos indicará linux que el disco está fallando, también en consola aparecerán errores de IO.

Para solucionar este percance tenemos varios comandos interesantes que no estará mal aprender.

Comenzaremos instalando las utilidades que probablemente no hayamos instalado antes:

apt-get install hdparm smartmontools

Una vez instaladas éstas identificaremos los discos en nuestro sistema e intentaremos localizar el/los que están fallando:

df -h

nos proporciona una lista de los discos junto con varias características:

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             1,9G  151M  1,8G   8% /boot
/dev/sdb1             1,9T   33M  1,9T   1% /mnt/disk1

podemos ver que nos indica el dispositivo físico del que se trata, el tamaño, el espacio utilizado, el disponible, el tanto por ciento usado y el punto de anclaje donde está montado.

Con el comando:

fdisk -l

identificaremos las particiones de los discos en el sistema.

Con la herramienta hdparm que hemos instalado previamente obtendremos un informe detallado de las características de fabricación del disco:

hdparm -I /dev/sdb

nos proporciona el siguiente informe (sólo un extracto del total que es mucho más completo):

ATA device, with non-removable media
Model Number:       WDC WD20EARS-00MVWB0
Serial Number:      WD-WCAZA2938738
Firmware Revision:  51.0AB51
Transport:          Serial, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6
Standards:
Supported: 8 7 6 5
Likely used: 8
Configuration:
Logical         max     current
cylinders       16383   16383
heads           16      16
sectors/track   63      63

CHS current addressable sectors:   16514064
LBA    user addressable sectors:  268435455
LBA48  user addressable sectors: 3907029168
Logical/Physical Sector size:           512 bytes
device size with M = 1024*1024:     1907729 MBytes
device size with M = 1000*1000:     2000398 MBytes (2000 GB)
cache/buffer size  = unknown

Ahora que ya tenemos identificado el disco y sus características comprobaremos las salud de un disco cualquiera.

En primer lugar comprobamos que el disco soporta la tecnología SMART (sistema implementado en la mayoría de discos ATA-3, IDE y SCSI-3).

La comprobación más básica:

smartctl -i /dev/sdb

Activaremos SMART:

smartctl -s on -d ata /dev/sdb

SMART está operativo si se nos muestra por pantalla:

smartctl version 5.33 [x86_64-redhat-linux-gnu] Copyright (C) 2002-4 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.

El mensaje tipo cuando un disco se encuentra fallando es :

WHEN_FAILED : FAILING_NOW

Podemos obtener información más detallada del fallo con el comando:

smartctl –atributes –log=selftest /dev/sdb

Smartctl puede hacer variostipos de comprobaciones, la primera, que se ejecuta con -s se denomina online test y no tiene efecto en el disco mientras se ejecuta. La segunda, -d,  puede degradar nuestro disco y finalmente la tercera, ejecutada con -o tiene carácter periódico y automático, programable.

La comprobación extendida del disco se realiza con la siguiente opción:

smartctl -d ata -t long /dev/sdb

para comprobar si se han producido errores:

smartctl -d ata -l selftest /dev/sdb

Eliminar directorios y ficheros en base a extensión o nombre

Archivado en: linea de comandos — Etiquetas: , , — mohicano @ 2:54 pm

Para encontrar en el directorio donde nos encontramos cualquier fichero con la extensión nfo y eliminarlo. También podría utilizarse para eliminar directorios cambiando rm por rm -rf.

find . -iname “*.nfo” -exec rm {} \;

junio 8, 2011

Cambiar permisos a ficheros concretos

Archivado en: linea de comandos — Etiquetas: , — mohicano @ 1:21 pm

Una entrada corta pero que puede ser muy útil. A veces copiando archivos el usuario que los creó les dio permisos especiales que ahora no nos permiten leer o cambiar el archivo. Ir uno a uno cambiando los permisos sería muy tedioso por lo que podemos acudir a la línea de comandos.

find . -perm 755 -exec chmod 644 {} \;

Con este comando localizamos los ficheros con permisos 755 y luego ejecutamos la sentencia chmod para cada uno de los ficheros. No me paro a describir los permisos pero un buen lugar para aprenderlos al detalle sería éste y para ver más opciones y ejemplos con find tenemos este otro.

Obviamente puede usarse para localizar todo tipo de archivos en función de sus múltiples características por lo que es una navaja suiza muy interesante.

Actualización 1.0: He encontrado un par de javascripts para comprobar los permisos que tienen nuestros ficheros y que pueden ser muy útiles cuando tienes un lío de números en la cabeza, el primero es más sencillo y fue el original , o eso parece y el segundo es más completo. Los habría añadido aquí de no ser porque a la gente de wordpress.com no les gusta que se ejecute javascript.

junio 29, 2009

Convertir imagen en .bin a .iso

Archivado en: linea de comandos — mohicano @ 7:55 pm

A través de consola podemos convertir una imagen de CD o DVD de .bin y .cue (los dos archivos vienen siempre juntos , o sino tendremos la imagen incompleta) y convertirla a .iso , un formato más estándar y fácil de montar en nuestro sistema.

Para ello emplearemos la utilidad binchunker , o en línea de comandos, bchunk.

sudo apt-get install bchuk

y el comando para empleo

bchunk imagen.bin imagen.cue imagen.iso

octubre 22, 2008

Teclado español en uno americano (102 teclas)

Archivado en: linea de comandos — Etiquetas: , , — mohicano @ 11:31 am

Para la gente que corre windows virtualizado en vmware o virtualbox en un portátil.  Si el teclado es americano , no sólo las teclas no se corresponden con las etiquetas que tienen impresas, sino que además les falta una tecla el mayor menor “<” “>”. Esta tecla se puede escribir ejecutando el teclado en pantalla de las aplicaciones que windows instala por defecto, pero es un poco engorroso estar siempre con el teclado encima (en Teclado hay que poner el de 102 teclas).

Otro modo de solucionar este problema, la solución elegante sería modificar el registro. Para ello se puede emplear un genial programa

http://www.randyrants.com/2004/03/sharpkeys_11_of.html

Una vez instalado le daremos a añadir una tecla y emplearemos el teclado en pantalla para escribir el mayor menor que asociándolo a la tecla que más nos apetezca. Grabaremos el registro y una vez hagamos logon de nuevo ya estará aplicado el parche.

septiembre 2, 2008

Mencoder : Ejemplos de uso

Archivado en: linea de comandos — Etiquetas: — mohicano @ 12:46 am

Estoy metido en faena con mencoder y con distintas opciones de codificación. Teniendo en cuenta que debe ser uno de los programas en linux con mayor número de opciones y parámetros a veces se hace complicado leerse todas las opciones.

Encontrar buena información relativa a ejemplos también es complicado y pese al excelente archivo de recopilación que es delicious he decidido mostrar alguno de los ejemplos más comunes.

Convertir mkv a xvid empleando hilos (para cpus con más de 1 core):

mencoder -nosound -noskip -mc 0 entrada.mkv -ovc xvid -xvidencopts bitrate=1200:threads=3 -o salida.avi

en primer lugar, mencoder (o en su defecto una versión recompilada /usr/local/mplayer/bin/mencoder ya que sólo en el nuevo xvid build xvid-1.2.0-dev se permite codificación multihilo) , después nos saltamos la recodificación de las cadenas de audio ya que puede (en mi caso lo hizo) dar problemas , el archivo de entrada, la salida en xvid y sus opciones más típicas (bitrate y threads) y el archivo de salida.

Convertir de ac3 a mp3

transcode -i entrada.ac3 -a 0 -x null,ac3 -g 0×0 -s 4.47 -y raw -m salida.mp3 -E 44100

pasamos el fichero de entrada, le indicamos el tipo de archivo que es, le decimos el tipo de salida que queremos , le aplicamos la ganancia (4.47 en nuestro caso, subir si necesitáis más volumen) le decimos que la salida es un fichero mp3 a 441000 de tasa de muestreo.

Normalizar el audio mp3

Para normalizar el audio podemos emplear distintos programas , normalize , mp3gain o ffmpeg (aunque como hemos visto transcode también lo puede normalizar).

sudo apt-get install mp3gain normalize-audio

con mp3gain

mp3gain -r -d 2.0 entrada.mp3

con lo cual le decimos que normalice (por defecto lo hace a 89dB), a veces no será suficiente, con -d valor_numérico subiremos el nivel (ojo, nos pedirá que aceptemos los cambios).

Extraer pistas ( subtítulos,  audio , video )   de un mkv

mkvextract tracks entrada.mkv numero_de_pista:salida.extensión

Le pasamos el comando mkvextract seguido de tracks y a continuación el fichero de entrada, le indicamos el nombre de:

  • la pista de subtítulos que queremos extraer (mkinfo fichero nos lista esa información)  y le pasamos la salida con extensión .srt (esto es valido si el fichero es de texto y srt).
  • la pista de vídeo (generalmente el track 1) para lo cual bastará como salida.extensión poner por ejemplo video.extensión
  • las pistas de audio a extraer con la extensión correspondiente, para un fichero dual español-inglés pondremos 1:audio_es.ac3 2:audio_en.ac3

Lo más interesante es que si lo hacemos todo junto la extracción de todos  los componentes se realiza en una sóla lectura del archivo y es más rápido.

Crear un fichero mkv como container de distintos formatos

mkvmerge -o salida.mkv -A video.avi –default-language es audio_es.mp3 –language 0:en audio_en.ogg subs_forzados.srt subs_es.srt –language 0:en subs_en.srt

Creamos un fichero salida.mkv que contiene un fichero de video que es el original (al que le decimos con -A que no le copie el audio), asignamos los audios y los subtítulos.

Convertir un MOV de Quicktime a MPEG-2 (DVD)

ffmpeg -i entrada.mov -threads 3 -target dvd salida.mpg

Convertir un DVD de alta calidad a un vídeo de menor resolución MPEG-2 (SVCD)

ffmpeg -i entrada.mpg -threads 3 -target svcd salida.mpg

Extraer el audio de un MKV remuxearlo a MP3

mplayer -vc dummy -vo null -ao pcm:file=salida.wav entrada.mkv

extraemos el audio en pcm (wav)

normalize-audio salida.wav

lo normalizamos para asegurarnos de que no está muy bajo

lame salida.wav –cbr -b 128 salida.mp3

codificamos el WAV a MP3

mencoder entrada.mkv -ovc xvid -nosound -mc 0 -noskip -xvidencopts pass=1 -o entrada.avi

extraemos el video original

mencoder entrada.avi -oac copy -ovc copy -audiofile salida.mp3 -o salida.avi

muxeamos de nuevo con el audio.

Convertir un MKV a un AVI que pueda ser leido por la XBOX360

mencoder entrada.mkv -ffourcc XVID -ovc lavc -lavcopts vcodec=mpeg4:threads=8:vbitrate=$vbitrate:cmp=2:subcmp=2:trell=yes:v4mv=yes:mbd=2 -oac lavc -lavcopts acodec=ac3:abitrate=384 -channels 6 -o salida.avi

Para más referencias sugiero las páginas de manual de mencoder, transcode, ffmpeg y mkvextract o mkvmerge (mkvtools).

Es decir :

man mencoder , man transcode, man ffmpeg , man mkvextract , man mkvmerge

agosto 29, 2008

Convertir MKV a AVI xvid o divx

Archivado en: linea de comandos — Etiquetas: , — mohicano @ 7:02 pm

Imaginad que tenéis un archivo en 720p o 1080p en el contenedor de Matroska (MKV) y que queréis pasarlo a XVID o DIVX5 porque ocupa demasiado espacio o cualquier otra razón (que vuestro reproductor sobremesa no quiera leerlo). Para hacerlo podéis emplear Kommander.

sudo apt-get install kommander

Una vez tenemos instalado el kommander (que no deja de ser un intérprete entre kde y scripts o aplicaciones que los usuarios desarrollan):

wget http://www.kde-apps.org/CONTENT/content-files/74842-Mkv2Avi.kmdr.tar.gz

tar xvzf 74842-Mkv2Avi.kmdr.tar.gz

Podéis poner el script descromprimido donde os apetezca, lo más cómodo será con el archivo que queráis convertir. A continuación ejecutáis el script:

kmdr-executor Mk2Avi.kmdr

Konqueror integra ya kommander así que podéis dar doble click si queréis y se ejecutará.

A continuación saldrá un GUI básico donde poner el directorio origen, directorio destino, tipo de codec que deseamos (XVID o DIVX5) , bitrate (bajarlo si queréis que ocupe menos) y resolución deseada (cuidado con los cambios  de resolución que los carga el diablo).

Tras un buen rato que dependerá de la CPU de tu ordenador tendrás el fichero deseado.

agosto 21, 2008

Convertir WMV a AVI

Archivado en: linea de comandos — Etiquetas: — mohicano @ 11:50 am

A veces nos bajamos un video en WMV que luego da problemas al ser reproducido porque el container es, admitamoslo, un desastre.

Lo más sencillo que podemos hacer con él si tenemos pensado guardarlo y reproducirlo más veces en el futuro es convertirlo a avi.

mencoder infile.wmv -ofps 25 -ovc lavc -oac copy -o outfile.avi

Esto en el caso de que el fichero en wmv sea PAL  (a 25fps) , en caso de ser NTSC (a 23.976fps).

Para saber cual es el frame rate (es decir , el número clave que hay que usar) lo mejor es darle a propiedades de reproducción. Generalmente cualquier reproductor detallará esa información.

Problemas con el audio en VMWare

Archivado en: aplicaciones — Etiquetas: , — mohicano @ 11:32 am

A veces, tras una reinstalación de vmware o por actualizar el sistema, los permisos cambian en la librería de los drivers de ALSA que se encargan del audio en vmware.

Para solventar el error siguiente:

ERROR: ld.so: object ‘libaoss.so’ from LD_PRELOAD cannot be preloaded: ignored.

lo mejor es cambiar los permisos del fichero.

El comando a ejecutar (en Ubuntu) es:

chmod +s /usr/lib/libaoss.so

Con eso solucionaremos el problema.

mayo 28, 2008

Leamos revistas gratis y offline

Archivado en: linea de comandos — Etiquetas: , , — mohicano @ 6:32 pm

Probablemente habréis leido sobre el servicio de Zinio , una empresa dedicada a comercializar publicaciones (revistas, periódicos, magazines) que ha sacado una versión demo para iPhone. Pues desde linux y gracias a su poderosa linea de comandos vamos a descargar estas publicaciones.

En primer lugar, empleamos la extensión de User Agent Switcher de Firefox y damos de alta un nuevo User Agent con la etiqueta iPhone:

Description : iPhone

User Agent: Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A102 Safari/419 (United States)

Grabamos y seleccionamos en el menú Herramientas , User Agent Switcher. Nos dirigimos a zinio, que ahora entenderá que somos un iphone y nos mostrará las páginas para el iphone.

http://www.zinio.com/iphone

A continuación escogemos una revista que queramos descargar. Nos vamos al slider de la parte de arriba y hacemos click en la portada. Una vez estamos viendo la portada a tamaño completo , clickamos botón derecho del ratón y seleccionamos la ruta donde se encuentra la imagen, que está en formato jpg. Como ejemplo he seleccionado un número de NME:

http://imgs.zinio.com/iphone/issues/258289917/images_pages//258289917_1.jpg

Ahora entra en función el poder de linux y la línea de comandos. Necesitamos los siguientes paquetes: wget, imagemagick, pdfjam.

sudo apt-get install wget, imagemagick, pdfjam

Una vez instalados, solo tenemos que realizar un bucle que se encargue de llamar a wget y le pase una a una todas las direcciones con los enlaces a las imágenes de la revista que queramos.

Creamos el directorio:

mkdir NME

Entramos en el directorio:

cd NME

Ponemos un límite al número de páginas que tendrá nuestra publicación:

export LIMIT=200

Realizamos el bucle para pasarle a wget cada una de las páginas, la variable es a y ojo, a wget le pasamos el user-agent y la dirección con $a para que se vaya incrementando la página. Con done cerramos el bucle:

for ((a=1; a <= LIMIT ; a++))

do wget –user-agent=”Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML,like Gecko) Version/3.0 Mobile/4A102 Safari/419 (United States)” “http://imgs.zinio.com/iphone/issues/258289917/images_pages//258289917_$a.jpg

done

Sugiero que en este momento lanzéis el visor de imágenes de vuestra elección y eliminéis todas las páginas con publicidad. Con convert transformamos los jpg en pdf, además los ? sustituyen a la cifra de las páginas (unidades, decenas y centenas) de tal modo que las toma en el orden adecuado:

convert 258289917_?.jpg 1.pdf ; convert 258289917_??.jpg 2.pdf; convert 258289917_???.jpg 3.pdf

Unimos los tres cachos en 1 revista:

pdfjoin 1.pdf 2.pdf 3.pdf –outfile = NME.pdf

Con esto ya tenemos nuestra revista lista en pdf para meterla en nuestro reader favorito.



Tema Silver is the New Black. Blog de WordPress.com.

Seguir

Get every new post delivered to your Inbox.