LinuxParty
Este tutorial le ayudará a recuperar datos de datos borrados accidentalmente desde sistemas Linux. Este es un error muy grave para cualquier usuario/admin, que conlleva graves situaciones. Este script será una bendición tanto para novatos como para expertos en la gestión de datos. Estaré usando TestDisk para la recuperación de datos. Aquí he simplificado la tarea con la ayuda de un script.
1. Antecedentes
TestDisk es un potente software libre para la recuperación de datos. Suponga que tiene una unidad ext3/ext4 que eliminó/fulminó con comandos como rm -rf o Mayús+Supr, con la ayuda de TestDisk puede recuperar el archivo o datos.
TestDisk puede ser usado para
Solucionar problemas de la Tabla de Particiones
Recuperar archivos de FAT, exFAT, NTFS y particiones ext2 / ext3 / ext4
Además de estas funciones, TesdDisk tiene varias funciones para el mantenimiento / gestión de datos
2. Requisito
Estoy usando CentOS en el que voy instalar el TestDisk y poner en práctica la secuencia de comandos de recuperación de datos en una unidad perdida. Este script funciona bien con el CentOS / Fedora / Redhat. Incluso si sucede que alguno de los discos duros se borró, sólo tiene que conectar el disco duro con la máquina CentOS y ejecutar la secuencia de comandos para recuperar los datos.
Instale testdisk, si es posible:
# yum -y install testdisk
Si tiene Debian o Ubuntu o similares:
apt-get install testdisk
3. El Script.
#!/bin/bash ####################################################################################################### ####################################################################################################### ####################################################################################################### ###### ####### ###### ####### ###### Este script le ayudará a recuperar los ficheros borrados ####### ###### de forma accidental y discos estropeados. ####### ###### Version-2 ####### ###### Script created by (Srijan Kishore) ####### ###### ####### ###### ####### ####################################################################################################### ####################################################################################################### ####################################################################################################### # User Check if [ "$USER" = 'root' ] then whiptail --title "Comprobación de usuario" --msgbox "El usuario es root, puede ejecutar el script satisfactoriamente." 8 78 echo "El usuario es root, puede ejecutar el script satisfactoriamente" else whiptail --title "Comprobación de usuario" --msgbox "El usuario no es root, por favor ejecute el script con privilegios de root." 8 78 echo "El usuario no es root, por favor ejecute el script con privilegios de root." exit 1 fi # Check your operating system cat /etc/redhat-release >> /dev/null if [ "$?" = 0 ] then whiptail --title "Su OS" --msgbox "Está usando CentOS/RedHat/Fedora" 8 78 echo "Está usando CentOS/RedHat/Fedora" else whiptail --title "Su OS" --msgbox "NO Está usando CentOS/RedHat/Fedora. Puede descargarse TestDisk desde http://www.cgsecurity.org/wiki/TestDisk_Download" 8 78 echo "NO Está usando CentOS/RedHat/Fedora. Puede descargarse TestDisk desde http://www.cgsecurity.org/wiki/TestDisk_Download" exit 1 fi #adding repo ver=`cat /etc/redhat-release | cut -d " " -f3 | cut -d "." -f1` ls -l /etc/yum.repos.d/rpmforge* if [ "$?" != 0 ] then whiptail --title "Repositorio requerido" --msgbox "Necesita instalar el repositorio rpmforge y/o rpmfusion para instalar testdisk" 8 78 if [[ `uname -i` = 'i386' && $ver = 6 ]] then echo "Está ejecutando i386 con versión 6" yum install -y http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm fi if [[ `uname -i` = 'x86_64' && $ver = 6 ]] then echo "Está ejecutando i386 con versión 6" yum install -y http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm fi if [[ `uname -i` = 'i386' && $ver = 5 ]] then echo "Está ejecutando i386 con versión 5" yum install -y http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el5.rf.i386.rpm fi if [[ `uname -i` = 'x86_64' && $ver = 5 ]] then echo "Está ejecutando x86_64 con versión 5" yum install -y http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm fi if [[ `uname -i` = 'x86_64' && $ver = 4 ]] then echo "Está ejecutando x86_64 con versión 4" yum install -y http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el4.rf.i386.rpm fi if [[ `uname -i` = 'x86_64' && $ver = 4 ]] then echo "Está ejecutando x86_64 con versión 4" yum install -y http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el4.rf.x86_64.rpm fi else whiptail --title "Requerimiento del repositorio." --msgbox "Ya tiene repositorios configurados con TestDisk" 8 78 echo "Ya tiene repositorios configurados con TestDisk" fi # TestDisk installation testdisk --version >> /dev/null if [ "$?" = 0 ] then whiptail --title "Info" --msgbox "Testdisk ya instalado" 8 78 echo "Testdisk ya instalado" else whiptail --title "Info" --msgbox "TestDisk no instalado, instalando TestDisk" 8 78 echo "TestDisk no instalado, instalando TestDisk" yum install -y testdisk fi #Recovery part of deleted files ls -l /root/result/lostfiles if [ $? != 0 ] then mkdir -p /root/result/lostfiles whiptail --title "Recuperación de datos" --msgbox "Usted está procediendo a la recuperación de los datos de la unidad perdida. Por favor seleccione la unidad afectada para obtener los datos recuperados" 8 78 photorec /d /root/result/lostfiles else whiptail --title "Existen carpetas" --msgbox "Ya existe una carpeta existente a saber /root/result/lostfiles, se le aconsejó renombrar/eliminar la carpeta para permitir el proceso de recuperación de datos" 8 78 exit 2 fi #File filtering user=`ps aux | grep gnome-session | grep -v grep | head -1 | cut -d " " -f1` mkdir "/home/recovered_output" mkdir "/home/recovered_output/Debians" mkdir "/home/recovered_output/rpms" mkdir "/home/recovered_output/conf_files" mkdir "/home/recovered_output/exe" mkdir "/home/recovered_output/binaries" mkdir "/home/recovered_output/Docs" mkdir "/home/recovered_output/Pdfs" mkdir "/home/recovered_output/Mbox" mkdir "/home/recovered_output/Images" mkdir "/home/recovered_output/Videos" mkdir "/home/recovered_output/Sound" mkdir "/home/recovered_output/ISO" mkdir "/home/recovered_output/Excel" mkdir "/home/recovered_output/Presentation" mkdir "/home/recovered_output/Web_Files" mkdir "/home/recovered_output/Archives" mkdir "/home/recovered_output/Others" #Sorting the Recovered data find /root/result/ -name "*.doc" -type f -exec mv {} "/home/recovered_output/Docs/" \; find /root/result/ -name "*.docx" -type f -exec mv {} "/home/recovered_output/Docs/" \; find /root/result/ -name "*.odt" -type f -exec mv {} "/home/recovered_output/Docs/" \; find /root/result/ -name "*.pdf" -type f -exec mv {} "/home/recovered_output/Pdfs/" \; find /root/result/ -name "*.mbox" -type f -exec mv {} "/home/recovered_output/Mbox/" \; find /root/result/ -name "*.png" -type f -exec mv {} "/home/recovered_output/Images/" \; find /root/result/ -name "*.jpg" -type f -exec mv {} "/home/recovered_output/Images/" \; find /root/result/ -name "*.jpeg" -type f -exec mv {} "/home/recovered_output/Images/" \; find /root/result/ -name "*.gif" -type f -exec mv {} "/home/recovered_output/Images/" \; find /root/result/ -name "*.avi" -type f -exec mv {} "/home/recovered_output/Videos/" \; find /root/result/ -name "*.mpeg" -type f -exec mv {} "/home/recovered_output/Videos/" \; find /root/result/ -name "*.mp4" -type f -exec mv {} "/home/recovered_output/Videos/" \; find /root/result/ -name "*.mkv" -type f -exec mv {} "/home/recovered_output/Videos/" \; find /root/result/ -name "*.webm" -type f -exec mv {} "/home/recovered_output/Videos/" \; find /root/result/ -name "*.wmv" -type f -exec mv {} "/home/recovered_output/Videos/" \; find /root/result/ -name "*.flv" -type f -exec mv {} "/home/recovered_output/Videos/" \; find /root/result/ -name "*.mp3" -type f -exec mv {} "/home/recovered_output/Sound/" \; find /root/result/ -name "*.wav" -type f -exec mv {} "/home/recovered_output/Sound/" \; find /root/result/ -name "*.deb" -type f -exec mv {} "/home/recovered_output/Debians/" \; find /root/result/ -name "*.bin" -type f -exec mv {} "/home/recovered_output/binaries/" \; find /root/result/ -name "*.exe" -type f -exec mv {} "/home/recovered_output/exe/" \; find /root/result/ -name "*.rpm" -type f -exec mv {} "/home/recovered_output/rpms/" \; find /root/result/ -name "*.conf" -type f -exec mv {} "/home/recovered_output/conf_files" \; find /root/result/ -name "*.iso" -type f -exec mv {} "/home/recovered_output/ISO/" \; find /root/result/ -name "*.xls" -type f -exec mv {} "/home/recovered_output/Excel/" \; find /root/result/ -name "*.xlsx" -type f -exec mv {} "/home/recovered_output/Excel/" \; find /root/result/ -name "*.csv" -type f -exec mv {} "/home/recovered_output/Excel/" \; find /root/result/ -name "*.ods" -type f -exec mv {} "/home/recovered_output/Excel/" \; find /root/result/ -name "*.ppt" -type f -exec mv {} "/home/recovered_output/Presentation/" \; find /root/result/ -name "*.pptx" -type f -exec mv {} "/home/recovered_output/Presentation/" \; find /root/result/ -name "*.odp" -type f -exec mv {} "/home/recovered_output/Presentation/" \; find /root/result/ -name "*.html" -type f -exec mv {} "/home/recovered_output/Web_Files/" \; find /root/result/ -name "*.htm" -type f -exec mv {} "/home/recovered_output/Web_Files/" \; find /root/result/ -name "*.jsp" -type f -exec mv {} "/home/recovered_output/Web_Files/" \; find /root/result/ -name "*.xml" -type f -exec mv {} "/home/recovered_output/Web_Files/" \; find /root/result/ -name "*.css" -type f -exec mv {} "/home/recovered_output/Web_Files/" \; find /root/result/ -name "*.js" -type f -exec mv {} "/home/recovered_output/Web_Files/" \; find /root/result/ -name "*.zip" -type f -exec mv {} "/home/recovered_output/Archives/" \; find /root/result/ -name "*.tar" -type f -exec mv {} "/home/recovered_output/Archives/" \; find /root/result/ -name "*.rar" -type f -exec mv {} "/home/recovered_output/Archives/" \; find /root/result/ -name "*.gzip" -type f -exec mv {} "/home/recovered_output/Archives/" \; find /root/result/ -name "*.tar.gz" -type f -exec mv {} "/home/recovered_output/Archives/" \; find /root/result/ -name "*.7z" -type f -exec mv {} "/home/recovered_output/Archives/" \; find /root/result/ -name "*.bz" -type f -exec mv {} "/home/recovered_output/Archives/" \; find /root/result/ -name "*.bz2" -type f -exec mv {} "/home/recovered_output/Archives" \; find /root/result/ -name "*.*" -type f -exec mv {} "/home/recovered_output/Others/" \; #Finalization whiptail --title "Congratulaciones / Enhorabuena" --msgbox "Ha recuperado con éxito sus datos en la carpeta /home/recovered_output :)" 8 78 echo "Ha recuperado con éxito sus datos en la carpeta /home/recovered_output :)" exit 0
4. de ejecución de secuencias
Basta con copiar y pegar el script de arriba en el archivo "script.sh" y dar los permisos de ejecución al script.
chmod +x script.sh
Nota: Por favor, ejecute la secuencia de comandos como root mediante el comando
su - #### Pon tu contraseña de root ####
Ejecute el script y se le guiará más.
sh script.sh
5. Finalización
En primer lugar el script confirma que si el usuario que ejecuta la secuencia de comandos es root, entonces se comprueba la instalación de la herramienta TestDisk que incluye (si no está) además automáticamente un repositorio. Se le redirigirá a la página de selección de unidad para la recuperación de datos.
Se comprobará primeramente si el usuario es root.
Si el usuario es root, podrá ejecutar el script satisfactoriamente.
Comprobará la versión del Sistema Operativo
Indicará que necesita instalar el repositorio rpmforge, para instalar testdisk
Como ya tenemos instalado testdisk, nos aparece el texto... (Si no, se encarga de instalarlo automáticamente)
Se procederá a la recuperación.
Espero, que le sea de gran utilidad.
Si lo que quieres, es evitar recuperaciones, mirate este truco:
Script para Rellenar con ceros

