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

-
Tecnología
- La 'pintura solar' que desarrolla Mercedes-Benz podría revolucionar la carga de vehículos eléctricos
- El sistema operativo Raspberry Pi ahora habilita Wayland de forma predeterminada en todos los modelos de Raspberry Pi
- Las ventas mundiales de vehículos eléctricos aumentaron un 30,5 % en septiembre
- Cómo un ingeniero desenmascaró una red internacional de robo de bicicletas - Por sus amigos de Facebook
- Un traje espacial inspirado en las dunas recicla la orina y la convierte en agua potable
- Alemania tiene demasiados paneles solares y eso ha hecho que los precios de la energía sean negativos.
- Una nueva batería avisa a los padres si su hijo se la ha tragado
- La industria de la tecnología se estaba desinflando. Luego vino ChatGPT
- Consejos para adquirir una computadora usada
- Extremadura y sus trenes: Diferentes varas de medir
- Extraer una pista de audio de un video mp4 con ffmpeg
- China usa aviones no tripulados para producir lluvia en la cabecera de los ríos.
- Alano, del Ejercito de Tierra vehículo terrestre no tripulado de la factoría española "EINSA"
- Dron anfibio que vuela y se sumerge en las profundidades del mar
- Canon obligada a enseñarles a sus clientes como saltarse las restricciones por la falta de chips para sus cartuchos de tinta.
Comentarios