Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.

Nombre de usuario
  

Contraseña
  





Buscar en los foros

(Búsqueda avanzada)

Estadísticas del foro
» Miembros: 116
» Último miembro: Mike Oakman
» Temas del foro: 53
» Mensajes del foro: 83

Estadísticas totales

Usuarios en línea
Actualmente hay 20 usuarios en línea.
» 0 miembro(s) | 19 invitado(s)
Google

Últimos temas
very good
Foro: Charla general
Último mensaje por: Frbetsar
30-03-2024, 12:15
» Respuestas: 0
» Vistas: 213
Desempaquetar y empaqueta...
Foro: Android
Último mensaje por: Danielsip
14-02-2024, 12:07
» Respuestas: 16
» Vistas: 30,993
Web scraping con python B...
Foro: Python
Último mensaje por: chujalt
12-09-2023, 20:29
» Respuestas: 2
» Vistas: 4,842
Web scraping con python y...
Foro: Python
Último mensaje por: blackcatiswhite
12-09-2023, 10:32
» Respuestas: 1
» Vistas: 3,854
solicitud tablet Point of...
Foro: Android
Último mensaje por: chujalt
28-03-2022, 21:10
» Respuestas: 3
» Vistas: 8,141
Presentacion
Foro: Presentaciones
Último mensaje por: chujalt
28-03-2022, 17:31
» Respuestas: 1
» Vistas: 5,867
Desempaquetar y empaqueta...
Foro: Android
Último mensaje por: trasnoastur
08-12-2021, 21:00
» Respuestas: 5
» Vistas: 18,756
Presentación
Foro: Presentaciones
Último mensaje por: chujalt
08-12-2021, 20:08
» Respuestas: 1
» Vistas: 5,117
Python, insertar saltos d...
Foro: Python
Último mensaje por: chujalt
03-08-2021, 20:00
» Respuestas: 0
» Vistas: 3,623
Problemas instalar Linux ...
Foro: Linux
Último mensaje por: chujalt
03-08-2021, 19:55
» Respuestas: 1
» Vistas: 6,214

 
  Unpack - repack Rockchip RK3066 y RK3188. --- Linux
Enviado por: chujalt - 14-03-2021, 21:39 - Foro: Android - Sin respuestas

Saludos amigos... este tutorial es para desempaquetar y volver a empaquetar (después de hacer las modificaciones que queramos a nuestra rom) Roms para los dispositivos que monten Rockchip RK3066 o RK3188 en formato *.img.

Yo lo he trabajado bajo Ubuntu 12.04.

La herramienta necesaria es rk3XXX_mod_tool... la podeés bajar de AQUI o AQUÍ. La herramienta no es mia.... mérito a sus autores. Aunque ponga que es para sistemas operativos de 64 bits, el mio es de 32 y también funciona.

Empecemos:

1. Una vez bajada la herramienta la descomprimimos donde queramos.


2. Nos harán falta unas dependencias, si no las tenemos..... abrimos un terminal y tecleamos

Código:
sudo apt-get install libssl-dev


3.Una vez dentro del directorio rk3XXX_mod_tool, ponemos la rom a desempaquetar dentro de la carpeta "unpack"


4. Volvemos al directorio principal de la herramienta y veremos el archivo "menu.sh".... lo ejecutamos.... atención.... si lo ejecutamos y no hace nada es que nos falta otra dependencia.... volvemos a abrir un terminal y tecleamos

Código:
sudo apt-get install dialog

y volvemos a ejecutar "menu.sh".


5.Se nos tendrá que abrir el menú de opciones, lo muestro en esta imagen


[Imagen: cap1.png]




6. Vamos a desempaquetar la rom..... seleccionamos la primera opción "Unpack" y le damos a enter.... nos pedirá confirmación y la herramienta se pondrá a trabajar..... Cuando haya terminado veremos que dentro de la carpeta unpack se habrán creado varios archivos y otra carpeta llamada Image en cuyo interior estarán el system.img, boot.img, recovery.img, kernel.img y otras.


