Categorías
Sin categoría

Montar imagenes en el sistema de ficheros

Para el montaje de imagenes se puede hacer de dos modos, directamente con mount o utilizando el comando losetup. Veremos como con losetup es mucho más sencillo.

Imaginemos que tenemos un fichero de imagen de un usb o de un disco duro, el fichero lo llamaremos imagenrecuperada.img y se encuentra en el directorio /home/usuario/Descargas, por lo que su ruta completa será /home/usuario/Descargas/imagenrecuperada.img , por lo tanto, para montar dicha imagen mediante mount, primero deberemos de saber donde empieza la partición que nos interesa montar, lo haremos mediante el comando fdisk, teclearemos fdisk -lu /home/usuario/Descargas/imagenrecuperada.img ya que tenemos que sacar el offset de la partición que nos interesa.

Esto nos dará el tamaño de sector (512bytes) y que la partición empieza en el sector 63, por lo tanto el offset será de 32256. Una vez obtenido, ya podemos montarlo mediante mount -o loop,offset=32256 -t vfat /home/usuario/Descargas/imagenrecuperada.img /rutadondequeremosmontarimagen

Después de pelearme varias veces con el offset descubrí que hay un modo mucho más sencillo de hacer el montaje. Mediante losetup simplemente configuramos primero el dispositivo virtual con losetup /dev/loop1 /home/usuario/Descargas/imagenrecuperada.img y ahora la imagen, al haberla convertido en un dispositivo más, simplemente lo montamos como siempre. mount /dev/loop1 /rutadondequeremosmontarimagen

Evidentemente mediante la utilización de losetup es mucho mas sencillo. Espero que os sirva de ayuda.

Categorías
Linux Seguridad Sin categoría

Recuperar ficheros con ddrescue

Para recuperar ficheros con ddrescue, primero deberemos instalarlo con apt-get install gddrescue (equipos basados en debian) una vez instalado, procederemos a utilizarlo del siguiente modo.

#Recuperamos el usb que tenemos como sdb en fichero /tmp/imagenrecuperada.img

ddrescue -d -r3 /dev/sdb /tmp/imagenrecuperada.img /mnt/test.logfile

Con la opción -d le decimos a ddrescue que acceda directamente al dispositivo y no utilice la cache del kernel, con -r 3 que intente hasta 3 veces si hay algun sector defectuoso que no lo lee a la primera. Esta opción se podria quitar.

Si todo sale ok nos saldra lo siguiente, donde nos indica el tamaño de la imagen recuperada etc.

Ahora ya tenemos una imagen del disco que al montarlo en el sistema de ficheros , podremos acceder a los ficheros sin problemas. Para ello deberemos «montar» la imagen en una carpeta.

Primero obtendremos de donde empieza la particion que queremos montar, para ello pondremos fdisk -l -u imagenrecuperada.img y obtendremos que cantidad es cada sector 512 y que nuestra imagen empieza en el sector 63, con lo que le tendremos que decir al comando mount que nuestro offset real es de 32256.

El comando para montarlo en carpeta(que abremos creado previamente ) es

mount -o loop,offset=32256 -t vfat /tmp/imagenrecuperada.img /tmp/ficherosarecuperar/

la opcion de loop es para cuando montamos ficheros en vez de dispositivos, el offset para indicar donde empieza nuestra particion y -t vfat para decirle que tipo de sistema de fichero es.

Hay una alternativa a este tipo de montaje que lo hace más sencillo, aquí podeis verlo (es la segunda manera de hacerlo) Montar imagenes en el sistema de ficheros

Ahora ya podemos recuperar todos nuestros ficheros. Suerte y a por ellos.

Categorías
Linux Sin categoría

Saber si un dispositivo se ha montado en RO o RW

En esta entrada veremos un script para saber si un dispositivo en concreto ( o un directorio), se ha montado en modo lectura RO o en modo escritura RW.

#este primer ejemplo nos dice si el dispositivo /dev/sdb1 está montado RO o RW, sino devolverá vacio.
grep /dev/sdb1 /proc/mounts |cut -d" " -f4|cut -d"," -f1

#en este caso lo mismo pero para un directorio
grep /media/usb /proc/mounts |cut -d" " -f4|cut -d"," -f1

Como podéis ver en los ejemplos, primero medianta grep, «filtramos» las entradas de los dispositivos montados por el valor de un dispositivo en concreto y en el segundo caso por un directorio, una vez filtramos la linea, con «cut» la cuarteamos primero por espacios y luego por las comas.

