이는 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공자에서 실행할 수 있는 명령 dupemap입니다.
프로그램:
이름
dupemap - 파일 체크섬 데이터베이스를 생성하고 이를 사용하여 중복을 제거합니다.
개요
듀프맵 [ 옵션 ] [ -d 데이터베이스 ] 조작 길...
기술
듀프맵 재귀적으로 각각을 스캔합니다 통로 파일 내용의 체크섬을 찾으려면. 디렉터리는
특별한 순서 없이 검색되었습니다. 동작은 다음에 따라 달라집니다. -d 옵션은
주어진, 그리고 조작 매개변수는 쉼표로 구분된 목록이어야 합니다. 주사,
신고, 삭제:
없이 -d
듀프맵 동일한 체크섬이 두 번 이상 반복되는 경우 조치를 취합니다. 즉,
중복 항목을 재귀적으로 찾습니다. 동작은 다음에 따라 달라집니다. 조작:
신고 두 번 이상 발견된 파일을 보고하고 파일 이름을 표준으로 인쇄합니다.
출력.
삭제[,보고서]
두 번 이상 발견된 파일을 삭제하세요. 파일 이름이 출력되면 신고 is
도 주어짐.
경고 : 사용 신고 먼저 삭제될 내용을 확인하세요.
경고 : 예를 들어 "cp -al"을 사용하여 먼저 대상의 백업을 만드는 것이 좋습니다.
(GNU cp용) 하드 링크를 재귀적으로 생성합니다.
와 -d
The 데이터베이스 인수 -d 데이터베이스 파일을 나타냅니다("DATABASE" 섹션 참조)
자세한 내용은 이 설명서를 참조하세요. 이 모드에서는 주사 조작
하나에서 실행되어야 합니다 통로, 그 다음에 신고 or 삭제 다른 것에 대한 작업 (지원 전에,
같은!) 통로.
주사 각 파일의 체크섬을 추가합니다. 데이터베이스. 이 작업은 처음에 실행되어야 합니다.
데이터베이스를 생성합니다. 다시 시작하려면 데이터베이스 파일을 수동으로 삭제해야 합니다.
("데이터베이스" 섹션 참조).
신고 체크섬이 발견되면 각 파일 이름을 인쇄합니다. 데이터베이스.
삭제[,보고서]
체크섬이 발견되면 각 파일을 삭제합니다. 데이터베이스. 면 신고 또한 존재합니다.
삭제된 각 파일의 이름을 출력합니다.
경고 : 당신이 실행하면 듀프맵 삭제 같은에 통로 너 방금 달렸어 듀프맵 주사 하나이고,
그것은 것입니다 삭제 매주 파일! 이러한 옵션의 아이디어는 하나를 스캔하는 것입니다. 통로 삭제
1초 안에 파일 통로.
경고 : 사용 신고 먼저 삭제될 내용을 확인하세요.
경고 : 예를 들어 "cp -al"을 사용하여 먼저 대상의 백업을 만드는 것이 좋습니다.
(GNU cp용) 하드 링크를 재귀적으로 생성합니다.
옵션
-d 데이터베이스
데이터베이스 읽거나 쓸 수 있는 디스크상 데이터베이스로. 다음을 참조하세요.
위의 "설명" 섹션에서 이것이 작동에 어떤 영향을 미치는지에 대해 설명합니다. 듀프맵.
-I 파일
에서 입력 파일을 읽습니다. 파일 명령줄에 나열된 것 외에. 만약에
파일 표준 입력에서 읽는 "-"입니다. 각 줄은 파일로 해석됩니다.
이름입니다.
여기에 제공된 경로는 재귀적으로 스캔되지 않습니다. 디렉터리는 무시됩니다.
그리고 심볼릭 링크가 따라갈 것입니다.
-m 최소 크기
이 크기보다 작은 파일은 무시합니다.
-M 최대 크기
이 크기보다 큰 파일은 무시합니다.
사용법
일반 용법
가장 이해하기 쉬운 작업은 다음과 같습니다. -d 옵션이 제공되지 않았습니다. 모두 삭제하려면
중복 파일 /tmp/복구된 파일, 하다:
$ dupemap /tmp/recovered-files를 삭제합니다.
자주, 듀프맵 주사 디렉토리의 모든 파일에 대한 체크섬 데이터베이스를 생성하기 위해 실행됩니다.
나무. 그런 다음 듀프맵 삭제 다른 디렉토리에서 실행되며 다음과 같은 경우가 있을 수 있습니다. 듀프맵 신고.
예를 들어, 모든 파일을 삭제하려면 /tmp/복구된 파일 이미 존재하는 $ HOME, 할
이:
$ dupemap -d 홈 디렉토리.맵 $HOME 스캔
$ dupemap -d homedir.map 삭제, /tmp/recovered-files 보고
용법 과 마술 구출
주요 응용 프로그램 듀프맵 삭제 취소를 수행하는 데 따르는 어려움을 덜어주는 것입니다.
작업 마술 구출(1) 그 이유는 마술 구출 모든 것을 추출합니다
블록 장치에 지정된 유형의 파일이 있으므로 파일 삭제를 취소하려면 다음을 찾아야 합니다.
수백 개의 파일 중 몇 개만 수동으로 처리하면 시간이 오래 걸릴 수 있습니다. 우리가 원하는 것은
파일 시스템에 존재하지 않는 문서만 추출하면 됩니다.
다음 시나리오에서는 실수로 중요한 Word 문서 몇 개를 삭제했습니다.
Windows. 만약 이게 현실 세계 시나리오라면, 당연히 The Sleuth Kit을 사용하세요.
그러나, 마술 구출 디렉토리 항목이 덮어 쓰여진 경우에도 작동합니다. 즉, 더 많은
파일은 나중에 같은 폴더에 저장되었습니다.
Linux로 부팅하고 공간이 충분한 디렉토리로 이동합니다. Windows를 마운트합니다.
파티션을 읽기 전용으로 설정하고(특히 NTFS의 경우) 디렉토리를 생성합니다.
사용합니다.
$ mount -o ro /dev/hda1 /mnt/windows
$ mkdir 건강한_문서 구출된_문서
모든 건강한 Word 문서를 추출합니다. 마술 구출 그리고 그들의 데이터베이스를 구축합니다
체크섬. 모든 문서를 보내는 것은 약간 중복되는 것처럼 보일 수 있습니다. 마술 구출
첫째, 그러나 그 이유는 이 프로세스가 이를 수정할 수 있기 때문입니다(예: 후행 제거)
따라서 해당 문서의 체크섬은 원본 문서와 같지 않습니다.
또한 압축되지 않은 zip 파일과 같이 다른 파일에 내장된 문서를 찾습니다.
잘못된 확장자를 가진 보관 파일이나 파일.
$ find /mnt/windows -type f \
|magicrescue -I- -r msoffice -d healthy_docs
$ dupemap -d healthy_docs.map 건강한 문서를 스캔합니다
$ rm -rf 건강한 문서
이제 블록 장치에서 모든 "msoffice" 문서를 구출하고 모든 것을 제거하십시오.
*.doc가 아닙니다.
$ magicrescue -Mo -r msoffice -d rescued_docs /dev/hda1 \
|grep -v '\.doc$'|xargs rm -f
파일 시스템에도 나타나는 모든 복구 문서를 제거하고 제거하십시오.
중복.
$ dupemap -d healthy_docs.map 삭제, rescued_docs 보고
$ dupemap 삭제, rescued_docs 보고
The 구출된 문서 이제 폴더에는 몇 개의 파일만 들어 있을 것입니다. 이는 삭제되지 않은 파일입니다.
연속된 블록에 저장되지 않은 파일 및 일부 문서(해당 디프래거 사용)
;-)).
용법 과 fsck
이 시나리오(실화 기반)에서는 하드 디스크가 고장났습니다.
로 관리 dd 파일의 내용의 약 80%가 들어갔습니다 디스크 이미지, 그리고 당신은 오래된 것을 가지고 있습니다
몇 달 전 백업입니다. 디스크는 Linux의 reiserfs를 사용하고 있습니다.
먼저, fsck를 사용하여 파일 시스템을 다시 사용할 수 있도록 만드세요. 그러면 이름이 없는 많은 파일을 찾을 수 있을 것입니다.
그리고 그것들을 넣어 분실물디스크에 여유 공간이 있는지 확인해야 합니다.
이미지가 있으므로 fsck에서 작업할 수 있습니다.
$ cp 디스크이미지 디스크이미지.bak
$ dd if=/dev/zero bs=1M count=2048 >> 디스크이미지
$ reiserfsck --rebuild-tree 디스크이미지
$ mount -o 루프 디스크이미지 / mnt
$ ls /mnt/lost+found
(수많은 파일)
우리의 전략은 기존 백업을 기반으로 시스템을 복원하고 두 가지를 병합하는 것입니다.
다른 파일 세트(/mnt/분실+발견 그리고 / mnt) 제거 후 백업으로
중복입니다. 따라서 압축을 푼 디렉토리의 체크섬 데이터베이스를 만듭니다.
백업.
$ dupemap -d 백업.맵 스캔 ~/백업
다음으로, 복구된 이미지에서 존재하는 모든 파일을 제거합니다.
백업
$ dupemap -d backup.map 삭제, 보고서 / mnt
우리는 또한 중복을 제거하고 싶습니다 분실물, 그리고 우리는 모든 파일을 제거하고 싶습니다
다른 디렉토리에도 존재하는 / mnt.
$ dupemap 삭제, /mnt/lost+found 보고
$ls / mnt|grep -v lost+found|xargs dupemap -d mnt.map 스캔
$ dupemap -d mnt.map 삭제, /mnt/lost+found 보고
이렇게 하면 파일만 남게 됩니다. / mnt 마지막 백업 이후 변경되었거나
손상되었습니다. 특히, /mnt/분실+발견 이제 충분히 줄어들어야 합니다.
수동으로 정렬하거나 (또는 아마도 사용 마술사(삼)).
원시적 인 침입 검색
당신이 사용할 수 듀프맵 시스템에서 어떤 파일이 변경되는지 확인하는 방법입니다.
이국적인 용도로 사용되었으며, 영감을 주기 위해서만 포함되었습니다.
먼저, 전체 파일 시스템을 매핑합니다.
$ dupemap -d old.map 스캔 /
그런 다음 며칠/몇 주 후에 다시 돌아와서 실행하세요. 듀프맵 신고. 이것은 당신에게 줄 것입니다
무엇에 대한 견해 이 지원 변경되었습니다. 무엇을 보려고 이 변경된 경우 전체 파일 목록이 필요합니다.
시스템입니다. 새 지도를 준비하면서 이 목록을 쉽게 얻을 수 있습니다. 두 목록 모두
비교할 수 있도록 정렬해야 합니다.
$ dupemap -d old.map report /|정렬 > 변경되지 않은 파일
$ dupemap -d current.map 스캔 /|정렬 > 현재_파일
이제 남은 일은 이 파일들을 비교하고 다음 주를 준비하는 것뿐입니다. 이는 다음을 가정합니다.
dbm은 데이터베이스 파일에 ".db" 확장자를 추가합니다.
$ diff 변경되지 않은 파일 현재 파일 > 변경된 파일
$ mv 현재.맵.db 이전.맵.db
데이터 베이스
실제로 작성된 데이터베이스 파일 듀프체크 와 어떤 관련이 있을 것이다 데이터베이스
인수는 있지만 대부분의 구현은 확장자를 추가합니다. 예를 들어 Berkeley DB 이름은
파일 데이터베이스.dbSolaris와 GDBM은 둘 다 생성합니다. 데이터베이스.DIR 그리고 데이터베이스.pag
파일.
듀프체크 체크섬을 저장하기 위해 데이터베이스 라이브러리에 의존합니다. 현재 다음이 필요합니다.
POSIX 표준화 ndbm XSI 호환 UNIX에 반드시 존재해야 하는 라이브러리입니다.
구현에는 해시 키 충돌을 처리할 필요가 없으며 이를 처리하지 못하는 경우
만들 수 있었다 듀프체크 파일을 너무 많이 삭제하는 것 같습니다. 이런 구현 방식은 들어본 적이 없습니다.
그래도.
현재 체크섬 알고리즘은 파일의 CRC32 값과 파일 크기를 합친 값입니다. 두 값 모두
기본 바이트 순서로 저장되며 다양한 유형 크기 때문에 데이터베이스는 지원
다양한 아키텍처, 컴파일러, 운영체제에 이식 가능합니다.
onworks.net 서비스를 사용하여 온라인으로 dupemap을 사용하세요