ขณะนี้ฉันเพียง RSync-ing Directories
ดังต่อไปนี้:
* * * * * rsync -avz /var/www/public_html/images root@<remote-ip>:/var/www/public_html
แล้วฉันจะทำอย่างไรrsync
ไฟล์เดียวเช่น/var/www/public_html/.htaccess
?
ขณะนี้ฉันเพียง RSync-ing Directories
ดังต่อไปนี้:
* * * * * rsync -avz /var/www/public_html/images root@<remote-ip>:/var/www/public_html
แล้วฉันจะทำอย่างไรrsync
ไฟล์เดียวเช่น/var/www/public_html/.htaccess
?
คำตอบ:
คุณทำเช่นเดียวกับที่คุณทำกับไดเร็กทอรี แต่คุณระบุเส้นทางแบบเต็มไปยังชื่อไฟล์เป็นแหล่งที่มา ในตัวอย่างของคุณ:
rsync -avz --progress /var/www/public_html/.htaccess root@<remote-ip>:/var/www/public_html/
ตามที่ระบุไว้ในความคิดเห็นที่: ตั้งแต่-a
มีrecurseหนึ่งพิมพ์ผิดเล็ก ๆ น้อย ๆ สามารถทำให้มันเตะออกโอนต้นไม้ไดเรกทอรีเต็มรูปแบบเพื่อให้หลักฐานโง่วิธีการอาจจะมากขึ้นในการใช้งานเพียงหรือแทนที่ด้วย-vz
-lptgoD
ไวยากรณ์พื้นฐาน
rsync options source destination
ตัวอย่าง
rsync -az /var/www/public_html/filename root@<remote-ip>:/var/www/public_html
คำตอบของ Michael Place ใช้งานได้ดีถ้าเทียบกับไดเรกทอรีรากสำหรับทั้งซอร์สและเป้าหมายไดเร็กทอรีทั้งหมดในพา ธ ของไฟล์มีอยู่แล้ว
แต่ถ้าคุณต้องการซิงค์ไฟล์กับเส้นทางต้นทางนี้:
/ source-root / a / b / ไฟล์
ไปยังไฟล์ที่มีเส้นทางเป้าหมายต่อไปนี้:
/ target-root / a / b / ไฟล์
และไดเรกทอรีaและbไม่มีอยู่?
คุณต้องรันคำสั่ง rsync ดังต่อไปนี้:
rsync -r --include="/a/" --include="/a/b/" --include="/a/b/file" --exclude="*" [source] [target]
จนถึงปัจจุบันคำตอบสองข้อไม่ถูกต้องนักพวกเขาจะได้รับมากกว่าหนึ่งไฟล์และอีกไฟล์ไม่ง่ายอย่างที่คิดนี่คือคำตอบ IMO ที่ง่ายกว่า
ต่อไปนี้ได้รับไฟล์เดียว แต่คุณต้องสร้างไดเร็กทอรีปลายทางด้วย mkdir นี่อาจเป็นตัวเลือกที่เร็วที่สุด:
mkdir -p ./local/path/to/file
rsync user@remote:/remote/path/to/file/ -zarv --include "filename" --exclude "*" ./local/path/to/file/
หากมีไฟล์ใน / remote / path เพียงอินสแตนซ์เดียว rsync สามารถสร้างไดเร็กทอรีให้คุณได้หากคุณทำสิ่งต่อไปนี้ อาจต้องใช้เวลามากกว่านี้เล็กน้อยเนื่องจากค้นหาไดเรกทอรีเพิ่มเติม นอกจากนี้จะสร้างไดเร็กทอรีว่างสำหรับไดเร็กทอรีใน / remote / path ที่ไม่ได้อยู่ใน. / local
cd ./local
rsync user@remote:/remote/path -zarv --include "*/" --include "filename" --exclude "*" .
โปรดจำไว้ว่าลำดับของ - รวมและ - ไม่รวมมีความสำคัญ