나는 OLD OLD OLD * nix 시스템에서 테라 바이트 상당의 데이터를 복사하고 있습니다. 드라이브를 연결할 새 하드웨어를 구입하는 데 돈을 쓸 수 있지만 돈을 쓰지 않으려 고합니다.
시스템이 엉망입니다. 그것은 많이 얼고 충돌합니다. 그래서 매번 복사 프로세스를 다시 시작해야합니다. 그리고 이미 복사 한 파일을 "건너 뛰어야"하기 때문에 "추적"하는 데 오랜 시간이 걸립니다.
사용할 수는 rsync
있지만 시스템이 너무 느려서 rsync
초기 인벤토리 스캔 / 비교를 시작할 때마다 시간 이 걸립니다.
그래서 복사해야하는 모든 파일의 일회성 목록을 생성하여 파일에 저장할 수 있다고 생각했습니다. 그런 다음 파일을 살펴보고 해당 파일을 복사 한 다음 해당 줄을 삭제하는 스크립트를 가질 수 있습니다. 스크립트 / 복사가 중간에 실패하면 중단 된 부분부터 계속할 수 있습니다. 대기열에서 줄을 삭제하는 부분을 처리 / 처리하는 방법을 모르지만 이미 필요한 작업을 수행하는 공개적으로 사용 가능한 도구 또는 스크립트가 있어야한다는 것을 깨달았습니다.
따라서 목표는 파일의 일부 입력 대기열을 통해 복사 및 복사하고 복사가 완료되면 대기열에서 제거하는 것입니다. 이 특정 사용 사례에는 필요하지 않지만 대기열에 추가되는 새 항목을 수용 할 수 있어야합니다. 물론 큐는 파일 기반이어야하므로 시스템 오류 / 문제가 발생한 경우에도 계속 될 수 있습니다.
아는 사람 있나요?
이 작업을 안정적으로 수행하려면 "전문적인"검증 된 도구를 사용하는 것이 좋지만 여기에 솔루션에 대한 빠르고 더러운 즉석 접근 방식이 있습니다. 시스템 문제로 인해 파일의 한 줄을 삭제하지 못할 수 있으므로 성공적으로 복사 된 파일의 이름을 로그 파일에 유지하는 것이 조금 더 안전 해 보입니다. 예를 들어 ls
결과 를 리디렉션하여 복사 할 파일이 포함 된 "할 일"파일 과 빈 "로그"파일을 만듭니다. 그런 다음 실행
comm -2 -3 todo log |
while read FN
do echo cp "$FN" "new/path/to/$FN" && echo "$FN" >> log || echo "$FN" >&2
done 2>>errlog
이것이 실행될 때마다 이미 복사되고 기록 된 파일은 건너 뜁니다. "파일이 정렬 된 순서가 아닙니다"라는 경고 sort
를 피하기 위해 "todo"파일을 원할 수 있습니다 comm
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다