7. Ahora vamos a abrir el system.img.... Seleccionamos la segunda opción del menú "Mount_System" y le damos a enter... nos pedirá confirmación y la contraseña root... la ponemos y veremos que en el directorio principal de la herramienta había una carpeta llamada system_mount que antes estaba vacía.... ahora contendrá todos los archivos del system.img.


8. Como esa carpeta se ha montado como root, nos dejará ver el interior, pero no trabajar con él.... entonces vamos a la opción del menú "open_root_file_explorer", le damos a enter y tras la solicitud de confirmación se nos abrirá directamente la carpeta desde una ventana nautilus con privilegios root.... Ya podemos hacer los cambios en system que queramos.


9. Una vez hechos todos los cambios que queríamos vamos a la opción "unmount_system". le damos a enter y tras la pertinente solicitud de confirmación desmontará el system.... veremos que la carpeta System_mount vuelve a estar vacía.


10. Vamos a volver a empaquetar la rom.... seleccionamos la opción "Initial_Package_Rom" y tras la confirmación la herramienta se pondrá a trabajar. Cuando termine veremos que todo está como antes.


11. Ahora vamos a la opción "Final_Package_RK3066" o "Final_Package_RK3188", según sea nuestro caso y tras el trabajo de la herramienta veremos que dentro de la carpeta unpack hay un archivo nuevo en formato fecha_hora.img... esa es nuestra rom cocinada, pero todavía no ha acabado el proceso.


12. Nos dirigimos a la opción del menú "Clean_Unpack_Dir", enter, confirmación y veremos que se han borrado todos los archivos, que estamos como al principio, pero en la carpeta unpack, dentro de la carpeta original_image estará la rom original, se habrá cambiado el nombre... será fecha_hora.img, esa es la rom original y en el directorio principal de la herramienta habrá una carpeta llamada final_images.... ahí está nuestra rom cocinada con nombre fecha_hora_final_rkXXXX.img.


13. Ya por último le damos a la última opción "exit" para salir.


14. Como veréis, en la herramienta hay mas opciones, cada cual que las utilice a su gusto o necesidades.


15. Si trabajar con el system no se puede hacer de una sola vez, que lo vais a hacer en varias sesiones..... en la primera sesión haríamos hasta el punto 9 y dejaríamos todo lo demás como está, guardaría los cambios que hemos hecho.... luego en la siguiente sesión empezaríamos por el punto 7 directamente y volveríamos a acabar en el 9.... así hasta que finalicemos todas las sesiones para modificar el system en cuyo caso ya llegaríamos hasta el final.


16. Próximamente, en el siguiente post se explicará como abrir el boot.img y recovery.img, que esta herramienta no lo dispone.


Bueno, espero haberme explicado bien y que le sirva a alguien.... saludos :ok:

Imprimir

  Utilizar ADB (Android Debug Bridge) en la red.
Enviado por: chujalt - 14-03-2021, 21:37 - Foro: Android - Sin respuestas

Te sientas a trabajar. Abres el proyecto y en el tiempo que le toma cargar al Eclipse sacas de la mochila tu dispositivo y ¡sorpresa! dejaste el cable para conectar tu dispositivo a la máquina en casa. Trabajar con los emuladores que vienen con la SDK de Android tiene su encanto, pero no hay nada como probar tu trabajo en caliente, en un dispositivo real y con mensajes reales. Por esta situación seguro habrán pasado muchos.

El ADB (Android Debug Bridge) brinda muchísimas utilidades al usuario. Puedes instalar, correr, y “debuggear” tus aplicaciones utilizándolo. Copiar archivos hacia y desde tu dispositivo. Es todo una maravilla. En la SDK, viene una versión de ADB, mas si eres usuario de Ubuntu, puedes instalarlo

Código:
apt-get install android-tools-adb

e iniciarlo (es aconsejable hacerlo como root)

Código:
adb start-server

