มันไม่ง่ายเลย
สารบัญ:
เมื่อพูดถึงการถ่ายโอนไฟล์ระหว่างระบบในเครือข่ายผู้ใช้ Linux และ Unix จะมีเครื่องมือมากมายในการกำจัด
โปรโตคอลยอดนิยมสำหรับการถ่ายโอนข้อมูลคือ SSH และ FTP ในขณะที่ FTP เป็นที่นิยมอย่างมากมักจะชอบใช้ SSH เพราะเป็นวิธีที่ปลอดภัยที่สุดในการถ่ายโอนไฟล์ของคุณ
มีเครื่องมือพิเศษสำหรับการถ่ายโอนไฟล์ผ่าน SSH เช่น
scp
และ
sftp
แต่ไม่มีเครื่องมือใดที่มีคุณสมบัติทั้งหมดที่
rsync
มีให้
rsync
สามารถใช้สำหรับการทำมิเรอร์ข้อมูล, การสำรองข้อมูลเพิ่มเติม, คัดลอกไฟล์ระหว่างระบบและอื่น ๆ
ในบทช่วยสอนนี้เราจะอธิบายวิธีการคัดลอกไฟล์ด้วย
rsync
ผ่าน SSH
ความต้องการ
-
ยูทิลิตี้
rsync
จะต้องติดตั้งบนทั้งปลายทางและระบบต้นทาง หากไม่ได้ติดตั้งคุณสามารถติดตั้งได้โดยใช้ตัวจัดการแพคเกจการกระจายของคุณ:Ubuntu และ Debian:
sudo apt install rsync
CentOS และ Fedora:
sudo yum install rsync
การเข้าถึง SSH กับคอมพิวเตอร์ระยะไกล
ผู้ใช้ที่รันคำสั่ง
rsync
และผู้ใช้ SSH ระยะไกลต้องมีสิทธิ์ที่เหมาะสมในการอ่านและเขียนไฟล์
การใช้
rsync
เพื่อถ่ายโอนไฟล์ผ่าน SSH
ด้วย
rsync
คุณสามารถถ่ายโอนไฟล์และไดเรกทอรีผ่าน SSH จากและไปยังเซิร์ฟเวอร์ระยะไกล
ไวยากรณ์ทั่วไปสำหรับการถ่ายโอนไฟล์ด้วย
rsync
มีดังนี้:
Local to Remote: rsync… -e ssh… HOST:DEST Remote to Local: rsync… -e ssh HOST:SRC…
โดยที่
SRC
เป็นไดเรกทอรีต้นทาง
DEST
เป็นไดเรกทอรีปลายทาง
USER
เป็นชื่อผู้ใช้ SSH ระยะไกลและ
HOST
เป็นโฮสต์ SSH ระยะไกลหรือที่อยู่ IP
rsync เวอร์ชันที่ใหม่กว่ามีการกำหนดค่าให้ใช้ SSH เป็นเชลล์ระยะไกลที่เป็นค่าเริ่มต้นดังนั้นคุณสามารถละเว้นตัวเลือก
-e ssh
ตัวอย่างเช่นในการถ่ายโอนไฟล์เดียว
/opt/file.zip
จากระบบโลคัลไปยังไดเร็กทอรี
/var/www/
บนระบบรีโมตด้วย IP
12.12.12.12
คุณต้องรัน:
rsync -a /opt/file.zip [email protected]:/var/www/
ตัวเลือก
-a
หมายถึงโหมดเก็บถาวรซึ่งจะซิงค์ไดเรกทอรีซ้ำถ่ายโอนอุปกรณ์พิเศษและบล็อกรักษาลิงก์สัญลักษณ์เวลาแก้ไขกลุ่มความเป็นเจ้าของและสิทธิ์
หากไฟล์มีอยู่บนเซิร์ฟเวอร์ระยะไกลมันจะถูกเขียนทับ หากคุณต้องการบันทึกไฟล์ภายใต้ชื่ออื่นให้ระบุชื่อใหม่:
rsync -a /opt/file.zip [email protected]:/var/www/file2.zip
ในการถ่ายโอนข้อมูลจากรีโมตไปยังเครื่องโลคัลใช้ตำแหน่งรีโมตเป็นต้นทางและตำแหน่งโลคัลเป็นปลายทาง:
rsync -a [email protected]:/var/www/file.zip /opt/
การถ่ายโอนไดเรกทอรีด้วย
rsync
ผ่าน SSH เหมือนกับการถ่ายโอนไฟล์
สิ่งสำคัญคือต้องทราบว่า
rsync
ให้การรักษาที่แตกต่างกับไดเรกทอรีต้นทางด้วยการต่อท้ายสแลช
/
เมื่อไดเรกทอรีต้นทางมีเครื่องหมายทับต่อท้าย
rsync
จะคัดลอกเฉพาะเนื้อหาของไดเรกทอรีต้นทางไปยังไดเรกทอรีปลายทาง เมื่อตัดเครื่องหมายสแลชต่อท้ายไดเรกทอรีต้นทางจะถูกคัดลอกภายในไดเรกทอรีปลายทาง
ตัวอย่างเช่นการโอนโลคัล
/opt/website/images/
ไดเร็กทอรีไปยังไดเร็กทอรี
/var/www/images/
บนเครื่องรีโมตที่คุณพิมพ์:
rsync -a /home/linuxize/images/ [email protected]:/var/www/images/
ใช้ตัวเลือก
--delete
หากคุณต้องการซิงโครไนซ์ไดเรกทอรีท้องถิ่นและระยะไกล โปรดใช้ความระมัดระวังเมื่อใช้ตัวเลือกนี้เนื่องจากจะเป็นการลบไฟล์ในไดเรกทอรีปลายทางหากไม่มีอยู่ในไดเรกทอรีต้นทาง
rsync -a --delete /home/linuxize/images/ [email protected]:/var/www/images/
หาก SSH บนรีโมตโฮสต์กำลังรับฟังพอร์ตอื่นที่ไม่ใช่
22
ดีฟอลต์ให้ระบุพอร์ตโดยใช้ตัวเลือก
-e
ตัวอย่างเช่นถ้า SSH กำลังฟังพอร์ต
3322
คุณจะใช้:
rsync -a -e "ssh -p 3322" /home/linuxize/images/ [email protected]:/var/www/images/
เมื่อถ่ายโอนข้อมูลจำนวนมากขอแนะนำให้เรียกใช้คำสั่ง
rsync
ภายในเซสชันหน้าจอหรือใช้ตัวเลือก
-P
ซึ่งบอก
rsync
ให้แสดงแถบความคืบหน้าในระหว่างการถ่ายโอนและเก็บไฟล์ที่ถ่ายโอนบางส่วน:
rsync -a -P /home/linuxize/images/ [email protected]:/var/www/images/
ข้อสรุป
เราได้แสดงวิธีใช้
rsync
ผ่าน SSH เพื่อคัดลอกและซิงโครไนซ์ไฟล์และไดเรกทอรี
คุณอาจต้องการอ่านวิธีการแยกไฟล์หรือไดเรกทอรีด้วย
rsync
อย่าลังเลที่จะแสดงความคิดเห็นหากคุณมีคำถามใด ๆ
เทอร์มินัล rsyncChina Mobile Phone Subscribers ผ่าน 600 ล้าน Mark
จำนวนผู้ใช้โทรศัพท์มือถือจีนมีจำนวนเพิ่มขึ้น 600 ล้านในเดือนมิถุนายน
SAP นำเสนอ Unified Interface ผ่าน Apps Suite
SAP จะนำเสนอส่วนติดต่อแบบครบวงจรทั่วทั้ง Business Suite ในช่วง 2-3 ไตรมาสถัดไป
วิธีการเชื่อมต่อกับ mysql ผ่าน ssh tunnel
ในคู่มือนี้เราจะอธิบายวิธีสร้างอุโมงค์ SSH และเชื่อมต่อกับเซิร์ฟเวอร์ MySQL จากไคลเอนต์ระยะไกล