-
Espacio
- El primer satélite construido con paneles de madera fue lanzado al espacio
- Lo que quise saber del Universo pero la mala divulgación no contó
- ¿Puede existir vida en el espacio sin un planeta? Un nuevo estudio revela una respuesta sorprendente
- Los competidores de SpaceX se esfuerzan por construir cohetes reutilizables
- Descifraron la señal ¡Wow!: y su resultado no te gustará
- Starlink ya está disponible en todos los vuelos Airbus de Hawaiian Airlines
- Hace 4.500 millones de años, otro planeta impactó contra la Tierra. Hemos encontrado sus restos.
- Estudio Revela que las Civilizaciones Avanzadas en la Vía Láctea Podrían ser Extremadamente Raras
- Plutón no regresará, pero los astrónomos quieren redefinir los planetas nuevamente
- La Voyager 1 regresa a las operaciones científicas normales
- China aterriza con éxito una sonda en la cara oculta de la Luna y comienza a recolectar muestras
- Un estudio confirma la predicción de Einstein: los agujeros negros tienen una "región que se hunde"
- La Voyager 1, la primera nave en el espacio interestelar, puede haberse quedado a oscuras
- Adiós al Ingenuity, Perseverence toma una foto del helicóptero dañado y abandonado en Marte.
- Una Kilonova a años luz de la tierra, representa un potencial peligro para nuestro planeta
Comentarios