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.