En la imagen de más abajo podéis ver un ejemplo que lo aclara aun más. Supongamos que queremos saber si la carpeta /run/user/116 esta montada como RO o RW, para ello filtraremos en el proceso de montaje mediante grep 116 /proc/mounts que nos dara tmpfs /run/user/116 tmpfs rw,nosuid,nodev,relatime, size=378280k,mode=700,uid= 116,gid=122 0 0 despues con cut -d» » -f4 dividiremos por los espacios y cogeremos el 4 elemento con lo que nos quedará rw,nosuid,nodev,relatime, size=378280k,mode=700,uid= 116,gid=122 0 0 por último volvemos a dividir, pero esta vez por la comas y nos quedamos con el primero con cut -d»,» -f1 que nos da rw que era lo que buscábamos desde un principio.

Categorías
Excel Office Sin categoría

Buscarx tutorial básico con ejemplos

En este tutorial vamos a ver como se utiliza la nueva fución de excel Buscarx, con ella se facilita de manera notable tanto la busqueda de valores en filas, columnas y rangos como la obtención de los mismos. Ahora la función es muy mas potente y flexible.

Empecemos por su sintaxis, =BUSCARX(valor_buscado; matriz_buscada; matriz_devuelta; [si_no_se_encuentra]; [modo_de_coincidencia]; [modo_de_búsqueda]) 

Como podeis ver, cambia bastante respecto las «antiguas» BuscarV y BuscarH, ahora para podemos devolver rangos enteros, devolver valores si no se encuentra el valor buscado, muchas mas opciones en cuanto a valores de coincidencia y varios «modos de busqueda» que nos permiten incluso hacer ordenaciones de los datos antes de «encontrarlos». Aquí podeis ver una explicación de los argumentos.

argumentoDescripción
valor_buscado RequeridoEl valor buscado
matriz_buscada RequeridoLa matriz o rango para buscar
matriz_devuelta RequeridoLa matriz o rango para devolver
[si_no_se_encuentra] OpcionalSi no se encuentra una coincidencia válida, devolver el texto [if_not_found] que proporcione. Si no se encuentra una coincidencia válida y no hay [if_not_found], se devolverá #N/A.
[modo_de_coincidencia] OpcionalEspecifique el tipo de coincidencia: 0: coincidencia exacta. Si no se encuentra ninguno, devolver #N/A. Este valor es el predeterminado. -1: coincidencia exacta. Si no se encuentra ninguna, devolver el siguiente elemento más pequeño. 1: coincidencia exacta. Si no se encuentra ninguna, devolver el siguiente elemento más grande. 2: una coincidencia comodín donde *, ? y ~ tienen significado especial.
[modo_de_búsqueda] OpcionalEspecifique el modo de búsqueda que se usará: 1: realizar una búsqueda empezando por el primer elemento. Este valor es el predeterminado. -1: realizar una búsqueda inversa empezando por el último elemento. 2: realizar una búsqueda binaria que se base en que lookup_array se ordene en orden ascendente. Si no está ordenada, se devolverán resultados no válidos. -2: realizar una búsqueda binaria que se base en que lookup_array se ordene en orden descendente. Si no está ordenada, se devolverán resultados no válidos.

Pasemos a ver 3 ejemplos.

1. – El uso más sencillo, como si fuera el antiguo Buscarv, ahora es mas intuitivo, hay que poner el valor a buscar, el rango donde buscar y el rango de los datos a obtener. Por defecto la búsqueda es exacta, al contrario que en buscarv. Abajo podeis ver una comparativa de las dos fórmulas para obtener el mismo resultado.

En las imágenes se utilizan los equivalentes en inglés buscar(xlookup) y buscarv(vlookup), aunque son totalmente análogos a la versión española.

2.- Seguimos con el segundo ejemplo, en este caso veremos la potencia de la nueva fórmula respecto buscarv, en este ejemplo devolveremos varios valores en vez de uno solo como es el caso de buscarv.

Como vemos en la imágen, al poner el rango de valores encontrados, vemos como en (3), no solo nos da el nombre del vendedor sino que también el apellido!!!, sin tener que volver a escribir otra vez la fórmula para obtener cada celda.

Este es el resultado final de utilizar la fórmula en este ejemplo.

3.- Utilización del parámetro [si_no_se_encuentra], ahora en buscarx podemos poner nosotros el valor que queramos que se devuelva cuando no se encuentra el elemento buscado. Recordad que esto no era posible con buscarx y buscarv que devolvián el N/A#.

En el ejemplo vemos como al no encontrar a SALES5 (1) puesto que no existe, se devuelve «No Encontrado», que es el texto que hemos puesto en la fórmula(2)

