>  기사  >  운영 및 유지보수  >  실수로 삭제된 데이터를 신속하게 복구하기 위해 오픈 소스 도구인 Extundelete를 사용하는 방법

실수로 삭제된 데이터를 신속하게 복구하기 위해 오픈 소스 도구인 Extundelete를 사용하는 방법

坏嘻嘻
坏嘻嘻원래의
2018-09-19 13:43:252346검색

이 기사의 내용은 실수로 삭제된 데이터를 신속하게 복구하기 위한 오픈 소스 도구인 Extundelete를 사용하는 방법에 대한 것입니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

실수로 파일을 삭제한 후 데이터를 복구하는 방법

일상적으로 사용하다 보면 필연적으로 실수로 데이터가 삭제되는 경우가 있습니다. 이때 데이터를 빠르고 효과적으로 복구하는 방법은 무엇인가요? Alibaba Cloud에서 데이터를 복원하는 방법에는 다음과 같은 여러 가지가 있습니다.

Alibaba Cloud 콘솔을 통해 백업된 스냅샷 롤백, 사용자 정의 이미지 복구 등

비즈니스 로드 밸런싱과 고가용성을 달성하려면 여러 ECS를 구입하세요.

Object Storage OSS(Object Storage Service)를 사용하여 정적 웹 페이지와 대용량 이미지, 비디오 및 기타 중요한 데이터를 저장하세요.

이 문서에서는 주로 CentOS7 운영 체제를 예로 들어 오픈 소스 도구인 Extundelete를 사용하여 실수로 삭제된 데이터를 빠르게 복구하는 방법을 소개합니다.

Linux에는 많은 오픈 소스 데이터 복구 도구가 있습니다. 일반적인 도구로는 debugfs, R-Linux, ext3grep, extundelete 등이 있습니다. 가장 일반적으로 사용되는 도구는 ext3grep과 extundelete입니다. 이 두 도구의 복구 원리는 기본적으로 동일합니다. , extundelete 기능을 제외하면 더 강력합니다.

Extundelete는 Linux 기반의 오픈 소스 데이터 복구 소프트웨어입니다. Alibaba Cloud의 클라우드 서버를 사용할 때 실수로 데이터를 삭제했는데, Linux 시스템에는 Windows 시스템의 휴지통과 유사한 기능이 없는 경우 이 도구를 빠르고 쉽게 설치할 수 있습니다.

Extundelete는 로그와 결합된 inode 정보를 사용하여 inode의 블록 위치를 쿼리하여 필요한 데이터를 찾고 복구할 수 있습니다. 이 도구의 가장 강력한 점은 ext3/ext4 이중 형식 파티션 복구 및 복구를 지원한다는 것입니다. 전체 디스크 기능은 비교적 강력합니다.

Notes

데이터가 실수로 삭제된 후 가장 먼저 해야 할 일은 삭제된 데이터가 위치한 디스크나 디스크 파티션을 제거하는 것입니다. 파일을 삭제한 후에는 파일의 inode 노드에 있는 섹터 포인터만 지워지고 실제 파일은 여전히 ​​디스크에 저장되어 있습니다. 디스크가 읽기-쓰기 모드로 마운트되면 삭제된 파일의 데이터 블록이 손상될 수 있습니다. 운영 체제가 이를 재할당하고 이러한 데이터 블록을 새 데이터로 덮어쓴 후에는 데이터가 실제로 손실되고 복구 도구가 복구할 수 없습니다. 따라서 디스크를 읽기 전용 모드로 마운트하면 데이터 블록에서 데이터를 덮어쓸 위험을 최소화하고 성공적인 데이터 복구 가능성을 높일 수 있습니다.

참고: 실제 온라인 복구 프로세스 중에는 실수로 삭제한 파일이 있는 하드 디스크에 extundelete를 설치하지 마십시오. 이렇게 하면 복원해야 하는 데이터를 완전히 덮어쓸 수 있습니다. 작업 전 백업.