Pues nada, resulta ser que si existe una solución, y la cosa está en conectar ADB utilizando la red. Para hacerlo tienes que tener tu dispositivo rooteado. (Puedes encontrar una aplicación y explicación para hacerlo aquí) y un terminal instalado. Nos vamos al dispositivo, abrimos el terminal y ejecutamos las siguientes sentencias:

Código:
su
setprop service.adb.tcp.port 5555
stop adbd
start adbd

Esto hará que ADB escuche en nuestro dispositivo por el puerto 5555. Ahora nos vamos al ordenador, abrimos el terminal e iniciamos ADB:

Código:
adb start-server

Luego establecemos por que puerto nos vamos a conectar y finalmente pues adentro:

Código:
adb tcpip 5555
adb connect <ip del dispositivo>:5555

Intenta ahora hacer

Código:
adb devices

y verás ahí a tu dispositivo. Bueno, a programar

Una vez terminado, vuelve a ejecutar en tu dispositivo el primer código pero esta vez sustituyendo el puerto por -1 para cerrar la puerta.


FUENTE ORIGINAL

Imprimir

  Script para terminales no compatibles con DsiXda.
Enviado por: chujalt - 14-03-2021, 21:36 - Foro: Android - Sin respuestas

Saludos.

La cocina DsiXda realiza update.zip para muchos dispositivos, los mas conocidos, pero hay otros que no son compatibles y entonces toma una configuración por defecto que en la mayoría de los casos no funciona como debiera.

Con este script haremos compatible la cocina DsiXda con nuestro dispositivo. Es una versión beta, por lo que siempre cabe la posibilidad de mejorarlo.

Cabe decir que cada dispositivo es un mundo y que no funciona en el 100% de los casos, por lo que no me hago responsable de su nulo o mal funcionamiento. Tampoco por el mal uso o la introducción incorrecta de datos.

EL script está pensado para los dispositivos que montan las unidades en la ruta /dev/block/XXXXXX donde las X son el nombre de cada partición.

El script te pide el tipo de formato del dispositivo (yaffs2 o ext4) y el nombre de las particiones.

Para saber esta información tenemos tres formas de hacerlo.

Por teminal, si no tenemos podemos bajarnos el Terminal Emulator del google-play. donde escribiremos

Código:
cat /proc/partitions

Se nos dará información de todas las particiones del dispositivo, pero no a qué corresponde cada una

Código:
cat /proc/mounts

Esta si nos dará las información de las principales particiones y su nombre, es una información un poco liosa, pero fijándote se puede sacar.


Si no se quiere usar la consola se puede instalar la apk DiskInfo del google play, también nos dará la información que necesitamos.


Sacar la información de la partición boot es mas difícil, por lo que a veces no la sabemos, entonces, en realidad he creado dos scripts, uno que nos pide el el nombre de las particiones system, data y cache y otro, además, si la sabemos, la partición boot.

Como alternativa, si no podemos saber el nombre de las particiones, el compañero alfa tango informa que poniendo el "alias" de la partición también funciona, es decir, cuando el script nos pida el nombre de las particiones poner: para la partición system: system, para data: userdata, para cache: cache y para boot: boot

Los scripts necesitan la información que nos vaya pidiendo, por lo que si dejamos un campo en blanco se cerrará sin hacer su trabajo.

FUNCIONAMIENTO:

Asegurarnos que nuestro dispositivo no es compatible.

Una vez bajado el script que nos interesa lo ponemos en la carpeta raiz de la cocina DsiXda.

Le damos permisos de ejecución.

Tener en la cocina una carpeta de trabajo, es decir, una rom lista para hacer un update.zip

Ejecutar el script y darle la información que nos pide, como ya he dicho, si dejamos algún campo en blanco se cerrará.

Ya está, habrá creado el archivo de compatibilidad para nuestro dispositivo, tranquilo, no verás ningún archivo nuevo, lo guarda en otra ruta.

Seguir con la cocina DsiXda para hacer el update.zip

Una vez que se ha ejecutado el script ya se ha creado el archivo de compatibilidad, por lo que no es necesario volver a ejecutarlo cada vez que vayamos a hacer una rom nueva, del mismo tipo de dispositivo, claro.

