실수로 실행하는 것 외에도, 어떻게 복원, RM은 -f를 실행?

머리말

우리는 프로덕션 서버 환경에서 rm 명령을 실행할 때마다 항상 긴장, 실수로 실행 실수로 삭제하기 때문에, 다음 결국, 사람들이 기계하지 않은 기계도 하, 하, 버그가 말할 것도없고, 도망 준비.

당신은 데이터베이스와 같은 당신이 정말로 삭제 안되는 파일을 삭제하면 로그인하거나 파일을 실행, 당신은 어떻게해야? 장례식,주의 깊게이 블로그를 참조하십시오 방법에 대한 정보.

시뮬레이션 시나리오

1. 삭제

실수로 거미에서 서버 디렉토리 / 루트 / 셀레늄 / MySql.Data.dll 파일을 삭제 :

12778909-1d62460bcf03deff.png
영상

2. 복원

1. 현재 프로세스 개방 /root/selenium/Spider/MySql.Data.dll 파일 여부를 확인하기 위해 lsof의 명령을 사용하여

12778909-6d5ce3dccc67a3cf.png
영상

위의에서 볼 수 있듯이 삭제 된 파일의 현재 상태 (삭제).

2. 데이터 복구가 있는지 :

/ PROC / 13067 / FD : 공정 작업의 파일 기술자 디렉토리.

86 : 파일 설명.

고양이 / proc 디렉토리 / 13067 / FD / 86

12778909-a9a9b241fa363f9b.jpg
영상

3. I / O 리디렉션 파일을 복원 :

12778909-bbf20bf511a5f094.png
영상

프로그램을 다시 실행 :

12778909-60ef4cee8bfd304b.jpg
영상

파일 복구 지침 아무 문제.

호기심

파일을 복구하는 전체 과정을 보여 이전의 시뮬레이션 시나리오를 통해 그 원리는 어떤 상황에서, 파일을 복구 할 수 있습니다, 무엇인지.

리눅스 시스템에서 실행중인 각 프로그램 (리눅스는 기본적으로 파일 시스템에) 반영하기 위해 / proc 디렉토리 / 프로세스 ID를 위해, 서로 격리 된 호스트 프로세스가 있습니다.

예를 들어 : LS -l 프로세스 PID 정보를 볼 수있는 프로세스 / proc 디렉토리 / 13067 13067; 프로그램이 실행될 때 운영 체제가 파일에 의존하는데 사용하는 현재의 프로세스에 사용할 수있는 메모리의 특정 영역을 엽니는 운영 체제가 설명하는 문서를 발행 푸, 파일을 읽고 쓰기 위해, 우리는 파일을 삭제 -f RM을 실행할 때, 사실, 그냥 파일 시스템에 대한 파일의 디렉토리 inode가 보이지 제거하지만 당신은 여전히 ​​이전에 발행 된 파일을 사용할 수있는, 여전히 볼 수있는 프로세스 열려 우리는 내가 O / 파일을 복원하는 방법을 리디렉션하는 데 사용할 수 있도록 설명 파일은이 원칙의 사용은, 읽기 및 쓰기.

개요

실수로 파일을 삭제하지 않으면 파일을 여는 과정을 볼 수는 lsof를 사용하려면 먼저 걱정하고 고양이 / PROC / 프로세스 ID / FD / 파일 설명보기 복구 데이터를 사용하여 I / O 리디렉션 방법 마지막으로 사용하지 마십시오 파일을 복원 할 수 있습니다.

저자 : justmine의
링크 : http://cnblogs.com/justmine/p/10359186.html

HTTPS : //www.jianshu.com/p/b210d0b8ac2f 재현

추천

출처blog.csdn.net/weixin_34067102/article/details/91310332