서버 A에서 rsync를 실행하여 7 일 이후의 서버 B에서 모든 파일을 복사하려고합니다.
find . -mtime -7
서버 B에서 파일을 삭제하고 싶지 않습니다.
답변
이것은 당신을 확실한 방법으로 진행해야합니다
rsync -RDa0P \
--files-from=<(find sourcedir/./ -mtime -7 -print0) \
. user@B:targetdir/
장치 노드, 권한, 타임 스탬프를 복사합니다. 나는 -H 옵션이 –files-from으로 정확하지 않을 것이라고 확신합니다.
답변
나는 원격 서버에서 로컬로 동기화하기 위해 cybertoast의 의견을 기반 으로이 스크립트를 작성했습니다.
드라 이런을 사용 ./script.sh 3
하거나 드라 이런을 위해 스크립트를 호출 할 수 있습니다 ./script.sh 3 dry
.
#!/bin/bash
TIME=$1
DRYRUN=$2
if [[ -z $TIME ]]; then
echo "Error: no time argument."
echo "Please enter the number of days to sync."
exit 1
fi
if [[ $DRYRUN = "dry" ]]; then
DRYRUNCMD="--dry-run"
echo "Dry run initiated..."
fi
rsync -avz $DRYRUNCMD --files-from=<(ssh \
user@remote "find path/to/data/ \
-mtime -$TIME ! -name *.mkv -type f \
-exec ls $(basename {}) \;") \
user@remote:. .