Versi 2.0
Penulis:Srijan Kishore
Tutorial ini akan membantu Anda memulihkan data dari data yang terhapus secara tidak sengaja dari sistem file Linux. Ini adalah kesalahan yang sangat drastis oleh pengguna/admin mana pun yang membutuhkan penalti besar. Script ini akan menjadi keuntungan bagi pemula/ahli untuk manajemen data. Saya akan menggunakan TestDisk untuk pemulihan data. Di sini saya telah menyederhanakan tugas dengan bantuan skrip.
1. Latar belakang
TestDisk adalah perangkat lunak pemulihan data gratis yang kuat. Misalkan Anda memiliki drive ext3/ext4 yang mogok/dihapus dengan rm -rf atau shift+delete seperti perintah, dengan bantuan TestDisk Anda dapat memulihkan data/file.TestDisk dapat digunakan untuk
- Perbaiki tabel partisi
- Membatalkan penghapusan file dari partisi FAT, exFAT, NTFS, dan ext2/ext3/ext4
Selain fungsi-fungsi ini, TesdDisk memiliki beberapa fungsi untuk pemeliharaan/pengelolaan data
2. Persyaratan
Saya menggunakan CentOS tempat saya akan menginstal TestDisk &menerapkan skrip pemulihan data pada drive yang macet. Skrip ini berfungsi baik dengan CentOS/Fedora/Redhat. Bahkan jika ada harddisk yang terhapus, sambungkan saja harddisk dengan mesin CentOS &jalankan skrip untuk memulihkan data.3. Skrip
#!/bin/bash ####################################################################################################### ####################################################################################################### ####################################################################################################### ###### ####### ###### ####### ###### This script will help you to recover the accidentally ####### ###### deleted data from crashed linux file systems ####### ###### Version-2 ####### ###### Script created by (Srijan Kishore) ####### ###### ####### ###### ####### ####################################################################################################### ####################################################################################################### ####################################################################################################### # User Check if [ "$USER" = 'root' ] then whiptail --title "User check" --msgbox "User is root, you can execute the script successfully." 8 78 echo "User is root, you can execute the script successfully" else whiptail --title "User check" --msgbox "User is not Root. Please run the script as root user." 8 78 echo "User is not Root. Please run the script as root user." exit 1 fi # Check your operating system cat /etc/redhat-release >> /dev/null if [ "$?" = 0 ] then whiptail --title "Your OS" --msgbox "You are using CentOS/Redhat/Fedora" 8 78 echo "You are using CentOS/Redhat/Fedora" else whiptail --title "Your OS" --msgbox "You are not using CentOS/Redhat/Fedora.You can download the TestDisk from this link http://www.cgsecurity.org/wiki/TestDisk_Download" 8 78 echo "You are not using CentOS/Redhat/Fedora.You can download the TestDisk from this link 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 "Repository requirement" --msgbox "You need to add rpmforge repository to install testdisk" 8 78 if [[ `uname -i` = 'i386' && $ver = 6 ]] then echo "you are running i386 with 6 version" 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 "you are running i386 with 6 version" 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 "you are running i386 with 5 version" 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 "you are running x86_64 with 5 version" 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 "you are running i386 with 4 version" 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 "you are running x86_64 with 4 version" yum install -y http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el4.rf.x86_64.rpm fi else whiptail --title "Repository requirement" --msgbox "You already have TestDisk repos configured" 8 78 echo "You already have TestDisk repos configured" fi # TestDisk installation testdisk --version >> /dev/null if [ "$?" = 0 ] then whiptail --title "Info" --msgbox "Testdisk already installed" 8 78 echo "Testdisk already installed" else whiptail --title "Info" --msgbox "Testdisk not installed, installing Testdisk" 8 78 echo "Testdisk not installed, installing 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 "Data recovery" --msgbox "You are proceeding towards recovering the data from the lost drive. Please select the affected drive to get the data recovered" 8 78 photorec /d /root/result/lostfiles else whiptail --title "Folder Exists" --msgbox "There is already an existing folder viz /root/result/lostfiles, you are adviced to rename/remove the folder to allow the data recovery process" 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 "Congratulations" --msgbox "You have successfully recovered your data in folder /home/recovered_output cheers :)" 8 78 echo "You have successfully recovered your data in folder /home/recovered_output cheers :)" exit 0
4. Eksekusi Skrip
Cukup salin skrip di atas &tempel di file yaitu. script.sh &berikan izin eksekusi ke skrip.
chmod +x script.sh
Catatan:Silahkan jalankan script dengan root dengan menggunakan perintah
su - #### Masukkan kata sandi root Anda##########
Jalankan skrip &itu akan memandu Anda lebih jauh.
sh script.sh
5. Finalisasi
Skrip pertama akan mengonfirmasi bahwa apakah pengguna yang menjalankan skrip adalah root, kemudian skrip akan memeriksa instalasi alat TestDisk yang mencakup penambahan repositori otomatis. Ini akan mengarahkan Anda ke halaman pemilihan drive untuk pemulihan data.

Ini akan memeriksa OS Anda.

Script akan secara otomatis memverifikasi &menambahkan repositori yang diperlukan untuk TestDisk.

Script akan memeriksa penginstalan TestDisk.


Pilih drive yang ingin Anda pulihkan.




Setelah proses selesai, keluar dari layar.



Selamat Anda telah memulihkan data Anda.