파일을 백업하기 위해 스크립트를 수정하려면 어떻게 해야 합니까?

파일을 백업하기 위해 스크립트를 수정하려면 어떻게 해야 합니까?

이전 Windows 컴퓨터에서 방금 구입한 독립형 Linux 노트북(s/h Dell Linux Mint 17.1)으로 파일(텍스트 파일, jpeg, 영화만)을 옮겼습니다. 이러한 파일을 USB에 백업하려면 백업 도구에 두 가지 문제가 있습니다.

  • (1) 이 도구는 노트북에서 삭제한 파일을 삭제하지 않습니다. 즉, USB를 통해 파일을 삭제하는 것입니다.
  • (2) 백업할 때마다 도구를 설정해야 하는데, 이는 매우 귀찮습니다.

Linux에 대해 배우는 데는 불과 몇 주가 걸렸습니다. 터미널에서 빠르게 실행하기 위해 다음 스크립트를 작성했습니다.

#!/bin/bash
rsync -arh --quiet --delete ~/ /media/my-laptop/my-usb

나는 이것에 문제가 있다고 생각합니다. 모든 것이 어느 정도 잘 작동하는 것 같습니다(즉, 스크립트를 실행한 후 모든 USB에는 하드 드라이브에 있는 내용의 정확한 복사본이 있습니다). 그러나 (ctrl h를 사용하면) 숨겨진 파일도 복사되어 빌드 중에 많이 나타나는 것을 볼 수 있습니다. 오류 메시지는 다음과 같습니다.

rsync : mkstemp “media/my-pc/my-usm/.local/share/Trash/files/. …...” failed : Invalid argument (22). 

rsync : symlink “media/my-pc/my-usm/.local/share/Trash/files/….”  →  “….”  failed : Operation not permitted (1). 

간단하게 두 줄 #을 수정해주세요! 위 스크립트를 사용하면 숨겨진 파일 및 관련 오류 메시지 없이 내 파일과 파일만 백업할 수 있습니까?

답변1

포인트 파일 백업을 피하려고 하기보다는 이러한 파일의 백업이 실패하는 이유를 살펴보는 것이 좋습니다.

백업 대상은 FAT 파일 시스템일 수 있습니다. 이는 파일과 관련된 모든 메타데이터(소유권, 권한 등)를 처리하지 않으므로 데이터의 "진정한" 복사본을 만들지 않습니다.

여기서 한 가지 옵션은 장치를 ext4파일 시스템으로 다시 포맷하고 해당 파일 시스템에 백업하는 것입니다. ext4고아 데이터가 발생하지 않도록 Windows용 FOSS 드라이버를 사용하여 파일 시스템을 읽을 수 있습니다 .

USB 장치를 다시 포맷하는 경우 올바른 장치를 포맷하고 있는지 다시 확인하세요. 루트 파일 시스템을 삭제하면 복구가 매우 어렵습니다.

나는 그러기를 바란다그것은 마치 /dev/sdb1하지만 /dev/sda*. 명령을 사용하여 장치를 확인할 수 있지만 mount | grep /media장치 이름이 가져온 이름과 다른지 확인하십시오 mount | grep '/$'. 확실하지 않은 경우 명령의 전체 결과로 질문을 업데이트하세요 mount.

또 다른 옵션은 duplicity.

답변2

당신이 그렇게한다면아니요"숨겨진" 파일을 포함하려면 rsync해당 파일을 무시하도록 지시할 수 있습니다.

--exclude=".*"

따라서 귀하의 예에 따르면 다음과 같습니다.

rsync -arh --quiet --exclude=".*" --delete ~/ /media/my-laptop/my-usb


편집하다: 하지만 이 접근 방식은아니요지원어느.구성 파일(파일 이름으로 시작하는 "숨겨진" 파일)

관련 정보