Aquí tenéis el excel con los ejemplos por si os hiciese falta.

Espero que os haya gustado, en entradas posteriores, veremos que buscarx tiene mucho más potencia que lo que hemos visto hasta ahora.

Categorías
Apps Ofimatica

Impresoras PDF

Quereis pasar una página web, un word o cualquier otro documento a PDF?, muchos programas ofrecen la exportación a PDF, pero para aquellos casos que la exportación no sea posible, siempre está como alternativa la impresión a PDF.

Muchas veces te has encontrado con una página web que querías guardar o imprimir mas tarde. O incluso que querías tener un tipo de «justificante» pero la propia web no te permitía la opción de exportar a PDF. Entonces la solución es «imprimirlo» en PDF. La impresión en PDF consiste en enviar un documento, ya sea una pagina web, un word, excel, imagen, etc a imprimir, pero con una impresora «especial», esta impresora no es más que una impresora virtual de PDF, es virtual porque no se trata de una impresora de verdad, sino de una ficticia que nos convertirá nuestro documento en PDF.

Hoy en día los sistemas operativos suelen proporcionar por defecto impresoras PDF o en su defecto o si queremos tener más opciones o posibilidades, podemos descargar de internet otras alternativas que pueden ser igual o incluso más interesantes.

En windows 10, nos podemos encontrar con la impresora «Microsoft Print to PDF», la cual nos convertirá cualquier documento a PDF.

. Si por alguna razón no aparece, deberemos ir a la ventana de ejecutar con + R y escribiremos optionalfeatures después le daremos al enter y

veremos la ventana de las opciones adicionales, donde nos tenemos que asegurar que la opción «imprimir en PDF de Microsoft» esté marcada.

De este modo podremos utilizar la impresora PDF que nos proporciona el sistema. Si por otra parte, queremos utilizar otras impresoras, que son gratuitas y tienen mas funcionalidades como utilización de scripts, envíos de email, marcas de agua, etc. a continuación os dejo una lista de las más utilizadas.

  • Pdfcreator https://www.pdfforge.org/pdfcreator
  • Bullzip https://www.bullzip.com/products/pdf/info.php
  • Cutepdf https://www.cutepdf.com/Products/CutePDF/writer.asp

Espero que os sirva de ayuda.

Categorías
Linux OMV

No puedes acceder por ssh a tu servidor openmediavault

Has acabado de finalizar mediante ssh tu servidor openmediavault. Estás orgulloso de ver como funciona, pero al día siguiente intentas volver a entrar a tu servidor mediante ssh y ya no puedes hacerlo. Intentas con otros usuarios y tampoco funciona!!! Tránquilo, hay solución, el openmediavault (aka OMV) te ha cambiado la configuraciónde usuarios.

El OMV una vez instalado, modificado los usuarios del sistema y deshabilitado a los usuarios del grupo ssh, debido a esto ya no te deja entrar por consola. Lo que debes hacer es volver a añadir a los usuarios que te interesen al grupo ssh. A continuación tienes los pasos de como hacerlo.

1.- Primero iremos a Servicios->ssh (1) y nos aseguraremos que el servicio está habilitado (2)

2.- A continuación, iremos al apartado de Permisos de acceso, usuario (1), eligiremos el usuario que queremos cambiar (en este caso usuario (2)), he ocultado los nombres reales por seguridad. Una vez seleccionado pulsamos Editar (3) y vamos a la pestaña Grupos (4), una vez allí bajamos hasta ssh (5) y lo seleccionamos.

Por último simplemente hacemos clic en Salvar y al preguntar aplicar cambios decimos que si.

Ahora si intentais entrar por ssh, ya no os pondra problemas. Espero que os funcione.

Categorías
Powershell

Error 0xFFFD0000 al ejecutar powershell en tareas programadas

Si os sale el error 0xFFFD0000 al ejecutar un powershell desde tareas programadas, se debe a que la ruta del script no es la correcta. Si lo volveis a comprobar y veis que la ruta parece la correcta, seguramente será que tendreis que poner entre «» la ruta para para escapar los espacios.

Ejemplo del error

Por ejemplo, si tenemos un fichero en c: llamado script espacio.ps1 habría que ponerlo tal que así

De este modo evitamos que nos de error debido a los espacios en la ruta.

Categorías
Linux

Reemplazar en nano

