AzCopy 및 File Storage를 사용한 데이터 전송

AzCopy는 스토리지 계정에서 또는 스토리지 계정으로 파일을 복사하는 데 사용할 수 있는 명령줄 유틸리티입니다. 이 문서에는 Azure Files를 사용하는 예제 명령이 포함되어 있습니다.

시작하기

AzCopy를 다운로드하고 스토리지 서비스에 인증 자격 증명을 제공하는 방법에 관해 알아보려면 AzCopy 시작 문서를 참조하세요.

참고 항목

이 문서의 예제에서는 SAS 토큰을 사용하여 액세스 권한을 부여하는 방법을 보여줍니다. 하지만 파일 및 디렉터리를 대상으로 하는 명령의 경우 이제 Microsoft Entra ID를 사용하여 권한 부여 자격 증명을 제공하고 해당 명령에서 SAS 토큰을 생략할 수 있습니다. 파일 공유 또는 계정만 대상으로 하는 명령에서는 여전히 SAS 토큰을 사용해야 합니다(예:'azcopy make https://mystorageaccount.file.core.windows.net/myfileshare' 또는 'azcopy copy 'https://mystorageaccount.file.core.windows.net').

자세한 내용은 AzCopy 권한 부여를 참조하세요.

파일 공유 만들기

azcopy make 명령을 사용하여 파일 공유를 만들 수 있습니다. 이 섹션의 예제에서는 myfileshare라는 파일 공유를 만듭니다.

이 예에서는 경로 인수를 작은따옴표(‘’)로 묶습니다. Windows 명령 셸(cmd.exe)을 제외하고 모든 명령 셸에서 작은따옴표를 사용합니다. Windows 명령 셸(cmd.exe)을 사용하는 경우 작은따옴표(‘’) 대신 큰따옴표(“”)로 경로 인수를 묶습니다.

Syntax

azcopy make 'https://<storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>'

예제

azcopy make 'https://mystorageaccount.file.core.windows.net/myfileshare?sv=2018-03-28&ss=bjqt&srs=sco&sp=rjklhjup&se=2019-05-10T04:37:48Z&st=2019-05-09T20:37:48Z&spr=https&sig=/SOVEFfsKDqRry4bk3qz1vAQFwY5DDzp2%2B/3Eykf/JLs%3D'

자세한 참조 문서는 azcopy make를 참조하세요.

파일 업로드

azcopy copy 명령을 사용하여 로컬 컴퓨터에서 파일과 디렉터리를 업로드할 수 있습니다.

이 섹션의 예제에서는 경로 인수를 작은따옴표(‘’)로 묶습니다. Windows 명령 셸(cmd.exe)을 제외하고 모든 명령 셸에서 작은따옴표를 사용합니다. Windows 명령 셸(cmd.exe)을 사용하는 경우 작은따옴표(‘’) 대신 큰따옴표(“”)로 경로 인수를 묶습니다.

이 섹션에는 다음 예제가 포함되어 있습니다.

  • 파일 업로드
  • 디렉터리 업로드
  • 디렉터리의 콘텐츠 업로드
  • 특정 파일 업로드

선택적 플래그를 사용하여 업로드 작업을 조정할 수 있습니다. 다음은 몇 가지 예제입니다.

시나리오 Flag
ACL(액세스 제어 목록)을 파일과 함께 복사합니다. --preserve-smb-permissions=[true|false]
파일과 함께 SMB 속성 정보를 복사합니다. --preserve-smb-info=[true|false]

전체 목록을 보려면 옵션을 참조하세요.

참고 항목

AzCopy는 256MB보다 큰 파일에 대한 파일의 md5 해시 코드를 자동으로 계산하고 저장하지 않습니다. AzCopy에서 이 작업을 수행하도록 하려면 각 복사 명령에 --put-md5 플래그를 추가합니다. 이를 통해 AzCopy는 파일이 다운로드되었을 때 다운로드한 데이터의 MD5 해시를 계산하고 파일의 Content-md5 속성에 저장된 MD5 해시가 계산된 해시와 일치하는지 확인합니다.

파일 업로드

Syntax

azcopy copy '<local-file-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<file-name>'

예제

azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.file.core.windows.net/myfileshare/myTextFile.txt?sv=2018-03-28&ss=bjqt&srs=sco&sp=rjklhjup&se=2019-05-10T04:37:48Z&st=2019-05-09T20:37:48Z&spr=https&sig=/SOVEFfsKDqRry4bk3qz1vAQFwY5DDzp2%2B/3Eykf/JLs%3D' --preserve-smb-permissions=true --preserve-smb-info=true

파일 경로 또는 파일 이름의 어디서든 와일드카드 기호(*)를 사용하여 파일을 업로드할 수도 있습니다. 예를 들면 'C:\myDirectory\*.txt' 또는 C:\my*\*.txt입니다.

디렉터리 업로드

이 예에서는 디렉터리와 해당 디렉터리의 모든 파일을 파일 공유에 복사합니다. 결과는 파일 공유에 동일한 이름으로 디렉터리가 생깁니다.

Syntax

azcopy copy '<local-directory-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

예제

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileshare?sv=2018-03-28&ss=bjqt&srs=sco&sp=rjklhjup&se=2019-05-10T04:37:48Z&st=2019-05-09T20:37:48Z&spr=https&sig=/SOVEFfsKDqRry4bk3qz1vAQFwY5DDzp2%2B/3Eykf/JLs%3D' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

파일 공유 내의 디렉터리로 복사하려면 명령 문자열에서 해당 디렉터리의 이름을 지정하기만 하면 됩니다.

예제

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory?sv=2018-03-28&ss=bjqt&srs=sco&sp=rjklhjup&se=2019-05-10T04:37:48Z&st=2019-05-09T20:37:48Z&spr=https&sig=/SOVEFfsKDqRry4bk3qz1vAQFwY5DDzp2%2B/3Eykf/JLs%3D' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

파일 공유에 존재하지 않는 디렉터리의 이름을 지정하면 AzCopy는 해당 이름으로 새 디렉터리를 만듭니다.

디렉터리의 콘텐츠 업로드

와일드카드 기호(*)를 사용하여 포함하는 디렉터리 자체를 복사하지 않고 디렉터리의 콘텐츠를 업로드할 수 있습니다.

Syntax

azcopy copy '<local-directory-path>/*' 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<directory-path><SAS-token>'

예제

azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory?sv=2018-03-28&ss=bjqt&srs=sco&sp=rjklhjup&se=2019-05-10T04:37:48Z&st=2019-05-09T20:37:48Z&spr=https&sig=/SOVEFfsKDqRry4bk3qz1vAQFwY5DDzp2%2B/3Eykf/JLs%3D' --preserve-smb-permissions=true --preserve-smb-info=true

참고 항목

모든 하위 디렉터리에 파일을 업로드하려면 --recursive 플래그를 추가합니다.

특정 파일 업로드

전체 파일 이름, 와일드카드 문자(*)가 포함된 부분 이름을 사용하거나 날짜 및 시간을 사용하여 특정 파일을 업로드할 수 있습니다.

전체 파일 이름을 여러 개 지정

--include-path 옵션과 함께 azcopy copy 명령을 사용합니다. 세미콜론(;)을 사용하여 개별 파일 이름을 구분합니다.

Syntax

azcopy copy '<local-directory-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name><SAS-token>' --include-path <semicolon-separated-file-list>

예제

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileshare?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --include-path 'photos;documents\myFile.txt' --preserve-smb-permissions=true --preserve-smb-info=true

이 예에서 AzCopy는 C:\myDirectory\photos 디렉터리와 C:\myDirectory\documents\myFile.txt 파일을 전송합니다. C:\myDirectory\photos 디렉터리의 모든 파일을 전송하려면 --recursive 옵션을 포함해야 합니다.

--exclude-path 옵션을 사용하여 파일을 제외할 수도 있습니다. 자세히 알아보려면 azcopy copy 참조 문서를 확인하세요.

와일드카드 문자 사용

--include-pattern 옵션과 함께 azcopy copy 명령을 사용합니다. 와일드카드 문자를 포함하는 부분 이름을 지정합니다. 세미콜론(;)을 사용하여 이름을 구분합니다.

Syntax

azcopy copy '<local-directory-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name><SAS-token>' --include-pattern <semicolon-separated-file-list-with-wildcard-characters>

예제

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileshare?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --include-pattern 'myFile*.txt;*.pdf*' --preserve-smb-permissions=true --preserve-smb-info=true

--exclude-pattern 옵션을 사용하여 파일을 제외할 수도 있습니다. 자세히 알아보려면 azcopy copy 참조 문서를 확인하세요.

--include-pattern--exclude-pattern 옵션은 경로가 아니라 파일 이름에만 적용됩니다. 디렉터리 트리에 있는 모든 텍스트 파일을 복사하려면 --recursive 옵션을 사용하여 전체 디렉터리 트리를 가져온 다음 --include-pattern을 사용하고 *.txt를 지정하여 모든 텍스트 파일을 가져옵니다.

날짜 및 시간 이후 수정된 파일 업로드

--include-after 옵션과 함께 azcopy copy 명령을 사용합니다. ISO 8601형식으로 날짜와 시간을 지정합니다(예: 2020-08-19T15:04:00Z).

Syntax

azcopy copy '<local-directory-path>\*' 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name><SAS-token>' --include-after <Date-Time-in-ISO-8601-format>

예제

azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.file.core.windows.net/myfileshare?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --include-after '2020-08-19T15:04:00Z' --preserve-smb-permissions=true --preserve-smb-info=true

자세한 참조는 azcopy copy 참조 문서를 확인하세요.

파일 다운로드

azcopy copy 명령을 사용하여 로컬 컴퓨터에 파일, 디렉터리, 파일 공유를 다운로드할 수 있습니다.

이 섹션의 예제에서는 경로 인수를 작은따옴표(‘’)로 묶습니다. Windows 명령 셸(cmd.exe)을 제외하고 모든 명령 셸에서 작은따옴표를 사용합니다. Windows 명령 셸(cmd.exe)을 사용하는 경우 작은따옴표(‘’) 대신 큰따옴표(“”)로 경로 인수를 묶습니다.

이 섹션에는 다음 예제가 포함되어 있습니다.

  • 파일 다운로드
  • 디렉터리 다운로드
  • 디렉터리의 콘텐츠 다운로드
  • 특정 파일 다운로드

선택적 플래그를 사용하여 다운로드 작업을 조정할 수 있습니다. 다음은 몇 가지 예입니다.

시나리오 Flag
ACL(액세스 제어 목록)을 파일과 함께 복사합니다. --preserve-smb-permissions=[true|false]
파일과 함께 SMB 속성 정보를 복사합니다. --preserve-smb-info=[true|false]
자동으로 파일의 압축을 풉니다. --decompress

전체 목록을 보려면 옵션을 참조하세요.

참고 항목

파일의 Content-md5 속성 값에 해시가 포함된 경우 AzCopy는 다운로드된 데이터의 MD5 해시를 계산하고 파일의 Content-md5 속성에 저장된 MD5 해시가 계산된 해시와 일치하는지 확인합니다. 이 값이 일치하지 않는 경우 copy 명령에 --check-md5=NoCheck 또는 --check-md5=LogOnly를 추가하여 이 동작을 재정의하지 않으면 다운로드에 실패합니다.

파일 다운로드

Syntax

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<file-path><SAS-token>' '<local-file-path>'

예제

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myTextFile.txt?sv=2018-03-28&ss=bjqt&srs=sco&sp=rjklhjup&se=2019-05-10T04:37:48Z&st=2019-05-09T20:37:48Z&spr=https&sig=/SOVEFfsKDqRry4bk3qz1vAQFwY5DDzp2%2B/3Eykf/JLs%3D' 'C:\myDirectory\myTextFile.txt' --preserve-smb-permissions=true --preserve-smb-info=true

디렉터리 다운로드

Syntax

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<directory-path><SAS-token>' '<local-directory-path>' --recursive

예제

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory?sv=2018-03-28&ss=bjqt&srs=sco&sp=rjklhjup&se=2019-05-10T04:37:48Z&st=2019-05-09T20:37:48Z&spr=https&sig=/SOVEFfsKDqRry4bk3qz1vAQFwY5DDzp2%2B/3Eykf/JLs%3D' 'C:\myDirectory'  --recursive --preserve-smb-permissions=true --preserve-smb-info=true

이 예제에서는 다운로드한 모든 파일을 포함하는 C:\myDirectory\myFileShareDirectory라는 디렉터리를 생성합니다.

디렉터리의 콘텐츠 다운로드

와일드카드 기호(*)를 사용하여 포함하는 디렉터리 자체를 복사하지 않고 디렉터리의 콘텐츠를 다운로드할 수 있습니다.

Syntax

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/*<SAS-token>' '<local-directory-path>/'

예제

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory/*?sv=2018-03-28&ss=bjqt&srs=sco&sp=rjklhjup&se=2019-05-10T04:37:48Z&st=2019-05-09T20:37:48Z&spr=https&sig=/SOVEFfsKDqRry4bk3qz1vAQFwY5DDzp2%2B/3Eykf/JLs%3D' 'C:\myDirectory' --preserve-smb-permissions=true --preserve-smb-info=true

참고 항목

모든 하위 디렉터리에 파일을 다운로드하려면 --recursive 플래그를 추가합니다.

특정 파일 다운로드

전체 파일 이름, 와일드카드 문자(*)가 포함된 부분 이름을 사용하거나 날짜 및 시간을 사용하여 특정 파일을 다운로드할 수 있습니다.

전체 파일 이름을 여러 개 지정

--include-path 옵션과 함께 azcopy copy 명령을 사용합니다. 세미콜론(;)을 사용하여 개별 파일 이름을 구분합니다.

Syntax

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name><SAS-token>' '<local-directory-path>' --include-path <semicolon-separated-file-list>

예제

azcopy copy 'https://mystorageaccount.file.core.windows.net/myFileShare/myDirectory?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'C:\myDirectory'  --include-path 'photos;documents\myFile.txt' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

이 예에서 AzCopy는 https://mystorageaccount.file.core.windows.net/myFileShare/myDirectory/photos 디렉터리와 https://mystorageaccount.file.core.windows.net/myFileShare/myDirectory/documents/myFile.txt 파일을 전송합니다. https://mystorageaccount.file.core.windows.net/myFileShare/myDirectory/photos 디렉터리의 모든 파일을 전송하려면 --recursive 옵션을 포함합니다.

--exclude-path 옵션을 사용하여 파일을 제외할 수도 있습니다. 자세히 알아보려면 azcopy copy 참조 문서를 확인하세요.

와일드카드 문자 사용

--include-pattern 옵션과 함께 azcopy copy 명령을 사용합니다. 와일드카드 문자를 포함하는 부분 이름을 지정합니다. 세미콜론(;)을 사용하여 이름을 구분합니다.

Syntax

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name><SAS-token>' '<local-directory-path>' --include-pattern <semicolon-separated-file-list-with-wildcard-characters>

예제

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myDirectory?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'C:\myDirectory'  --include-pattern 'myFile*.txt;*.pdf*' --preserve-smb-permissions=true --preserve-smb-info=true

--exclude-pattern 옵션을 사용하여 파일을 제외할 수도 있습니다. 자세히 알아보려면 azcopy copy 참조 문서를 확인하세요.

--include-pattern--exclude-pattern 옵션은 경로가 아니라 파일 이름에만 적용됩니다. 디렉터리 트리에 있는 모든 텍스트 파일을 복사하려면 --recursive 옵션을 사용하여 전체 디렉터리 트리를 가져온 다음 --include-pattern을 사용하고 *.txt를 지정하여 모든 텍스트 파일을 가져옵니다.

날짜 및 시간 이전 또는 이후 수정된 파일 다운로드

--include-after 옵션과 함께 azcopy copy 명령을 사용합니다. ISO-8601형식으로 날짜와 시간을 지정합니다(예: 2020-08-19T15:04:00Z).

Syntax

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name>/*<SAS-token>' '<local-directory-path>' --include-after <Date-Time-in-ISO-8601-format>

예제

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/*?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'C:\myDirectory' --include-after '2020-08-19T15:04:00Z' --preserve-smb-permissions=true --preserve-smb-info=true

자세한 참조는 azcopy copy 참조 문서를 확인하세요.

공유 스냅샷에서 다운로드

공유 스냅샷의 날짜/시간 값을 참조하여 특정 버전의 파일이나 디렉터리를 다운로드할 수 있습니다. 공유 스냅샷에 대해 자세히 알아보려면 Azure Files의 공유 스냅샷 개요를 참조하세요.

Syntax

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<file-path-or-directory-name><SAS-token>&sharesnapshot=<DateTime-of-snapshot>' '<local-file-or-directory-path>'

예(파일 다운로드)

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myTextFile.txt?sv=2018-03-28&ss=bjqt&srs=sco&sp=rjklhjup&se=2019-05-10T04:37:48Z&st=2019-05-09T20:37:48Z&spr=https&sig=/SOVEFfsKDqRry4bk3qz1vAQFwY5DDzp2%2B/3Eykf/JLs%3D&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'C:\myDirectory\myTextFile.txt' --preserve-smb-permissions=true --preserve-smb-info=true

예(디렉터리 다운로드)

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory?sv=2018-03-28&ss=bjqt&srs=sco&sp=rjklhjup&se=2019-05-10T04:37:48Z&st=2019-05-09T20:37:48Z&spr=https&sig=/SOVEFfsKDqRry4bk3qz1vAQFwY5DDzp2%2B/3Eykf/JLs%3D&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'C:\myDirectory'  --recursive --preserve-smb-permissions=true --preserve-smb-info=true

스토리지 계정 간에 파일 복사

AzCopy를 사용하여 파일을 다른 스토리지 계정에 복사할 수 있습니다. 복사 작업은 동기적이므로 명령이 반환할 때 모든 파일이 복사됩니다.

AzCopy는 서버 간API를 사용하므로 스토리지 서버 간에 데이터가 직접 복사됩니다. AZCOPY_CONCURRENCY_VALUE 환경 변수의 값을 설정하여 해당 작업의 처리량을 늘릴 수 있습니다. 자세히 알아보려면 동시성 향상을 참조하세요.

공유 스냅샷의 날짜/시간 값을 참조하여 특정 버전의 파일을 복사할 수도 있습니다. 공유 스냅샷에 대해 자세히 알아보려면 Azure Files의 공유 스냅샷 개요를 참조하세요.

이 섹션의 예제에서는 경로 인수를 작은따옴표(‘’)로 묶습니다. Windows 명령 셸(cmd.exe)을 제외하고 모든 명령 셸에서 작은따옴표를 사용합니다. Windows 명령 셸(cmd.exe)을 사용하는 경우 작은따옴표(‘’) 대신 큰따옴표(“”)로 경로 인수를 묶습니다.

이 섹션에는 다음 예제가 포함되어 있습니다.

  • 다른 스토리지 계정에 파일 복사
  • 다른 스토리지 계정에 디렉터리 복사
  • 다른 스토리지 계정에 파일 공유 복사
  • 다른 스토리지 계정에 모든 파일 공유, 디렉터리 및 파일 복사

선택적 플래그를 사용하여 복사 작업을 조정할 수 있습니다. 다음은 몇 가지 예제입니다.

시나리오 Flag
ACL(액세스 제어 목록)을 파일과 함께 복사합니다. --preserve-smb-permissions=[true|false]
파일과 함께 SMB 속성 정보를 복사합니다. --preserve-smb-info=[true|false]

전체 목록을 보려면 옵션을 참조하세요.

다른 스토리지 계정에 파일 복사

Syntax

azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name>/<file-path><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name>/<file-path><SAS-token>'

예제

azcopy copy 'https://mysourceaccount.file.core.windows.net/mycontainer/myTextFile.txt?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.file.core.windows.net/mycontainer/myTextFile.txt?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --preserve-smb-permissions=true --preserve-smb-info=true

예제(스냅샷 공유)

azcopy copy 'https://mysourceaccount.file.core.windows.net/mycontainer/myTextFile.txt?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net/mycontainer/myTextFile.txt?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --preserve-smb-permissions=true --preserve-smb-info=true

다른 스토리지 계정에 디렉터리 복사

Syntax

azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name>/<directory-path><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

예제

azcopy copy 'https://mysourceaccount.file.core.windows.net/myFileShare/myFileDirectory?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.file.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

예제(스냅샷 공유)

azcopy copy 'https://mysourceaccount.file.core.windows.net/myFileShare/myFileDirectory?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

다른 스토리지 계정에 파일 공유 복사

Syntax

azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

예제

azcopy copy 'https://mysourceaccount.file.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.file.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D --preserve-smb-permissions=true --preserve-smb-info=true

예제(스냅샷 공유)

azcopy copy 'https://mysourceaccount.file.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

다른 스토리지 계정에 모든 파일 공유, 디렉터리 및 파일 복사

Syntax

azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<SAS-token>' --recursive'

예제

azcopy copy 'https://mysourceaccount.file.core.windows.net?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.file.core.windows.net?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

예제(스냅샷 공유)

azcopy copy 'https://mysourceaccount.file.core.windows.net?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

파일 동기화

로컬 파일 시스템의 내용을 파일 공유와 동기화하거나 파일 공유의 내용을 다른 파일 공유와 동기화할 수 있습니다. 또한 파일 공유에 있는 디렉터리의 내용을 다른 파일 공유에 있는 디렉터리의 내용과 동기화할 수 있습니다. 한 가지 방법으로 동기화가 있습니다. 즉, 이 두 엔드포인트 중에서 소스와 대상을 선택합니다. 동기화에서도 서버 간 API를 사용합니다.

참고 항목

현재 이 시나리오는 Blob 엔드포인트를 통해 계층적 네임스페이스를 사용하도록 설정한 계정에 대해 지원됩니다.

Warning

AzCopy 동기화는 지원되지만 Azure Files에는 권장되지 않습니다. AzCopy 동기화는 대규모 차등 복사본을 지원하지 않으며 일부 파일 충실도가 손실될 수 있습니다. 자세한 내용은 Azure 파일 공유로 마이그레이션을 참조하세요.

지침

기본적으로 sync 명령은 파일 이름과 마지막으로 수정된 타임스탬프를 비교합니다. --compare-hash 플래그를 사용하여 마지막으로 수정한 타임스탬프 대신 MD5 해시를 사용하도록 해당 동작을 재정의할 수 있습니다. --delete-destination 선택적 플래그를 true 또는 prompt 값으로 설정하여 해당 파일이 소스 디렉터리에 더는 존재하지 않는 경우 대상 디렉터리의 파일을 삭제합니다.

  • --delete-destination 플래그를 true로 설정하면 AzCopy에서 프롬프트를 제공하지 않고 파일을 삭제합니다. AzCopy가 파일을 삭제하기 전에 프롬프트를 표시하려면 --delete-destination 플래그를 prompt로 설정합니다.

  • --delete-destination 플래그를 prompt 또는 false로 설정하려는 경우 sync 명령 대신 copy 명령을 사용하고 --overwrite 매개 변수를 ifSourceNewer로 설정하는 것이 좋습니다. 복사 작업은 파일을 이동하기 전에 원본 또는 대상을 인덱싱하지 않아도 되기 때문에 copy 명령을 사용하면 메모리를 적게 사용하고 청구 비용을 줄일 수 있습니다.

  • --compare-hash 플래그를 사용하지 않으려면 마지막으로 수정된 시간이 파일이 전송되어야 하는지 여부를 결정하는 데 중요하므로 sync 명령을 실행하는 컴퓨터에 정확한 시스템 시계가 있어야 합니다. 시스템의 클록 오차가 심각한 경우 sync 명령을 실행하려는 시간에 너무 가까운 대상의 파일을 수정하지 마십시오.

  • AzCopy는 서버 간 API를 사용하여 스토리지 계정 간에 데이터를 동기화합니다. 즉, 데이터가 스토리지 서버 간에 직접 복사됩니다. 그러나 AzCopy는 각 전송을 설정하고 모니터링하며, 더 큰 스토리지 계정(예: 수백만 개의 Blob을 포함하는 계정)의 경우 AzCopy는 이러한 작업을 수행하기 위해 상당한 양의 컴퓨팅 리소스가 필요할 수 있습니다. 따라서 VM(Virtual Machine)에서 AzCopy를 실행하는 경우 VM에 부하를 처리하기에 충분한 코어/메모리가 있는지 확인합니다.

선택적 플래그를 사용하여 동기화 작업을 조정할 수 있습니다. 다음은 몇 가지 예제입니다.

시나리오 Flag
ACL(액세스 제어 목록)을 파일과 함께 복사합니다. --preserve-smb-permissions=[true|false]
파일과 함께 SMB 속성 정보를 복사합니다. --preserve-smb-info=[true|false]
패턴을 기반으로 파일을 제외합니다. --exclude-path
동기화 관련 로그 항목의 세부 정보를 지정합니다. --log-level=[WARNING|ERROR|INFO|NONE]

전체 목록을 보려면 옵션을 참조하세요.

이 섹션의 예제에서는 경로 인수를 작은따옴표(‘’)로 묶습니다. Windows 명령 셸(cmd.exe)을 제외하고 모든 명령 셸에서 작은따옴표를 사용합니다. Windows 명령 셸(cmd.exe)을 사용하는 경우 작은따옴표(‘’) 대신 큰따옴표(“”)로 경로 인수를 묶습니다.

로컬 파일 시스템의 변경 내용으로 파일 공유 업데이트

이 경우 파일 공유는 대상이고, 로컬 파일 시스템은 원본입니다.

이 예에서는 경로 인수를 작은따옴표(‘’)로 묶습니다. Windows 명령 셸(cmd.exe)을 제외하고 모든 명령 셸에서 작은따옴표를 사용합니다. Windows 명령 셸(cmd.exe)을 사용하는 경우 작은따옴표(‘’) 대신 큰따옴표(“”)로 경로 인수를 묶습니다.

Syntax

azcopy sync '<local-directory-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

예제

azcopy sync 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileShare?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --recursive

파일 공유의 변경 내용으로 로컬 파일 시스템 업데이트

이 경우 로컬 파일 시스템은 대상이고, 파일 공유는 원본입니다.

이 예에서는 경로 인수를 작은따옴표(‘’)로 묶습니다. Windows 명령 셸(cmd.exe)을 제외하고 모든 명령 셸에서 작은따옴표를 사용합니다. Windows 명령 셸(cmd.exe)을 사용하는 경우 작은따옴표(‘’) 대신 큰따옴표(“”)로 경로 인수를 묶습니다.

Syntax

azcopy sync 'https://<storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' 'C:\myDirectory' --recursive

예제

azcopy sync 'https://mystorageaccount.file.core.windows.net/myfileShare?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'C:\myDirectory' --recursive

다른 파일 공유에 대한 변경 내용으로 파일 공유 업데이트

이 명령에 표시되는 첫 번째 파일 공유는 원본입니다. 두 번째는 대상입니다.

Syntax

azcopy sync 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

예제

azcopy sync 'https://mysourceaccount.file.core.windows.net/myfileShare?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.file.core.windows.net/myfileshare?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

다른 파일 공유에 있는 디렉터리의 변경 내용으로 디렉터리 업데이트

이 명령에 표시되는 첫 번째 디렉터리는 원본입니다. 두 번째는 대상입니다.

Syntax

azcopy sync 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name>/<directory-name><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name>/<directory-name><SAS-token>' --recursive

예제

azcopy sync 'https://mysourceaccount.file.core.windows.net/myFileShare/myDirectory?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.file.core.windows.net/myFileShare/myDirectory?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

공유 스냅샷의 내용과 일치하도록 파일 공유 업데이트

이 명령에 표시되는 첫 번째 파일 공유는 원본입니다. URI의 끝에서 문자열 &sharesnapshot= 뒤에 스냅샷의 날짜/시간 값을 추가합니다.

Syntax

azcopy sync 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>&sharesnapsot<snapshot-ID>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

예제

azcopy sync 'https://mysourceaccount.file.core.windows.net/myfileShare?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D&sharesnapshot=2020-03-03T20%3A24%3A13.0000000Z' 'https://mydestinationaccount.file.core.windows.net/myfileshare?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --recursive --preserve-smb-permissions=true --preserve-smb-info=true

공유 스냅샷에 대해 자세히 알아보려면 Azure Files의 공유 스냅샷 개요를 참조하세요.

다음 단계

다음 문서에서 더 많은 예제를 찾아보세요.

이러한 문서를 참조하여 설정을 구성하고, 성능을 최적화하고, 문제를 해결하세요.