ไฟล์ rsync ใหม่กว่า 1 สัปดาห์


22

ฉันต้องการเรียกใช้ rsync บนเซิร์ฟเวอร์ A เพื่อคัดลอกไฟล์ทั้งหมดจากเซิร์ฟเวอร์ B เมื่อพวกเขาใหม่กว่า 7 วัน (ค้นหา. -mtime -7)

ฉันไม่ต้องการลบไฟล์ในเซิร์ฟเวอร์ B.

ขอบคุณสำหรับความช่วยเหลือ


b) คุณใช้งาน rsync บ่อยแค่ไหน?

คำตอบ:


27

สิ่งนี้จะช่วยให้คุณดำเนินการอย่างมั่นคง

rsync -RDa0P \
    --files-from=<(find sourcedir/./ -mtime -7 -print0) \
    . user@B:targetdir/

สิ่งนี้จะคัดลอกโหนดอุปกรณ์การอนุญาตการประทับเวลา ฉันค่อนข้างมั่นใจว่าตัวเลือก -H จะไม่ถูกต้องกับ - ไฟล์ - จาก


20
หากต้องการตั้งค่าให้เป็นตัวกรองระยะไกล: 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
cybertoast

ฉันต้องการเพิ่มการแก้ไขสำหรับความคิดเห็นของไซเบอร์โตสต์ บางทีบริบทของเขาแตกต่างจากของฉัน แต่ฉันพยายามแยกไฟล์จากเซิร์ฟเวอร์ระยะไกลให้เป็นไปตามเกณฑ์เวลา ดังนั้นเซิร์ฟเวอร์ A คือปลายทางของฉันและเซิร์ฟเวอร์ B เป็นแหล่งของฉันแล้ว: rsync -avn --files-from = & lt; (ผู้ใช้ ssh @ A 'find / path / on / A / -mtime -7 -type f -exec basename {} \; ') user @ B: / / path / in / server / A ประกาศมีเพียงแหล่งข้อมูลชั้นนำ / สำหรับ - ไฟล์จากดูแลเส้นทางที่เกี่ยวข้องสำหรับคุณ หากคุณมีข้อสงสัยให้ใช้ man rsync และดูหัวข้อ --files-from
einarc

@cybertoast ทำอะไร basename หมายถึงคำสั่งของคุณ? คุณช่วยอธิบายได้มั้ย
Kemat Rochi

@KematRochi - "basename, dirname - ชื่อไฟล์ส่งคืนหรือส่วนไดเรกทอรีของชื่อพา ธ " หวังว่าจะช่วย
cybertoast

5

ฉันเขียนสคริปต์นี้ตามความคิดเห็นของไซเบอร์โตสต์เพื่อซิงค์จากเซิร์ฟเวอร์ระยะไกลไปยังท้องถิ่น

คุณสามารถโทรหาสคริปต์ด้วย ./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:. .
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.