이 문제를 방지하기 위해 필자는 bash 스크립트만으로 질문을 좁혔다. EDITED 질문네트워크 공유에서 Bash 스크립트로 중복 파일 제거
나는 소규모 네트워크를 실행하고 백업 루틴에서 실수를했다. 나는 매일 rsync
을 운영하고 있는데, 어떻게 설정되는지는 소스에서 폴더의 이름이 바뀌면 백업 장치에 잠재적 인 복제가 발생할 수 있다는 것입니다.
rsync -varz --no-perms --exclude-from=/path/to/exclude_file --log-file=/path/to/rsync_logs
어떤 종류의 bash 스크립트 전략을 사용하여 공격 할 수 있습니까? 재귀 적으로 목록을 작성하고 파일로 출력하고 diff
을 사용하여 비교했습니다. 이로 인해 복제 문제의 영향을 알게되었습니다. 중복 제거를 위해 자동화 된 프로세스를 사용할 수 있다면 시간이 많이 걸릴 것입니다.
find /mnt/data/ -maxdepth 2 -mindepth 1 -type d -printf '%f\n' > data.txt
과에 비교 :
나는 이런 식으로 뭔가를 시도하여 시작drwxr-xr-x 0 bob staff 0 Jun 25 2009 7-1-08
drwxr-xr-x 0 bob staff 0 Jun 25 2009 2008-07-01
이를 :
find /mnt/backup/ -maxdepth 2 -mindepth 1 -type d -printf '%f\n' > backup.txt
내 문제의 예이있다 의 예입니다. 백업 드라이브가 있고 두 디렉토리의 내용이 동일합니다. 백업이 모두 포함 된 소스는이 하나를 가지고 문제의
drwxr-xr-x 0 bob staff 0 Jun 25 2009 2008-07-01
이 종류는 모든 백업 드라이브에 걸쳐있다.
편집
나는이 목록을 작성 diff
그들을 에드와 수동 겪었하고 변경 사항을 조정. 일단 내가 그것에 빠지면 원래 생각만큼 나쁘지 않았습니다. 내가 각 답변에서 조각을 사용하여 끝내기 때문에 나는 여기에 (@Mark Pettit과 @ebarrere) 두 답에 +1을 주었다. 이 실험 과정에서 몇 가지 찾기 명령을 실행하고 더 구체적으로 내 rsync
스크립트를 변경했습니다. 고마워.
이것은 아주 작은 명령입니다. 도와 줘서 고마워. 필자는 여러 개의 하위 디렉토리에 대해 테스트를 거쳤습니다. 중복 된 서브 디렉토리가 있음을 알았고 발견했습니다. 이것을 수동으로 확인할 수 있었기 때문에 매우 신뢰할 수있었습니다. – nicorellius