Script en el que SI conocemos el nombre de la partición boot AQUI

Script en el que NO conocemos el nombre de la partición boot AQUI


Saludos.

Imprimir

  Desempaquetar y empaquetar ROMs System.img y boot.img.
Enviado por: chujalt - 14-03-2021, 21:35 - Foro: Android - Respuestas (5)

Saludos amigos, antes de nada comentaros dos cosas:

  • 1º No me hago responsable de las posibles pifias que se puedan hacer. El método funciona, pero alguien podría tocar algún archivo de la ROM que no debiera y quedarse la tablet bloqueada.
  • 2º Evidentemente las herramientas no las he hecho yo, méritos a sus autores.

-Herramientas necesarias:

Herramientas para Windows (desempaquetar system.img para hacer un update.zip):
  • Creamos una carpeta en la raiz de C, vamos a llamarle cocina, y metemos los tres programas dentro.
    DESCARGA

  • Dentro de la carpeta anterior creamos otra, la llamamos ImgRepacker y metemos los archivos que contiene el zip dentro de ImgRepacker.
    (parece que el enlace está caído, bajarlo de aquí DESCARGA)

Herramientas para Linux (para hacer una custom rom):
  • Introducimos la carpeta ext4_utils dentro de la carpeta personal.
    DESCARGA

-Trabajar desde Windows:
  • 1º Copiamos la rom original y la pegamos dentro de la carpeta ImgRepacker.
  • 2º Ejecutamos runner.bat
  • 3º Con el botón izquierdo del ratón arrastramos la rom dentro de la ventana de runner.bat, damos intro.
  • 4º Nos pedirá que pongamos opciones, ponemos /noiso, damos intro, se pondrá a trabajar.
  • 5º Cuando haya acabado nos hará unas preguntas, no hacemos caso, damos tres veces a intro y se cerrará la ventana.
  • 6º Se habrá creado una carpeta nueva, la abrimos y en su interior veremos varios archivos, entre ellos está system.fex, lo sacamos a la carpeta cocina y le cambiamos la extensión a .img.
  • 7º Doble click en 1.bat. Esto nos creara otra imagen en la misma carpeta. Tranquilos, tarda un poco, a mi unos 20 minutos, y ocupa unos 100 MB mas que el system.img.
  • 8º Creamos una carpeta que se llame ROM_MOD
  • 9º Abrimos ext2explore, FIle --> open image, buscamos la nueva imagen creada y aparecerá en el panel de la izquierda, le damos doble click y en el panel de la derecha aparecerán todos los archivos. En el panel de la derecha click botón derecho, save, buscamos la carpeta ROM_MOD y ya está, el system.img desempaquetado listo para modificar los archivos necesarios y hacer un update.zip.

-Trabajar desde Linux:
  • 1º Metemos la capeta ya descomprimida de ext4_utils en nuestra carpeta personal (si no lo habíamos hecho antes)
  • 2º abrimos una ventana del terminal (control + alt + t)
  • 3º Escribimos cd ext4_utils (para tener activa esa carpeta)
  • 4º Escribimos make all (para compilar los archivos necesarios)
  • 5º Escribimos los siguientes comandos (nos pedirá clave de root)
    sudo cp make_ext4fs /bin/
    sudo cp simg2img /bin/
    sudo cp mkuserimg.sh /bin/

  • 6º Necesitamos el system.img, por eso seguimos los pasos para conseguirlo desde windows y una vez obtenido lo copiamos dentro de la carpeta ext4_utils
  • 7º En la ventana del terminal tiene que seguir activa ext4_utils, escribimos ./simg2img system.img system.img.raw intro
  • mkdir tmp intro
  • sudo mount -t ext4 -o loop system.img.raw tmp/ intro
  • 10º Con todos estos comandos se nos habrá creado una carpeta tmp con todos los archivos que componen system.img, pero como se ha creado con la contraseña de superusuario no nos va a dejar manejarlos a nuestro antojo, escribimos en el terminal gksu nautilus tmp& y se nos abrirá otra ventana con todos los archivos y con previlegios de superusuario.
  • 11º Modificamos los archivos que tengamos que modificar.
  • 12º Una vez terminada la modificación abrimos el terminal y nos dirigimos a ext4_utils (como ya se ha explicado antes)
  • 13º escribimos sudo ./make_ext4fs -s -l 256M -a system system.mod.img tmp/ intro
    (Nota: el 256M son los megas de memoria total de la partición system,
    hay que poner el conforme vuestro terminal, si no, os quedaréis con 256 MB de system,
    si ponéis de mas, no arrancará. ojo con esto. si no la sabéis mirar que pesa la carpeta sistem y meter algunos megas mas, no muchos.)
  • 14º sudo umount tmp intro
  • 15º rm -rf tmp intro. Estos dos comandos anteriores son para eliminar la carpeta tmp.
    (Ya tenemos el system.img modificado, es el system.mod.img)