Para reemplazar en nano hay que utilizar la combinación de teclas ^w (ctrl+w) para la búsqueda y luego ^\ (Ctrl+\) para el reemplazo, el problema es que con una configuración de teclado español, es muy complicado hacer el ctrl+\, por lo que en su lugar, teneis que hacer el Alt+r. Es decir para reemplazar en nano con un teclado español, hay que seguir la combinación Ctrl+w buscar el elemento, luego Alt+r confirmar el elemento buscado y luego reeemplazar con el texto final.

Categorías
Powershell Windows

Como ejecutar un script de powershell de manera programada

Para programar la ejecución de scripts de powershell, deberemos hacer lo siguiente. (1)Iremos al buscador de windows y escribiremos programar(2). Nos saldrá el icono de «Programador de tareas»(3), donde haremos clic.

Crearemos una tarea programada, para lo cual, pulsaremos botón derecho sobre Programador de tareas(local)(1), y elegiremos (2)Crear tarea…

Nos aparecerá la ventana de la tarea con varias pestañas. Nos centraremos en General, Desencadenadores y Acciones.

En general, pondremos un nombre a la tarea(1). Luego elegiremos «Ejecutar tanto si el usuario inició sesión como si no»(2), para que se ejecute como servicio, y no solo cuando se haga login. Por último, si vamos a borrar ficheros que requieran permisos de administrador, elegiremos «Ejecutar con los privilegios más altos»(3). Al darle aceptar nos preguntará el user y pwd para que se pueda ejecutar de modo desatendido.

Pasaremos a Desencadenadores (1), donde elegiremos cuando ejecutarlo. Para ello, haremos clic en Nuevo(2), elegiremos en «iniciar la tarea» «según una programación»(3) y más abajo(4) le diremos la programación que queremos.

Y finalmente, le indicaremos que script queremos ejecutar. Iremos a (1) Acciones, luego (2)Nuevo y en programa(3) pondremos powershell, luego, en «Agregar argumentos(opcional)»(4) pondremos -f RUTACOMPLETADELSCIPT.ps1 por ejemplo si nuestro ficheros se llama ejemplo.ps1 y está en c:\tmp sería -f c:\tmp\ejemplo.ps1

Luego dariamos a aceptar a la acción y a la tarea, y ya la tendríamos lista para ser ejecutada cada dia a las 17:05:22

Acordaros de dejar vuestro comentario.

Categorías
Powershell Sin categoría

Borrar ficheros más antiguos que una fecha dada

Con powershell podemos realizar facilmente esta tarea. Hay veces que nos interesa borrar de un directorioo (y sus subdirectorios), los ficheros que hayan sido modificados hace mas de un mes (por ejemplo). Además veremos como ejecutar este script de manera programada.

Empezemos con el script de powerhshell que nos permitirá borrar los ficheros mas antiguos que diez dias. (este valor lo podeis cambiar con la variable Daysold

$Daysold = 10
$Folder = "c:\windows\temp"

#Borramos los ficheros que haya en la Variable Folder, que sean mas viejos que Daysold
Get-ChildItem $Folder -Recurse -Force -ea 0 |
? {!$_.PsIsContainer -and $_.LastWriteTime -lt (Get-Date).AddDays(-$Daysold)} |
ForEach-Object {
   $_ | del -Force
   $_.FullName | Out-File C:\tmp\deletedlog.txt -Append
}

#Eliniar directorios vacios
Get-ChildItem $Folder -Recurse -Force -ea 0 |
? {$_.PsIsContainer -eq $True} |
? {$_.getfiles().count -eq 0} |
ForEach-Object {
    $_ | del -Force
    $_.FullName | Out-File C:\tmp\deletedlog.txt -Append
}
#Los nombres de los ficheros eliminados los guardamos en C:\tmp\deletedlog.txt por si queremos tracearlo.

Como podeis ver en el código, tenemos dos variables, Folder y Daysold, que hacen referencia a la carpeta donde queremos borrar todos los ficheros, cuya fecha de modificación es mayor de 10 dias que es el valor de Daysold.

Al ejecutar este script, el primer bloque eliminará todos los ficheros mas antiguos de 10 dias, y después la seguna parte del script eliminará los directorios que se hayan quedado vacios. Si queremos dejar los directorios vacios, solo tenemos que eliminar las lineas de la 13 a la 19, que se encargan del borrado de los mismos.

Por otra parte guardamos el nombre de los ficheros borradoes en el fichero C:\tmp\deletedlog.txt por si queremos tener un log del borrado realizado.

Si quereis programar el script, lo podeis hacer facilmente siguiendo este artículo. Como ejecutar un script de powershell de manera programada

Espero que os haya gustado el artículo. Dejad vuestros comentarios!!