Verze 1.0
Autor:Srijan Kishore
Tento tutoriál vám pomůže obnovit data z náhodně smazaných dat ze souborových systémů Linux. Toto je velmi drastická chyba každého uživatele/administrátora, která stojí obrovské sankce. Tento skript bude přínosem pro nováčky/odborníky na správu dat. Budu používat TestDisk pro obnovu dat. Zde jsem úlohu zjednodušil pomocí skriptu.
1. Pozadí
TestDisk je výkonný bezplatný software pro obnovu dat. Předpokládejme, že máte disk ext3/ext4, který se zhroutil/smazal pomocí rm -rf nebo shift+delete stejně jako příkazy můžete pomocí TestDisk obnovit data/soubor.TestDisk lze použít k
- Opravit tabulku oddílů
- Obnovte soubory z oddílů FAT, exFAT, NTFS a ext2/ext3/ext4
Kromě těchto funkcí má TesdDisk několik funkcí pro údržbu/správu dat
2. Požadavek
Používám Ubuntu12.04 LTS, na který budu instalovat TestDisk a implementovat skript pro obnovu dat na havarovaném disku. Tento skript funguje dobře s OS Ubuntu. I když se stane, že některý z pevných disků bude smazán, stačí připojit pevný disk k počítači ubuntu a spustit skript pro obnovu dat.3. Skript
#!/bin/bash ####################################################################################################### ####################################################################################################### ####################################################################################################### ###### ####### ###### ####### ###### This script will help you to recover the accidentally ####### ###### deleted data from crashed linux file systems ####### ###### Script created by (Srijan Kishore) ####### ###### ####### ###### ####### ####################################################################################################### ####################################################################################################### ####################################################################################################### # User Check if [ "$USER" = 'root' ] then gdialog --title "User Check" --msgbox "User is root, you can execute the script successfully." 200 150 echo "User is root, you can execute the script successfully" else gdialog --title "User Check" --msgbox "User is not Root. Please run the script as root user." 200 150 echo "User is not Root. Please run the script as root user." exit 1 fi # Check your operating system cat /etc/debian_version >> /dev/null if [ "$?" = 0 ] then echo "You are using ubuntu/debian" gdialog --title "Your Operating System" --msgbox "You are using ubuntu/debian" else gdialog --title "Your Operating System" --msgbox "You are not using debian/ubuntu.You can download the TestDisk from this link http://www.cgsecurity.org/wiki/TestDisk_Download" echo "You are not using debian/ubuntu. You can download the TestDisk from this link http://www.cgsecurity.org/wiki/TestDisk_Download" fi # Installing Testdisk testdisk /version >> /dev/null if [ "$?" = 0 ] then echo "Testdisk already installed" else echo "Installing Testdisk" apt-get update apt-get upgrade apt-get --force-yes -y install testdisk gdialog --title "Success" --msgbox "Testdisk installed successfully" 100 50 fi # Set backup directory mkdir -p /root/result/lostfiles #Run the recovery program photorec /d /root/result/lostfiles # Filters files user=`ps aux | grep gnome-session | grep -v grep | head -1 | cut -d " " -f1` mkdir "/home/$user/recovered_output" mkdir "/home/$user/recovered_output/Debians" mkdir "/home/$user/recovered_output/rpms" mkdir "/home/$user/recovered_output/conf_files" mkdir "/home/$user/recovered_output/exe" mkdir "/home/$user/recovered_output/binaries" mkdir "/home/$user/recovered_output/Docs" mkdir "/home/$user/recovered_output/Pdfs" mkdir "/home/$user/recovered_output/Mbox" mkdir "/home/$user/recovered_output/Images" mkdir "/home/$user/recovered_output/Videos" mkdir "/home/$user/recovered_output/Sound" mkdir "/home/$user/recovered_output/ISO" mkdir "/home/$user/recovered_output/Excel" mkdir "/home/$user/recovered_output/Presentation" mkdir "/home/$user/recovered_output/Web_Files" mkdir "/home/$user/recovered_output/Archives" mkdir "/home/$user/recovered_output/Others" #Sorting the Recovered data find /root/result/ -name "*.doc" -type f -exec mv {} "/home/$user/recovered_output/Docs/" \; find /root/result/ -name "*.docx" -type f -exec mv {} "/home/$user/recovered_output/Docs/" \; find /root/result/ -name "*.odt" -type f -exec mv {} "/home/$user/recovered_output/Docs/" \; find /root/result/ -name "*.pdf" -type f -exec mv {} "/home/$user/recovered_output/Pdfs/" \; find /root/result/ -name "*.mbox" -type f -exec mv {} "/home/$user/recovered_output/Mbox/" \; find /root/result/ -name "*.png" -type f -exec mv {} "/home/$user/recovered_output/Images/" \; find /root/result/ -name "*.jpg" -type f -exec mv {} "/home/$user/recovered_output/Images/" \; find /root/result/ -name "*.jpeg" -type f -exec mv {} "/home/$user/recovered_output/Images/" \; find /root/result/ -name "*.gif" -type f -exec mv {} "/home/$user/recovered_output/Images/" \; find /root/result/ -name "*.avi" -type f -exec mv {} "/home/$user/recovered_output/Videos/" \; find /root/result/ -name "*.mpeg" -type f -exec mv {} "/home/$user/recovered_output/Videos/" \; find /root/result/ -name "*.mp4" -type f -exec mv {} "/home/$user/recovered_output/Videos/" \; find /root/result/ -name "*.mkv" -type f -exec mv {} "/home/$user/recovered_output/Videos/" \; find /root/result/ -name "*.webm" -type f -exec mv {} "/home/$user/recovered_output/Videos/" \; find /root/result/ -name "*.wmv" -type f -exec mv {} "/home/$user/recovered_output/Videos/" \; find /root/result/ -name "*.flv" -type f -exec mv {} "/home/$user/recovered_output/Videos/" \; find /root/result/ -name "*.mp3" -type f -exec mv {} "/home/$user/recovered_output/Sound/" \; find /root/result/ -name "*.wav" -type f -exec mv {} "/home/$user/recovered_output/Sound/" \; find /root/result/ -name "*.deb" -type f -exec mv {} "/home/$user/recovered_output/Debians/" \; find /root/result/ -name "*.bin" -type f -exec mv {} "/home/$user/recovered_output/binaries/" \; find /root/result/ -name "*.exe" -type f -exec mv {} "/home/$user/recovered_output/exe/" \; find /root/result/ -name "*.rpm" -type f -exec mv {} "/home/$user/recovered_output/rpms/" \; find /root/result/ -name "*.conf" -type f -exec mv {} "/home/$user/recovered_output/conf_files" \; find /root/result/ -name "*.iso" -type f -exec mv {} "/home/$user/recovered_output/ISO/" \; find /root/result/ -name "*.xls" -type f -exec mv {} "/home/$user/recovered_output/Excel/" \; find /root/result/ -name "*.xlsx" -type f -exec mv {} "/home/$user/recovered_output/Excel/" \; find /root/result/ -name "*.csv" -type f -exec mv {} "/home/$user/recovered_output/Excel/" \; find /root/result/ -name "*.ods" -type f -exec mv {} "/home/$user/recovered_output/Excel/" \; find /root/result/ -name "*.ppt" -type f -exec mv {} "/home/$user/recovered_output/Presentation/" \; find /root/result/ -name "*.pptx" -type f -exec mv {} "/home/$user/recovered_output/Presentation/" \; find /root/result/ -name "*.odp" -type f -exec mv {} "/home/$user/recovered_output/Presentation/" \; find /root/result/ -name "*.html" -type f -exec mv {} "/home/$user/recovered_output/Web_Files/" \; find /root/result/ -name "*.htm" -type f -exec mv {} "/home/$user/recovered_output/Web_Files/" \; find /root/result/ -name "*.jsp" -type f -exec mv {} "/home/$user/recovered_output/Web_Files/" \; find /root/result/ -name "*.xml" -type f -exec mv {} "/home/$user/recovered_output/Web_Files/" \; find /root/result/ -name "*.css" -type f -exec mv {} "/home/$user/recovered_output/Web_Files/" \; find /root/result/ -name "*.js" -type f -exec mv {} "/home/$user/recovered_output/Web_Files/" \; find /root/result/ -name "*.zip" -type f -exec mv {} "/home/$user/recovered_output/Archives/" \; find /root/result/ -name "*.tar" -type f -exec mv {} "/home/$user/recovered_output/Archives/" \; find /root/result/ -name "*.rar" -type f -exec mv {} "/home/$user/recovered_output/Archives/" \; find /root/result/ -name "*.gzip" -type f -exec mv {} "/home/$user/recovered_output/Archives/" \; find /root/result/ -name "*.tar.gz" -type f -exec mv {} "/home/$user/recovered_output/Archives/" \; find /root/result/ -name "*.7z" -type f -exec mv {} "/home/$user/recovered_output/Archives/" \; find /root/result/ -name "*.bz" -type f -exec mv {} "/home/$user/recovered_output/Archives/" \; find /root/result/ -name "*.bz2" -type f -exec mv {} "/home/$user/recovered_output/Archives" \; find /root/result/ -name "*.*" -type f -exec mv {} "/home/$user/recovered_output/Others/" \; chown -R $user "/home/$user/recovered_output" zenity --display :0 --info --width=350 --height=100 --title "Recovery Successful" --text " Data has been recovered successfully in recovered_output folder in your home directory." nautilus /home/$user/recovered_output & exit 0
4. Spuštění skriptu
Jednoduše zkopírujte výše uvedený skript a vložte jej do souboru viz. script.sh a udělte skriptu oprávnění ke spuštění.
chmod +x script.sh
Poznámka:Spusťte skript s rootem pomocí příkazu
sudo -i #### Zadejte heslo pro přihlášení do systému##########
Spusťte skript a povede vás dále.
sh script.sh
5. Finalizace
Nejprve skript potvrdí, že uživatel spouštějící skript je root, poté zkontroluje instalaci nástroje TestDisk. Přesměruje vás na stránku pro výběr disku pro obnovu dat.
Vyberte jednotku, kterou chcete obnovit.
Vyberte jeho souborový systém.
Pokračujte stisknutím klávesy Enter.
Po dokončení obnovy se zobrazí počet souborů obnoveno.
Ukončete nástroj TestDisk následovně.
Skript se zobrazí pro zprávu o úspěchu.
Na zdraví, že jste obnovili svá data.