Si falla algo y tenéis un SO de 64 Bits probar instalando las siguientes librerias:
Código:
sudo apt-get install g++ g++-4.6 g++-4.6-multilib g++-multilib gcc gcc-4.6 gcc-4.6-multilib
 gcc-multilib lib32asound2 lib32bz2-1.0 lib32bz2-dev lib32gcc1 lib32gomp1
 lib32ncurses5 lib32nss-mdns lib32quadmath0 lib32stdc++6 lib32tinfo5 lib32z1
 lib32z1-dev libbz2-dev libc-dev-bin libc6-dev libc6-dev-i386 libc6-i386
 libgomp1 libquadmath0 libstdc++6-4.6-dev linux-libc-dev manpages-dev
 zlib1g-dev libc6

-TUTORIAL ABRIR, MODIFICAR, CERRAR BOOT.IMG

Antes de nada informar que las herramientas no son mías, méritos a sus autores. El trabajo se tiene que hacer bajo linux. No me hago responsable de que se modifiquen cosas que no se debieran y la tablet se quede bloqueada.
  • 1º Bajar las herramientas DESCARGA y descomprimir.
  • 2º poner el boot.img que queremos modificar dentro de esta carpeta.
  • 3º Abrir un terminal y escribir mkdir -p unpack
  • tools/unpackbootimg -i boot.img -o unpack
  • mkdir -p unpack/boot.img-ramdisk
  • cd unpack/boot.img-ramdisk
  • gzip -dc ../boot.img-ramdisk.gz | cpio -i
  • cd ../../
  • 9º Se nos habrá creado una carpeta llamada unpack. Dentro de ella hay una carpeta llamada boot.img-ramdisk (dentro están los archivos del boot.img para modificar lo que queramos) también hay un archivo llamado boot.img.zImage, éste es el Kernel. Los demás archivos no se tocan.
  • 10º Una vez hecho las modificaciones escribimos en el terminal tools/mkbootfs unpack/boot.img-ramdisk | gzip > unpack/boot.img-ramdisk.gz
  • 11º tools/mkbootimg --kernel unpack/boot.img-zImage --ramdisk unpack/boot.img-ramdisk.gz -o boot.img-repack --base `cat unpack/boot.img-base`
  • 12º Dentro de la carpeta boot-tools tendremos ahora un archivo llamado boot.img-repack ese es nuestro boot.img modificado, se renombra y ya está.

-PARA EMPAQUETAR LA ROM ENTERA VOLVEMOS A WINDOWS
  • 1º Dentro de Windows ponemos el system.img  y boot.img dentro de la carpeta que se nos creó al desmontar la rom original y los renombramos .fex.
  • 2º Ejecutamos runner.bat
  • 3º Click botón izquierdo sobre esa carpeta y arrastramos a la ventana de runner .bat
  • 4º Damos a intro y nos pedirá opciones, ponemos /noiso y se pondrá a trabajar, cuando finalice nos hará unas preguntas, no hacemos caso, tres veces intro y se cerrará la ventana.
  • 5º Ya está, la rom original que teníamos ahí ahora será la modificada y se habrá creado otra, con el mismo nombre pero acabada en bak que es una copia de seguridad de la rom original.

