저는 openmediavault(OMV는 openmediavault.org의 NAS 소프트웨어)를 사용하고 있으며 다른 공유가 정의되어 있습니다. 공유 중 하나에는 다음과 같은 폴더 구조가 있습니다. (예)
Subfolder"ABC"/Subsubfolder"SWU"/*.*Files
Subfolder"ABC"/Subsubfolder"SXY"/*.*Files
Subfolder"ABC"/Subsubfolder"ZWE"/*.*Files
Subfolder"BCD"/Subsubfolder"SWU"/*.*Files
Subfolder"CDE"/Subsubfolder"ABC"/*.*Files
Subfolder"TXY"/Subsubfolder"SWU"/*.*Files
OMV 내에서 rsync를 통해 두 개의 다른 공유로 분할하고 싶지만 include/exclude를 사용하는 데 문제가 있습니다. rsync 사용 가능성은 제한되어 있지만 OMV-Rsync GUI에는 include/exclude 문을 입력할 수 있는 추가 옵션 필드가 있습니다.
하위 폴더로 분할하고 싶습니다. 하위 폴더가 한 부분으로 "0"에서 "Sj"로 시작하고 다른 부분은 "Sk"에서 "Z"로 시작하고 싶습니다.
난 이미 시도했어
--exclude={/S[k-z]*/,/[T-z]*/}
그러나 이는 예상대로 작동하지 않았습니다. 테스트 실행에서는 예를 들어 Zur/S056776/ 폴더의 파일도 동기화되어 있음을 보여줍니다.
답변1
편집된 질문과 일치하도록 답변이 편집되었습니다.
다음 제외 패턴을 시도해 볼 수 있습니다. 디렉터리를 공용 폴더 위로 변경하고 folder
실제 공용 폴더 이름과 일치하도록 패턴을 수정합니다.
--exclude={/folder/S[k-z]*/,/folder/[T-z]*/}
시도한 패턴이 왜 작동하지 않는지 모르겠습니다(그러나 작동하지 않는 디렉토리를 정확히 표시하면 문제를 찾는 데 도움을 줄 수 있습니다).
--exclude={/S[k-z]*/,/[T-z]*/}
편집 2,3 - Linux OS를 실행하는 NAS 서버
NAS 서버는 Linux 운영 체제를 실행합니다. openmediavault, OMV를 다운로드하여 테스트했습니다. ssh
서버를 실행하고 있으며 rsync
컴퓨터와 서버간에 파일을 전송하고 서버에 텔넷을 전송하고 ssh
서버 내에서 실행하기 위해 실행될 수 있습니다.rsync
- 로그인 정보를 변경하지 않은 경우
웹 인터페이스
User: admin Password: openmediavault
클라이언트(SSH, 콘솔)
User: root Password: <The password that you have set during installation>
터미널 창을 열고 다음을 통해 연결하세요.
ssh
ssh root@ip-address-to-your-server # example: ssh [email protected] # if local
키 인증을 사용하여
rsync
서버에 로그인하거나 실행하십시오.서버에서 명령 실행
cd 'path-to-directory-above-folder' mkdir target1 # only once, or use a target above your current directory mkdir target2 # -"- rsync -Havn --exclude={/target*/,/folder/S[k-z]*/,/folder/[T-z]*/} * target1 rsync -Havn --exclude={/target*/,/folder/[0-R]*/,/folder/S[0-j]*/} * target2
다른 명령을 실행하여 모든 것이 괜찮은지 확인할 수 있습니다.
for i in $(find folder);do test -e "${i/folder/target1\/folder}" || test -e "${i/folder/target2\/folder}" || echo "$i not copied";done
완료되면 서버에서 로그아웃합니다(제 경우에는 사용자
myself
및 에서root
).exit
원래 답변
잘 모르겠지만 나는생각하다다음 명령줄은 원하는 것을 생성합니다.
테스트 디렉터리에는 테스트를 위해 여러 하위 디렉터리와 파일에 target1
, target2
, folder
, 및 하위 디렉터리를 만들었습니다.folder
rsync -Havn --exclude={/target*/,/folder/S[k-z]*/,/folder/[T-z]*/} * target1
rsync -Havn --exclude={/target*/,/folder/[0-R]*/,/folder/S[0-j]*/} * target2
- 먼저
-n
"모의 실행" 옵션(여기에 표시된 대로)을 사용하여 실행하여 수행할 작업을 확인합니다. - 그런 다음 (아마도 수정 후) 원하는 작업을 수행하면 디렉터리 구조를 삭제
-n
하고 대상 디렉터리에 복사합니다.rsync
다음 디렉터리 트리를 사용하여 테스트했습니다.
$ find |sort
.
./folder
./folder/ABC
./folder/ABC/SWU
./folder/ABC/SWU/file
./folder/ABC/SXY
./folder/ABC/SXY/file
./folder/ABC/ZWE
./folder/ABC/ZWE/file
./folder/AIB
./folder/AIB/Sja
./folder/AIB/Sja/file
./folder/AIB/Skb
./folder/AIB/Skb/file
./folder/AIB/SWU
./folder/AIB/SWU/file
./folder/BCD
./folder/BCD/SWU
./folder/BCD/SWU/file
./folder/CDE
./folder/CDE/SWU
./folder/CDE/SWU/file
./folder/Sja
./folder/Sja/Skb
./folder/Sja/Skb/file
./folder/Sja/SWU
./folder/Sja/SWU/file
./folder/Skb
./folder/Skb/Sja
./folder/Skb/Sja/file
./folder/Skb/SWU
./folder/Skb/SWU/file
./folder/TXX
./folder/TXX/Sja
./folder/TXX/Sja/file
./folder/TXX/Sjb
./folder/TXX/Sjb/file
./folder/TXX/Skb
./folder/TXX/Skb/file
./folder/TXY
./folder/TXY/SWU
./folder/TXY/SWU/file
./folder/Zab
./folder/Zab/ABC
./folder/Zab/ABC/file
./folder/zBC
./folder/zBC/ABC
./folder/zBC/ABC/file
./folder/zBC/ABC/target
./folder/zBC/target
./target1
./target2
다음 "시험 실행"을 수행하십시오.
$ rsync -Havn --exclude={/target*/,/folder/S[k-z]*/,/folder/[T-z]*/} * target1
sending incremental file list
folder/
folder/ABC/
folder/ABC/SWU/
folder/ABC/SWU/file
folder/ABC/SXY/
folder/ABC/SXY/file
folder/ABC/ZWE/
folder/ABC/ZWE/file
folder/AIB/
folder/AIB/SWU/
folder/AIB/SWU/file
folder/AIB/Sja/
folder/AIB/Sja/file
folder/AIB/Skb/
folder/AIB/Skb/file
folder/BCD/
folder/BCD/SWU/
folder/BCD/SWU/file
folder/CDE/
folder/CDE/SWU/
folder/CDE/SWU/file
folder/Sja/
folder/Sja/SWU/
folder/Sja/SWU/file
folder/Sja/Skb/
folder/Sja/Skb/file
sent 742 bytes received 106 bytes 1,696.00 bytes/sec
total size is 0 speedup is 0.00 (DRY RUN)
그리고
$ rsync -Havn --exclude={/target*/,/folder/[0-R]*/,/folder/S[0-j]*/} * target2
sending incremental file list
folder/
folder/Skb/
folder/Skb/SWU/
folder/Skb/SWU/file
folder/Skb/Sja/
folder/Skb/Sja/file
folder/TXX/
folder/TXX/Sja/
folder/TXX/Sja/file
folder/TXX/Sjb/
folder/TXX/Sjb/file
folder/TXX/Skb/
folder/TXX/Skb/file
folder/TXY/
folder/TXY/SWU/
folder/TXY/SWU/file
folder/Zab/
folder/Zab/ABC/
folder/Zab/ABC/file
folder/zBC/
folder/zBC/ABC/
folder/zBC/ABC/file
folder/zBC/ABC/target/
folder/zBC/target/
sent 713 bytes received 100 bytes 1,626.00 bytes/sec
total size is 0 speedup is 0.00 (DRY RUN)