วิธีการ rsync ผ่านเกตเวย์ ssh?


3

ฉันต้องการซิงค์ไฟล์ในเครื่องของฉันด้วยการสำรองข้อมูลซึ่งฉันมีบนเซิร์ฟเวอร์ซึ่งอนุญาตให้เข้าถึงจากที่ฉันอยู่ตอนนี้ผ่านเกตเวย์เท่านั้น ดังนั้นฉันจึงมาพร้อมกับสิ่งต่อไปนี้

rsync -avz -r --stats --progress -e "ssh gateway.dot.com ssh server.dot.com:/home/myname/documents/" /home/myname/documents 

และมีการสื่อสารบางอย่างเกิดขึ้นเมื่อไฟล์ทั้งหมดอยู่ในรายการ แต่ในตอนท้ายสรุปพบว่าจริงๆแล้วไม่มีไฟล์ trasfer เลย

Number of files: 270889
Number of files transferred: 0
Total file size: 70343212868 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 7596005
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 7613770
Total bytes received: 17764

sent 7613770 bytes  received 17764 bytes  50707.87 bytes/sec
total size is 70343212868  speedup is 9217.44

ไอเดีย?


บางทีไฟล์ทั้งหมดซิงค์กันอยู่แล้วและไม่จำเป็นต้องโอนไฟล์ ???
crayzeewulf

ในความเป็นจริงพวกเขาจะไม่ได้. ดูเหมือนว่าจะมี แต่การเปลี่ยนแปลงหลายร้อยรายการและไฟล์ที่สร้างขึ้นใหม่หลายรายการในโฟลเดอร์และโฟลเดอร์ย่อยเหล่านี้
ไจล์โมเลกุลคลาส์ยักษ์

เพื่ออธิบายอย่างชัดเจน - ไฟล์ที่ใหม่กว่านั้นอยู่บนเซิร์ฟเวอร์และฉันต้องการเอามันไปไว้ในเครื่องของฉัน
ไจล์โมเลกุลยักษ์เคลาส์

ขอบคุณมากสำหรับผู้ใช้ crayzeewulf: คำตอบคือ rsync -avz -r --stats --progress -e "ssh gateway.dot.com ssh" server.dot.com:/home/myname/documents/ / home / myname / เอกสาร
ไจล์โมเลกุลคลาส์ยักษ์

คำตอบ:


1
  1. rsyncคำสั่งไม่ควรเป็นเช่นนั้นrsync ... -e "ssh the.gateway ssh" /local/dir/ the.remote.server:/remote/dir/?
  2. ข้อความspeedup is 9217.44แสดงให้เห็นว่าการถ่ายโอนเป็น9217ครั้งที่ดีที่สุดที่จะบอกว่าไฟล์ระหว่างทั้งสองโฮสต์เกือบจะ (ถ้ายังไม่ได้) ซิงค์

UPDATE:

# 2 ไม่ถูกต้อง ดูคำตอบของ crayzeewulfสำหรับคำอธิบายเพิ่มเติม ค่าการเร่งความเร็วทำให้ฉันเข้าใจผิดว่ามันทำงานได้


ขอบคุณสำหรับคำตอบและความคิดเห็น! # 2: ไฟล์ไม่ได้ซิงค์มีหลายร้อยไฟล์ที่ถูกเปลี่ยนแปลงและบางส่วนถูกเพิ่มเข้ามา # 1: ในกรณีนี้ฉันได้รับ "bash: the.remote.server: ไม่พบคำสั่ง ... "
Giant Molecular Klaus

@clarkw คุณถูกต้องตั้งแต่แรก ดูคำตอบของฉัน
crayzeewulf

โอ้ใช่ฉันเห็นด้วยตอนนี้ ขออภัยสำหรับความสับสนและขอบคุณมากสำหรับความช่วยเหลือของคุณ!
ไจล์โมเลกุลคลาส์ยักษ์

1
@crayzeewulf: ขอบคุณ ค่าความเร็วเพิ่มทำให้เข้าใจผิดฉัน อัปเดตคำตอบของฉันเพื่อไม่ให้ผู้คนสับสนมากขึ้น :)
pynexj

7

ฉันคิดว่ารายการ # 1 ในคำตอบของ clarkwถูกต้อง หากคุณใช้...-e "ssh gateway.dot.com ssh server.dot.com:/home/myname/documents/"คำสั่ง rsync ที่เกี่ยวข้องจะมีไดเรกทอรีต้นทาง แต่ไม่มีไดเรกทอรีปลายทาง ในกรณีนี้ตามคู่มือ rsync:

Usages with just one SRC arg and no DEST arg will list the source 
files instead of copying.

นี่คือสิ่งที่เกิดขึ้น คุณสามารถตรวจสอบสิ่งนี้ได้โดยระบุขยะเป็น-eอาร์กิวเมนต์ ตัวอย่างเช่น:

rsync -avz --stats -e 'suq maballs' /tmp

คำสั่งนี้จะทำงานได้ดี มันจะแสดงรายการทุกอย่างภายใต้/tmpและแสดงสถิติที่ดีในตอนท้าย:

Number of files: 28
Number of files transferred: 0
Total file size: 182 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 955
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 998
Total bytes received: 26

sent 998 bytes  received 26 bytes  2048.00 bytes/sec
total size is 182  speedup is 0.18

โปรดสังเกตว่าไม่มีการถ่ายโอนไฟล์ที่นี่เช่นเดียวกับในตัวอย่างของคุณ คุณต้องแก้ไขคำสั่งดั้งเดิมของคุณ:

rsync -avz -r --stats --progress \
    -e "ssh gateway.dot.com ssh server.dot.com:/home/myname/documents/" \
    /home/myname/documents 

ไปที่:

rsync -avz -r --stats --progress \
    -e "ssh gateway.dot.com ssh" \
    server.dot.com:/home/myname/documents/ \
    /home/myname/documents  

แน่นอนแทนที่gateway.dot.comและserver.dot.comด้วยชื่อโฮสต์ที่เหมาะสม


ว้าวขอบคุณ! มันใช้งานได้ดี :) ฉันจะไม่ได้รับสิทธินั้นโดยปราศจากความช่วยเหลือ เช่นเดียวกับคำพูดมีหนึ่ง "มากเกินไปในคำสั่งแก้ปัญหาของคุณ
ไจแอนต์โมเลกุล Klaus

ดีใจที่เห็นว่ามันใช้งานได้ @clarkw มันถูกต้องในครั้งแรก นอกจากนี้ขอขอบคุณสำหรับการรายงานความผิดพลาดของฉัน ฉันได้แก้ไขแล้ว โปรดยอมรับคำตอบหากคุณพอใจ
crayzeewulf
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.