Imprimir

  Script bash, copias de seguridad de archivos o directorios en hosting.
Enviado por: chujalt - 14-03-2021, 21:19 - Foro: Linux - Sin respuestas

Saludos.

Hay ocasiones en la que necesitamos hacer una copia de seguridad, o backup, de archivos o directorios que tenemos alojados en un hosting o servidor, como por ejemplo en un foro mybb, u otros, en los que si realiza copias de respaldo de las bases de datos, pero que si hacemos modificaciones desde el panel de administrador o moderador y por cualquier causa perdemos o estropeamos cualquier archivo o configuración es conveniente tener una copia lo mas actualizada posible de esos archivos.

El script nos creará un archivo comprimido, cuyo nombre es la fecha y hora de su creación, del archivo o directorio indicado, de manera recursiva, es decir, si elegimos un directorio que a su vez contiene subdirectorios respetará esta estructura.

Al iniciar el script nos hará 4 preguntas:

1. Usuario: El usuario de nuestra cuenta ftp en el servidor o hosting.

2. Contraseña: La contraseña de nuestra cuenta ftp en el servidor o hosting.

3. Ruta de donde queremos hacer la copia de seguridad: La ruta se pondrá sin la cabecera http, es decir, sin http://
Ejemplo, vamos suponer que quiero hacer una copia de mi foro que lo tengo en mi hosting en un directorio llamado foro, entonces  pondríamos midominio.com/www/foro. las www las pongo porque en los hosting el directorio donde se encuentran los archivos y directorios donde están alojados los sitios web se llaman www o public_html.

4. Profundidad: Número de directorios, a partir del dominio principal, que ha de recorrer hasta llegar el directorio o archivos que queremos hacer el backup. En el ejemplo anterior, midominio.com/www/foro, la profundidad sería 2



El script se ha de ejecutar en la ubicación donde queremos la copia de seguridad.
Si ocurre algún tipo de error en la conexión nos lo dirá.
Si no funciona comprobar que tienen permisos de ejecución.


Enlace de descarga: PULSAR AQUI

Imprimir

  Música en Grub.
Enviado por: chujalt - 14-03-2021, 21:18 - Foro: Linux - Sin respuestas

Saludos....

Es una tontería, pero no deja de estar gracioso.... para poner una musiquilla cuando se inicia el PC...  Lengua

En en un terminal

Código:
sudo bash -c 'echo "GRUB_INIT_TUNE=\"480 440 4 440 4 440 4 349 3 523 1 440 4 349 3 523 1 440 8 659 4 659 4 659 4 698 3 523 1 415 4 349 3 523 1 440 8\"" >> /etc/default/grub && update-grub'

En este caso es la música de la estrella de la muerte de la guerra de las galaxias... hay mas, Mario bross, etc, ya las iré poniendo.

Ahora cada vez que enciendas el ordenador sonara está oscura melodía Rodar ojos


Para quitar la melodía:

abrir un terminal y loguearse como root
Código:
sudo su

Código:
sed -e '/GRUB_INIT_TUNE/d' /etc/default/grub > /etc/default/grub.tmp && mv /etc/default/grub.tmp /etc/default/grub && update-grub

Y ya está... ya la hemos quitado.... saludos

Imprimir

  Cambiar icono de carpetas.
Enviado por: chujalt - 14-03-2021, 21:16 - Foro: Linux - Sin respuestas

Saludos.


Aunque ya se que el propio sistema operativo nos da la oportunidad de personalizar los iconos de las carpetas, he hecho un script en bash desde el cual podremos cambiar la imagen de las carpetas que queramos.

El script lo he hecho y probado bajo ubuntu 12.04 y gestor nautilus y nemo (en los dos funciona), también en Ubuntu 14.04

