실수로 rm -rf /를 실행했습니다.

실수로 rm -rf /를 실행했습니다.

나는 무언가 삭제를 자동화하기 위해 bash 스크립트를 작성하고 있었습니다. 나는 코드를 사용했다rm -rf $경로/*

실수로 경로 변수를 전달하지 않고 스크립트를 실행했는데 경로 변수가 null이므로 실행된 명령은 다음과 같습니다.RM -RF /* sudo를 사용하면 이제 150개 이상의 웹 사이트를 호스팅하던 내 서버에서 모든 것이 제거되었으며 1주일 된 백업이 있습니다. Linux는 너무 크기 때문에 이러한 상황에 대한 해결 방법이 있어야 합니다.

답변1

이에 대한 지름길은 없습니다. Linux는 모든 것을 제거하는 것과 같은 어리석은 일을 포함하여 무엇이든 할 수 있기 때문에 매우 강력합니다.

백업이 있어서 운이 좋습니다. 다음 작업은 새로운 서버를 설치하고 백업에서 데이터를 복구하는 것입니다. 데이터 복구 소프트웨어를 사용하여 일부 데이터를 복구하려고 시도하는 것이 가능하지만 백업에 있는 데이터의 무결성이 훨씬 더 좋습니다. 그러나 어쨌든 이전 설치의 일부 데이터가 필요할 수 있는 경우 동일한 디스크를 재사용하지 말고 새 디스크를 구입해야 합니다.

이는 비즈니스에 영향을 미칠 수 있으므로 고객과의 현명한 소통이 중요합니다. 아무것도 숨기려고 하지 마십시오. 사람의 실수로 인해 다운타임이 발생할 수 있다는 사실을 솔직하게 말하고, 백업이 있었기 때문에 걱정하지 않아도 된다고 말하세요. 당연히 어젯밤의 것이라면 더 좋았을 것입니다. 사고가 발생한 후 백업 계획을 수정할 수 있습니다.

또한 스크립트를 작성할 때 변수를 에 전달하기 전에 항상 유효성을 검사하십시오 rm -rf. $path동일한 결과를 초래하는 다른 오류가 있을 수도 있습니다 (예 rm -rf /some/directory /*: 변수에 꼬리 공백이 있는 경우).

답변2

더 이상 아무 것도 건드리지 않았다면 testdisc/photorec을 사용하여 많은 데이터를 복구할 수 있는 좋은 기회가 있지만 이것은 재미가 없습니다.파일을 삭제한 하드 드라이브를 함부로 다루지 마십시오. 디스크에 무언가를 쓸 때마다 기존 데이터가 덮어쓰여지기 때문입니다.. rm 명령은 일반적으로 책의 목차를 지우고 페이지를 그대로 두는 것과 같이 드라이브에서 파일이 있는 위치에 대한 정보를 삭제합니다. 따라서 이전 파일은 이제 시스템의 여유 공간입니다.

따라서 복구를 위해 별도로 마운트하고 쓰지 마십시오. 다음을 통해 많은 파일을 복구할 수 있습니다.사진/테스트디스크. photorec이라는 이름으로 혼동하지 마십시오. 실제로 사진뿐만 아니라 다양한 파일 형식을 복구할 수 있습니다. 그러나 대부분의 경우 데이터만 복구되고 파일 이름은 손실됩니다. 그래서 창의력을 발휘해야 합니다.

몇 가지 예를 볼 수 있습니다여기.

관련 정보