با سلام
خوب این آموزش بیشتر به کار هاستینگ ها میاد

خوب در بعضی مواقع در هاستینگ ها کاربران بر حسب اتفاقدر زمان بک اپ گیری فایل های از سرور حذف میکنند و بیا به خاطر اتفاقی ناگهانی اختلالاتی در کشس تبادل دیتا بین داده ها پیش میاد .

خوب برای مدیر سرور عموما بازیابی اختلالات اطلاعات بر روی هاستینگ زمانگیر و فشار آورنده به سیستم و زمانگیر هست .

خوب در اینجا ما با هم روشی اسان رو یاد میگیریم

قبل از هر چیز اکثرا testdisk را اپلیکیشنی برای تست و یا از بین بردن بد سکتور میشناسن.

اما تست دیسسک قابلیتهایی زیادی داره مانند بازیابی پارتیشن و ریکاوری دیتا ازبین بردن اختلالات بر حسب کش و ...

خوب نیازمندیهای این اموزش اپ های زیر هستند:

سیستم عامل : Redhat, CentOS and Fedora
اپلیکشن : testdisk


جهت سهولت کار عزیزان اسکریپتی اماده شده که نیاز اصلی شما رو برطرف میکنه و حالا اگر دوستانی اطلاعات کافی داشتند میتونند خودشون تغییرات گسترده تری بدن


ابتندا فایل اسکریپت را ایجاد میکنیم.

کد PHP:

nano script
.sh 
حال اطلاعات زیر را وارد کنید

کد PHP:
#!/bin/bash

# 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 [ "$?" ]
    
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 -/etc/yum.repos.d/rpmforge*

if [ 
"$?" != ]
    
    
then
    whiptail 
--title "Repository requirement" --msgbox "You need to add rpmforge repository to install testdisk" 8 78
        
if [[ `uname -i` = 'i386' && $ver ]]
            
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 ]]
            
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 ]]
            
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 ]]
            
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 ]]
            
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 ]]
            
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 [ "$?" ]
    
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 -/root/result/lostfiles
if [ $? != ]
    
then
    mkdir 
-/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 
//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 
تنظیم سطح دسترسی

کد PHP:
chmod +x script.sh 
جهت اجرای اسکریپت نیاز به کاربر ریشه هست یعنی root

کد PHP:
su 
حال اسکریپت رو اجرا میکنیم

کد PHP:
sh script.sh 
مرحله اول تایید دسترسی روت هست که اینتر میزنید



مرحله دوم تایید سیستم عامل هست و اینتر



مرحله سوم بررسی اسکریپت به طور خودکار برای اضافه نمودن منابع مورد نیاز برای TestDisk. هست.








مرحله چهارم انتخاب درایو برای ریکاوری هست











مرحله آخر شما فقط بعد از اتمام بررسی از برنامه خارج شید








خوب تمام اطلاعات شما بازیابی و ترمیم شدند.