1.介质下载
路径:
链接:extundelete
提取码:ztj0
版本:extundelete.0.2.4
2.shell代码实现
extundelete.sh
!/bin/bash
Author:ztj
Date:2023/5/25
Description:误删除文件恢复脚本
Prerequisite:1.本地或网络yum源可用 2.root管理员用户执行 3.centos6 ext4
DiskName=$1
ARGS=1
E_BADARGS=65
E_PARTITION=66
E_DISK=67
E_UMOUNT=68
E_SOFTWARE=69
E_RECOVERY=70
脚本用法
if [ $# -ne "$ARGS" ];then
echo "Usage: basename $0
DiskName(E.g:$0 /dev/sdb1)"
exit $E_BADARGS
fi
磁盘分区判断
if [ ! -e $DiskName ];then
echo "磁盘分区不存在"
exit $E_PARTITION
fi
if ! [[ "$DiskName" =~ /dev/sd[a-g]+[1-9]+ ]];then
echo "请提供需恢复的磁盘分区,而非磁盘"
exit $E_DISK
fi
磁盘分区卸载
umount_disk()
{
mount | grep $DiskName &>/dev/null
num=$(echo $?)
echo $num
if [ $num -eq 0 ];then
cd ~
umount $DiskName &>/dev/null
if [ $? -ge 1 ];then
echo "磁盘umount异常,请人工干预"
exit $E_UMOUNT
fi
fi
}
安装extundelete-0.2.4.tar.bz2
install_extundelete()
{
if [ -e /root/extundelete-0.2.4.tar.bz2 ];then
cd /root
tar -jxvf extundelete-0.2.4.tar.bz2 &>/dev/null
sleep 0.5
ln -sv extundelete-0.2.4 extundelete &>/dev/null
cd extundelete
yum install -y gcc gcc-c++ e2fsprogs e2fsprogs-libs e2fsprogs-devel &>/dev/null
./configure &>/dev/null && make &>/dev/null && make install &>/dev/null && echo "Success" &>/dev/null
else
echo "extundelete-0.2.4.tar.bz2源码包不存在,请上传至/root目录下"
exit $E_SOFTWARE
fi
}
all恢复误删除文件
recovery_file()
{
cd ~
extundelete $DiskName --restore-all &>/dev/null
if [ $? -ge 1 ];then
echo "$DiskName分区恢复失败,请检查"
exit $E_RECOVERY
else
echo "请到$PWD/RECOVERED_FILES目录查看恢复的误删除文件"
fi
}
备注:
1.使用extundelete命令只能恢复centos6(rhel6)版本且文件系统为ext4(3/2)类型中文件误删的恢复。
2.对于centos7文件系统(xfs),通过在其挂载文件系统,并设置为ext4(3/2)类型来进行文件误删的恢复,命令extundelete命令是恢复不了,必须得是centos6(rhel6)版本且文件系统为ext4(3/2)类型的才行。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/z19861216/article/details/130898852
main
umount_disk
install_extundelete
recovery_file