ฉันต้องการเรียกใช้ rsync บนเซิร์ฟเวอร์ A เพื่อคัดลอกไฟล์ทั้งหมดจากเซิร์ฟเวอร์ B เมื่อพวกเขาใหม่กว่า 7 วัน (ค้นหา. -mtime -7)
ฉันไม่ต้องการลบไฟล์ในเซิร์ฟเวอร์ B.
ขอบคุณสำหรับความช่วยเหลือ
b) คุณใช้งาน rsync บ่อยแค่ไหน?
ฉันต้องการเรียกใช้ rsync บนเซิร์ฟเวอร์ A เพื่อคัดลอกไฟล์ทั้งหมดจากเซิร์ฟเวอร์ B เมื่อพวกเขาใหม่กว่า 7 วัน (ค้นหา. -mtime -7)
ฉันไม่ต้องการลบไฟล์ในเซิร์ฟเวอร์ B.
ขอบคุณสำหรับความช่วยเหลือ
คำตอบ:
สิ่งนี้จะช่วยให้คุณดำเนินการอย่างมั่นคง
rsync -RDa0P \
--files-from=<(find sourcedir/./ -mtime -7 -print0) \
. user@B:targetdir/
สิ่งนี้จะคัดลอกโหนดอุปกรณ์การอนุญาตการประทับเวลา ฉันค่อนข้างมั่นใจว่าตัวเลือก -H จะไม่ถูกต้องกับ - ไฟล์ - จาก
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
หมายถึงคำสั่งของคุณ? คุณช่วยอธิบายได้มั้ย
ฉันเขียนสคริปต์นี้ตามความคิดเห็นของไซเบอร์โตสต์เพื่อซิงค์จากเซิร์ฟเวอร์ระยะไกลไปยังท้องถิ่น
คุณสามารถโทรหาสคริปต์ด้วย ./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:. .