적용 가능한 개체

실수로 디스크에서 파일을 삭제하고 디스크에 쓰지 않은 사용자

웹사이트 방문 횟수가 적고 ECS 인스턴스 수가 적은 사용자

사용 방법

설치할 소프트웨어 및 버전: e2fsprogs-devel e2fsprogs gcc-c++ make(컴파일러 등) Extundelete-0.2.4

참고: extundelete를 실행하려면 libext2fs 버전 1.39 이상이 필요하지만 ext4 지원을 위해서는 다음을 확인하세요. e2fsprogs 버전 1.41 이상(버전은 "dumpe2fs" 명령을 실행하고 출력을 기록하여 찾을 수 있음)

참고: 위 버전은 문서 작성 당시의 소프트웨어 버전입니다. 다운로드하는 버전은 다를 수 있습니다.

extundelete 도구 배포

wget  http://zy-res.oss-cn-hangzhou.aliyuncs.com/server/extundelete-0.2.4.tar.bz2
yum -y install  bzip2  e2fsprogs-devel  e2fsprogs  gcc-c++  make    #安装相关依赖和库
tar -xvjf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4                                #进入程序目录
./configure                                         #如下图表示安装成功
make && make install

이때 src 디렉터리가 나타납니다. 아래에 extundelete 실행 파일과 해당 경로가 있습니다. 실제로는 usr/local 아래에 기본 파일이 설치되어 있습니다. /bin. 다음 데모는 usr /local/bin 디렉토리에 있습니다.

extundelete를 사용하여 실수로 인한 데이터 삭제 및 복구 프로세스 시뮬레이션

1. ECS의 기존 디스크와 사용 가능한 파티션을 확인하고, 그렇지 않은 경우 디스크 파티션 포맷 방법은 여기에 소개되지 않습니다. , 이 문서를 클릭하면 "데이터 디스크 포맷 및 마운트" 작업 방법을 볼 수 있습니다.

fdisk -l

2. 파티션된 디스크를 /zhuyun 디렉터리에 마운트한 다음 /zhuyun 아래에 새로운 테스트 파일 hello를 만들고 test를 작성합니다.

mkdir /zhuyun                                #新建zhuyun目录
mount /dev/vdb1 /zhuyun                      #将磁盘挂载到zhuyun目录下
echo test > hello                            #写入测试文件

3. 파일의 MD5 값을 기록합니다. md5sum 명령은 삭제 전과 복원 후 두 파일의 md5 값을 생성하고 확인하는 데 사용됩니다.

md5sum hello

4. hello 파일 삭제를 시뮬레이션합니다.

rm -rf hello
cd ~
fuser -k /zhuyun                     #结束使用某分区的进程树(确认没有资源占用的话,可以跳过此步)

5. 데이터 디스크를 마운트 해제합니다.

umount /dev/vdb1                     #任何的文件恢复工具,在使用前,均要将要恢复的分区卸载或挂载为只读,防止数据被覆盖使用

6. Extundelete 도구를 사용하여 파일을 복구하세요.

extundelete --inode 2 /dev/vdb1      #为查找某i节点中的内容,使用2则说明为整个分区搜索,如果需要进入目录搜索,只须要指定目录I节点即可。这是可以看到删除的文件名和inode
/usr/local/bin/extundelete  --restore-inode 12  /dev/vdb1    #恢复删除的文件

이때, 실행 명령어와 동일한 레벨의 디렉터리에 RECOVERED_FILES 디렉터리가 나타나게 되는데, 복원되었는지 확인해보세요.

두 파일 전후의 md5 값을 확인하면 복구가 성공한 것입니다.

참고:

--restore-inode 12                  # --restore-inode 按指定的I节点恢复
--extundelete --restore-all         # --restore-all   全部恢复


위 내용은 실수로 삭제된 데이터를 신속하게 복구하기 위해 오픈 소스 도구인 Extundelete를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.