Su uso es sencillo:

  1. Se ejecuta
  2. Nos pide que seleccionemos la carpeta que queremos cambiar la imagen
  3. Nos pide que seleccionemos la imagen para nuestra carpeta (tiene que ser jpg o png)
  4. Ya está... ya está el icono cambiado
  5. Nos pregunta si queremos seguir cambiando iconos o salir del programa

Una captura de pantalla:

[Imagen: cambioicon.png]

El script lo podeis bajar de AQUI

Bueno.. espero que a alguien le sirva de algo Guiño

Saludos

Imprimir

  Importación masiva de archivos csv a base de datos MySql.
Enviado por: chujalt - 14-03-2021, 21:15 - Foro: Linux - Sin respuestas

Saludos.

Hay bases de datos públicas las cuales te las puedes bajar, por ejemplo el INE (Instituto Nacional de Estadística), y trabajar con ellas y hacer diversos estudios. Lo malo es que para trabajar con estos datos, por lo general, necesitas programas de pago y que sólo funcionan bajo windows. Pero también te dan la opción de bajártelos en formato csv y así poder importarlos a base de datos MySql.

Me surgió la pega de que al ser bases de datos muy grandes el gestor de MySql, phpmyadmin, no puede con ellas, da errores múltiples, de tiempo de ejecución, etc, y después de hacer varias configuraciónes en php.ini seguía sin poder importarlas.

Encontré por la red un script en bash para hacer esa importación masiva (mérito a su autor), pero me seguía fallando y le hice unos "retoques" y ahora me funciona de maravilla. En el script hay que poner el nombre de la base de datos que has creado previamente (ten en cuenta que vas a importar tablas), el usuario de la base de datos, la contraseña y la ruta del directorio donde están los archivos csv, ya sea un archivo o varios, te creará una tabla por cada archivo que haya.

Aquí el script:

Código:
#!/bin/bash


# By brian@brianyoungblood.com to keep original files and import based on tab delimited data
# orginal script based on work from Eric London. http://ericlondon.com/bash-shell-script-import-large-number-csv-files-mysql

# show commands being executed, per debug
#set -x

# define database connectivity
_db="nombre_bade_de_datos"
_db_user="usuario"
_db_password="contraseña"

# define directory containing CSV files
_csv_directory="/directorio/donde/estan/csv"

# go into directory
cd $_csv_directory

# get a list of CSV files in directory
_csv_files=`ls -1 *.csv`

# loop through csv files
for _csv_file in ${_csv_files[@]}
do

# remove file extension
_csv_file_extensionless=`echo $_csv_file | sed 's/\(.*\)\..*/\1/'`

# define table name
_table_name="${_csv_file_extensionless}"

