Câu trả lời:
Điều này sẽ giúp bạn tiến hành một cách vững chắc
rsync -RDa0P \
--files-from=<(find sourcedir/./ -mtime -7 -print0) \
. user@B:targetdir/
Điều này sao chép các nút thiết bị, quyền, dấu thời gian. Tôi khá chắc chắn rằng tùy chọn -H sẽ không chính xác với --files-from
rsync -avn --files-from=<(ssh user@A 'find /path/on/A/ -mtime -7 -type f -exec basename {} \;') user@A:/path/on/A/ user@B:targetdir
basename
nghĩa là gì trong lệnh của bạn? Bạn có thể giải thích được không?
Tôi đã viết kịch bản này dựa trên nhận xét của cybertoast để đồng bộ hóa từ máy chủ từ xa sang cục bộ.
Bạn có thể gọi kịch bản với ./script.sh 3
hoặc ./script.sh 3 dry
chạy khô.
#!/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:. .