원격 컴퓨터의 모든 csv 파일을 로컬 컴퓨터로 동기화

원격 컴퓨터의 모든 csv 파일을 로컬 컴퓨터로 동기화

많은 서버가 있습니다데이터 세트정기적으로 업데이트되는 파일, /home/peter/data/*.csv.

내 로컬 파일을 리모컨과 동기화하고 싶습니다. 내 SSH 구성에서 올바른 사용자 이름과 호스트를 설정했습니다.

나는 현재 다음을 사용해 보았습니다 scp.

rsync -e "ssh remote" -v --include='~/dat/*.csv'--include='*/' --exclude='*' . .

이것은 효과가 없습니다. 나는 얻다:

skipping directory .

업데이트된 파일이 없습니다.

답변1

rsync재귀적 파일 전송을 수행하지 않는 경우 ( -r사용되지 않음) 디렉터리 전송을 거부합니다.

대신에:

rsync -v remote:'data/*.csv' ./

그러면 컴퓨터의 홈 디렉터리에 있는 디렉터리의 모든 파일이 복사됩니다 .csv. 파일은 로컬 호스트의 현재 디렉터리로 전송됩니다.dataremote

원격 파일과 마찬가지로 로컬 파일에도 권한, 타임스탬프 등을 설정하려면 --archive( -a) 옵션을 추가하세요.

rsync -va remote:'data/*.csv' ./

이 플래그는 다른 플래그( )가 많이 있음을 -a의미 하지만 단일 디렉토리에서 파일을 가져오기 때문에 여기서는 실제로 사용되지 않습니다. 사용해야한다-r-rlptgoD-r특정한로컬 권한 및 타임스탬프 플래그를 설정하려면 --perms( -p) 및 --times( -t)를 대신 사용하세요.

답변2

man rsync당신이 필요 로하는 -a로고 에 따르면

-a, --archive  archive mode; equals -rlptgoD (no -H,-A,-X)

rsync -e "ssh remote" -av ....

세부 사항

-r, --recursive             recurse into directories
-l, --links                 copy symlinks as symlinks
-p, --perms                 preserve permissions
-t, --times                 preserve modification times
-g, --group                 preserve group
-o, --owner                 preserve owner (super-user only)
-D, --devices --specials    preserve devices and special files

관련 정보