# get header columns from CSV file, creándola como un array
_header_columns=(`head -1 $_csv_directory/$_csv_file | tr ',' '\n' | sed 's/^"//' | sed 's/"$//' | sed 's/ /_/g'`)
# Crea un array con los datos de la segunda fila
_header_columns_numero_texto=(`head -2 $_csv_directory/$_csv_file | tail -1 | tr ',' '\n' | sed 's/^"//' | sed 's/"$//' | sed 's/ /_/g'`)
_header_columns_string=`head -1 $_csv_directory/$_csv_file | sed 's/ /_/g' | sed 's/"//g'`
echo "header============>${_header_columns[@]}"
echo "header============>$_header_columns_string"
# ensure table exists
mysql -u $_db_user -p$_db_password $_db << eof
CREATE TABLE IF NOT EXISTS \`$_table_name\` (
id int(11) NOT NULL auto_increment,
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE utf8_spanish2_ci
eof
# Se hace un bucle for con el numero de campos, si el dato de la segunda fila es numerico o texto asi crea el campo
for (( c=0; c<${#_header_columns[@]}; c++ ))
do
if [[ ${_header_columns_numero_texto[$c]} =~ [[:alpha:]] ]] ; then
mysql -u $_db_user -p$_db_password $_db --execute="alter table $_table_name add column ${_header_columns[$c]} text"
else
mysql -u $_db_user -p$_db_password $_db --execute="alter table $_table_name add column ${_header_columns[$c]} Float"
fi
done


# import csv into mysql
mysqlimport --local --ignore-lines=1 --fields-enclosed-by='"' --fields-terminated-by=',' --lines-terminated-by="\n" --columns=$_header_columns_string -u $_db_user -p$_db_password $_db $_csv_directory/$_csv_file

done
exit


Edito: He mejorado un poco el script. Antes creaba todos los campos tipo texto.... ahora detecta si los datos son texto o numero y así los crea.


Bueno, espero que a alguien le sirva y le funcione bien.


Saludos

Imprimir

  Encriptador de archivos y directorios.
Enviado por: chujalt - 14-03-2021, 21:09 - Foro: Linux - Sin respuestas

Saludos.

Todos tenemos en el ordenador archivos que no nos gusta que estén al alcance de cualquiera. Por ejemplo, yo tengo en uno todo los usuarios y contraseñas de todos los sitios que me meto en internet (ya se que no es aconsejable, pero ya son tantos que no me acuerdo).

He creado un programa muy simple que encripta cualquier tipo de archivo, el cual nos pide una contraseña para encriptar y, obviamente, la misma para desencriptar.

El programa hace una doble encriptación, openssl -aes-256-cbc y base64. A su vez la contraseña que introduzcamos también es encriptada mediante md5.

ACTUALIZACIÓN : Ahora también te da la opción de encriptar / desencriptar directorios completos.

Bueno... si alguno lo quiere probar PULSA AQUI

Saludos

Imprimir

  Esteganografía.
Enviado por: chujalt - 14-03-2021, 21:08 - Foro: Linux - Sin respuestas

Saludos amigos.

Siempre me ha interesado la esteganografía, que trata del estudio y aplicación de técnicas que permiten ocultar mensajes u objetos, dentro de otros, de modo que no se perciba su existencia.

Técnicas hay varias, de mas complejas a mas simples. Como curiosidad, he hecho un script en bash que nos permite insertar un mensaje de texto en un archivo multimedia (jpg, mp3, etc) sin que se corrompa el archivo, es decir, después de introducirle el mensaje la foto se seguirá viendo, el mp3 se seguirá escuchando, etc.

Como he dicho, hay varias técnicas, algunas muy sofisticadas, yo he utilizado la mas simple, que es introducir el mensaje al final del archivo, por lo que no penséis que su ocultación es 100%, con un editor hexadecimal se podría leer el mensaje.

Su objetivo no es la ocultación de mensajes, se puede poner una "firma" a ese archivo y así saber si un archivo igual es el nuestro o no.

Yo no tengo ningún interés en ocultar mensajes (ni soy espía, ni delincuente y no tengo nada que ocultar), en lo de firmar el archivo si que me interesa, lo he hecho a modo de curiosidad y de aprender, para su uso didáctico.

El script te da tres opciones, insertar un mensaje, leer un mensaje y borrar un mensaje.


Hay que tener varias consideraciones:

El script utiliza los cuadros de dialogo Zenity, por lo que si veis que no os funciona tendréis que instalarlo "sudo apt-get install zenity".

El archivo a insertar el texto no debe tener espacios en blanco, ni guiones (-) ni símbolos extraños porque si no, no encontrará la ruta. Si puede tener guión bajo (_).

Aunque ya se dice en el script, si el mensaje a introducir tiene saltos de linea, lo que hay que hacer es escribirlo en un archivo de texto y hacer un copia - pega, porque si cuando está en cuadro de texto para introducir el mensaje le das a intro, éste interpreta que has apretado Aceptar.


EDITO:
He realizado una mejora, ahora el texto a introducir se hace encriptado.
Se realiza una doble encriptación, openssl aes-256-cbc con contraseña (el programa te la pide) y base64.


Bueno, si alguien lo quiere probar, aquí lo tiene 

Con encriptacion: AQUI

Sin encriptacion: AQUI

Saludos.

Imprimir