많은 서버가 있습니다데이터 세트정기적으로 업데이트되는 파일, /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
. 파일은 로컬 호스트의 현재 디렉터리로 전송됩니다.data
remote
원격 파일과 마찬가지로 로컬 파일에도 권한, 타임스탬프 등을 설정하려면 --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