LinuxParty
NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
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

-
Documentación
- Ya puedes pasear por la Gran Pirámide de Guiza desde tu casa en tu sofá gracias a esta recreación en 3D. Alucinante
- El mapa de Urbano Monte de 1587 ha sido sobreimpreso en Google Maps.
- Aparecen armas de caza de 1300 años de antigüedad al derretirse varios glaciares noruegos
- No, los vikingos nunca descubrieron América, ni supieron donde llegaron
- 4000 años de interrogantes de El Argar, la primera Civilización con el primer Parlamento del Mundo
- Cambiar el contenido interno de muchos ficheros a la vez, con sólo un comando, en Linux
- El bisnieto de Gerónimo, de los Apache, sobre la Leyenda Negra antiespañola: «La diferencia es que los ingleses mataron a todos los indios»
- Hay una bacteria que convierte los metales en Oro de 24 kilates
- Científicos descubren evidencias de antigua ciudad Sodoma destruida por una explosión cósmica
- Las jirafas han sido incomprendidas y son tan socialmente complejas como los elefantes, según un estudio
- Cómo: comprobar y cambiar la codificación de archivos en Linux
- Linux: definir la configuración regional y de idioma (locale language)
- Cómo montar imágenes ISO, MDF, etc. En Linux
- Seguir tu instinto, puede ser la mejor decisión
- Los orígenes del problema palestino-israelí
Comentarios
Suscripción de noticias RSS para comentarios de esta entrada.