ไม่ว่าจะเป็นผู้ดูแลระบบหรือผู้ใช้ทั่วไป คุณมักจะต้องสร้างการสำรองข้อมูลไฟล์ของคุณเป็นประจำหรือซิงค์ระหว่างหลายระบบ หากงานนี้จำเป็นต้องเขียนทับไฟล์ทั้งหมดในแต่ละครั้ง จะใช้เวลานานและน่าเบื่อหน่ายสำหรับคุณ นี่คือจุดที่เครื่องมือ Linux Rsync ไปยังเซิร์ฟเวอร์ระยะไกลมาช่วยเหลือคุณ คู่มือนี้จะทำให้คุณคุ้นเคยกับคำสั่ง Rsync ที่มีประโยชน์ที่สุด ซึ่งทำให้คุณสามารถใช้คุณสมบัติที่รวดเร็วและปลอดภัยได้
ยูทิลิตี้ Rsync คืออะไร?
การซิงค์ระยะไกล (Rsync) เป็นคำสั่ง Linux/Unix ที่รู้จักกันดีซึ่งคุณสามารถใช้สำหรับการคัดลอกและซิงโครไนซ์ไฟล์และไดเร็กทอรีผ่านการเข้าถึงระยะไกลหรือภายในเครื่อง การใช้คำสั่ง Rsync ช่วยให้คุณสามารถทำงานต่างๆ ที่เกี่ยวข้องกับข้อมูลได้ เช่น การซิงโครไนซ์ การคัดลอก และการสำรองข้อมูล นอกจากนี้ คุณยังสามารถจำลองระบบ Linux ของคุณไปยังระบบอื่นได้
แนวคิดหลักเบื้องหลังการใช้ Rsync ไปยังเซิร์ฟเวอร์ระยะไกลคือการใช้ประโยชน์จากการถ่ายโอนไฟล์ที่รวดเร็ว ในการแปลงข้อมูลระหว่างสองแหล่ง จะพิจารณาเฉพาะความแตกต่างระหว่างแหล่งข้อมูลเหล่านั้นเท่านั้น กล่าวอีกนัยหนึ่ง การใช้คำสั่ง Rsync จะช่วยคุณหลีกเลี่ยงการเสียเวลาในการถ่ายโอนข้อมูลแบบปกปิด เนื่องจากเป็นเพียงการพิจารณาความแตกต่างระหว่างระบบ Linux ทั้งสองระบบ
เหตุใดจึงต้องใช้ Rsync?
ดังที่คุณอาจทราบแล้วว่า มีเครื่องมือสำรองข้อมูลมากมายให้เลือกใช้ คำถามคือ อะไรที่ทำให้เครื่องมือ Rsync มีเอกลักษณ์เฉพาะตัวเมื่อเปรียบเทียบกับยูทิลิตี้หรือคำสั่งอื่นๆ
ตัวอย่างเช่นคุณสามารถใช้ โปรโตคอลการถ่ายโอนไฟล์ (FTP) เพื่อให้มีสำเนาเว็บไซต์ของคุณหรือ SCP (โปรโตคอลการคัดลอกที่ปลอดภัย) สำหรับงานนี้ อย่างไรก็ตามทั้งสองอย่างนี้ก็มีข้อเสียเช่นกัน FTP ไม่มีการเข้ารหัสข้อมูลซึ่งไม่ใช่สิ่งที่เราหวังไว้ และแม้ว่า SCP จะไม่มีปัญหาการถ่ายโอนที่ไม่ได้เข้ารหัสเช่น FTP แต่ก็ยังต้องใช้เวลาในการถ่ายโอนนานกว่าเนื่องจากสร้างช่องทางในการดำเนินการดังกล่าว
ดังนั้น เพื่อเป็นอีกทางเลือกหนึ่งในการแก้ปัญหาเหล่านี้ เราสามารถใช้ Rsync ไปยังเซิร์ฟเวอร์ระยะไกลด้วยการเข้ารหัสแบบใช้คีย์ (เรียกง่ายๆ ว่า Rsync SSH หรือ Rsync บน SSH) ซึ่งป้องกันการส่งข้อมูลซ้ำซ้อนและใช้คีย์ SSH คุณควรทราบด้วยว่า Rsync ใช้การบีบอัดและคลายการบีบอัดสำหรับการรับและส่งข้อมูล ส่งผลให้มีการใช้แบนด์วิดท์น้อยลง
จะติดตั้ง Rsync ได้อย่างไร?
คุณอาจติดตั้ง Rsync ไว้ในระบบของคุณแล้ว อย่างไรก็ตาม มาดูรายละเอียดกันดีกว่า ก่อนที่จะดำเนินการดังกล่าว โปรดทราบว่าต้องติดตั้ง SSH ในระบบต้นทางและปลายทางแล้ว เนื่องจากเราต้องการใช้ Rsync บน SSH
ขั้นตอนที่ 1: ตรวจสอบเวอร์ชัน SSH
คุณสามารถตรวจสอบเวอร์ชันของ SSH ได้โดยใช้คำสั่งต่อไปนี้:
ssh -V
หากต้องการ Rsync ไปยังเซิร์ฟเวอร์ระยะไกล คุณจะต้องมีเซิร์ฟเวอร์ภายในเครื่อง หรือที่เรียกว่าแหล่งที่มา และเซิร์ฟเวอร์ระยะไกล คุณควรตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ภายในนั้นมีสิทธิ์ระดับผู้ดูแลระบบ (sudo)
ขั้นตอนที่ 2: การติดตั้ง Rsync Linux
คำสั่งต่อไปนี้จะช่วยให้คุณสามารถติดตั้ง Rsync บน Ubuntu, Linux Mint และ Debian:
sudo apt install rsync -y
หากคุณใช้ Linux อื่นๆ เช่น Fedora, CentOS, AlmaLinux และ Red Hat ให้พิมพ์คำสั่งต่อไปนี้เพื่อติดตั้ง Rsync ไปยังบริการเซิร์ฟเวอร์ระยะไกลบนระบบของคุณ:
sudo dnf install rsync
หมายเหตุ: apt เป็นเครื่องมือติดตั้งแพ็คเกจที่มีประโยชน์ซึ่งใช้ในการแจกแจงแบบเดเบียน
ขั้นตอนที่ 3: การเริ่มต้น Rsync
ตอนนี้คุณต้องเริ่มต้นแล้วเปิดใช้งาน Rsync เพื่อเริ่มใช้งานผ่านคำสั่งต่อไปนี้:
sudo systemctl start rsync
sudo systemctl enable rsync
ขั้นตอนที่ 4: ตรวจสอบการติดตั้ง Rsync
ป้อนคำสั่งต่อไปนี้เพื่อให้แน่ใจว่าคุณได้ติดตั้ง Rsync อย่างถูกต้องหรือไม่ และเพื่อตรวจสอบเวอร์ชันที่คุณใช้บนระบบ Linux ของคุณ:
rsync --version
ในส่วนต่อไปนี้ เราจะพูดถึงวิธีใช้ความสามารถของเครื่องมือนี้ในการสำรองข้อมูลผ่านการตรวจสอบสิทธิ์แบบใช้คีย์
จะสร้างการสำรองข้อมูลโดยใช้ Rsync ผ่าน SSH ได้อย่างไร
การสำรองข้อมูลส่วนเพิ่มเป็นหนึ่งในกรณีการใช้งาน Rsync บน SSH โปรดใส่ใจกับคำสั่งต่อไปนี้เพื่อทำความเข้าใจวิธีการทำงาน:
rsync -av -e ssh /sourceDir/ user@remote:/path/to/destinationDir
การรันคำสั่งด้านบนจะช่วยให้คุณซิงค์ได้ แหล่งที่มาDir และ จุดหมายปลายทางผบ. คำสั่งนี้รวมถึงตัวเลือกอื่นๆ ที่คุณควรทำความคุ้นเคย เช่น -a (เก็บถาวร) และ -v (คำกริยา). โปรดทราบว่า -e ssh ตัวเลือกต้องการให้การเชื่อมต่อ Rsync ผ่านโปรโตคอล SSH
หากคุณต้องการ การเชื่อมต่อ SSH ที่จะได้รับการยอมรับผ่านพอร์ตอื่นที่ไม่ใช่ค่าเริ่มต้น (พอร์ต 22) คุณต้องระบุหมายเลขพอร์ตหลังจากนั้น -e ssh ดูคำสั่งต่อไปนี้เพื่อทำความเข้าใจวิธีการทำงาน
rsync -av -e ssh 1998 sourceDir/ user@remote:/path/to/destinationDir
ในคำสั่งข้างต้น เราถือว่าเราต้องการใช้ 1998 เป็นพอร์ต SSH แทนที่จะเป็น 22
Rsync ไปยังเซิร์ฟเวอร์ระยะไกลผ่าน SSH มีตัวเลือกอื่น ๆ ที่ค่อนข้างมีประโยชน์ เช่น การใช้ –บางส่วน ตัวเลือกช่วยให้คุณสามารถดำเนินการถ่ายโอนบางส่วนก่อนหน้านี้ต่อไปได้ในกรณีที่เกิดปัญหาเช่นการหยุดชะงักของ Rsync คุณยังสามารถทราบความคืบหน้าในการถ่ายโอนไฟล์ปัจจุบันผ่านทาง -ความคืบหน้า ตัวเลือก. นอกจากนี้ Linux Rsync ไปยังยูทิลิตี้เซิร์ฟเวอร์ระยะไกลยังช่วยให้คุณใช้คุณสมบัติทั้งสองนี้พร้อมกันได้ หากต้องการทำเช่นนั้น คุณสามารถใช้ไฟล์ -p ตั้งค่าสถานะในบรรทัดคำสั่ง
rsync -avP -e ssh /sourceDir/ user@remote:/path/to/destinationDir
Rsync ไปยังเซิร์ฟเวอร์ระยะไกลด้วยคำสั่งคีย์ช่วยให้คุณสามารถบีบอัดข้อมูลก่อนที่จะถ่ายโอนไปยังปลายทาง แม้ว่าจะใช้ CPU ของคุณในการบีบอัดข้อมูล แต่ก็ยังมีประโยชน์อยู่มาก เนื่องจากทำให้การถ่ายโอนไฟล์เร็วขึ้นและต้องใช้แบนด์วิธน้อยลง
คุณสามารถใช้คำสั่ง Rsync เพื่อคัดลอกไฟล์และไดเร็กทอรี ทั้งระยะไกลหรือภายในเครื่อง ข้อได้เปรียบหลักของ Rsync คือมันขึ้นอยู่กับ อัลกอริธึมการถ่ายโอนเดลต้าซึ่งป้องกันการคัดลอกข้อมูลที่ซ้ำกันจากต้นทางไปยังปลายทาง ตามที่กล่าวไว้ก่อนหน้านี้ คุณลักษณะของ Rsync ไปยังยูทิลิตี้เซิร์ฟเวอร์ระยะไกลนี้ช่วยคุณได้หากคุณต้องการจัดการการสำรองข้อมูลรายวันและการมิเรอร์ระบบ ด้วยเหตุนี้ เราจึงลองใช้คำสั่ง Rsync สำหรับกรณีการใช้งานภายในเครื่อง
วิธีใช้ Rsync สำหรับการซิงค์ในเครื่อง
ก่อนที่เราจะเจาะลึกเรื่องการซิงค์ในเครื่องและวิธีใช้คำสั่ง Rsync คุณควรทราบโครงสร้างทั่วไปของ Rsync ในเครื่องซึ่งแสดงไว้ด้านล่าง:
rsync [options] [Source] [Destination]
การคัดลอกไฟล์ในเครื่อง
สมมติว่าเราต้องการซิงค์หรือคัดลอกไฟล์จากไดเร็กทอรีเดสก์ท็อป (เรียกว่า Cloudzy) ถึง /home/สาธารณะ โฟลเดอร์; นี่คือสิ่งที่คุณต้องป้อน:
rsync -zvh /desktop/Cloudzy/myfile.pdf /home/Public
คำสั่ง Rsync ข้างต้นมีสามตัวเลือกดังนี้ -zvh; โดยใช้ -zคุณจะมีการบีบอัดไฟล์ของคุณระหว่างการถ่ายโอน ตัวเลือกวี ย่อมาจากเอาต์พุตแบบละเอียดและ ตัวเลือกชั่วโมง คือสิ่งที่ช่วยให้เราสามารถอ่านผลลัพธ์ในฐานะมนุษย์ หรือที่เรียกว่าการแสดงผลที่มนุษย์สามารถอ่านได้
การคัดลอกไดเร็กทอรีในเครื่อง
หากเราต้องการคัดลอกไดเร็กทอรีเดสก์ท็อป (เรียกว่า Cloudzy) ถึง /home/สาธารณะ โฟลเดอร์; คุณต้องพิมพ์คำสั่งด้านล่าง:
rsync -zavh /desktop/Cloudzy/myfile.pdf /home/Public
ที่ -a ตัวเลือกในคำสั่งนี้เก็บถาวรไดเร็กทอรีและไฟล์ขณะซิงโครไนซ์
คุณสามารถตรวจสอบรายการไดเร็กทอรีสำหรับโฟลเดอร์ปลายทางได้อย่างรวดเร็วเพื่อตรวจสอบว่าไดเร็กทอรีถูกคัดลอกหรือไม่ โดยการใช้คำสั่งต่อไปนี้:
ls -ld /home/Public
การซิงค์ไฟล์และไดเร็กทอรีแบบเรียกซ้ำและแบบโลคัล (Rsync แบบเรียกซ้ำ)
จะเกิดอะไรขึ้นถ้ามีไดเร็กทอรีและไฟล์หลายไฟล์อยู่ใน /เดสก์ท็อป/Cloudzyและคุณต้องการคัดลอกซ้ำ ๆ ผ่านคำสั่ง Linux Rsync หรือไม่?
ในกรณีนี้ คุณใช้ -ตัวเลือก เพื่อซิงค์ไฟล์และไดเร็กทอรีในเครื่องของคุณซ้ำ คุณยังสามารถใช้ ตัวเลือกการเก็บถาวร (-a) เนื่องจากมีกรณีการใช้งานอื่นๆ เช่น การคัดลอกแบบเรียกซ้ำ โปรดดูคำสั่งต่อไปนี้เพื่อทำความคุ้นเคยกับคำสั่งแบบเรียกซ้ำ Rsync
rsync -zrvh /desktop/Cloudzy /home/Public
Or
rsync -zrvh /desktop/Cloudzy /home/Public
การคัดลอกไดเร็กทอรีและไฟล์จากระบบภายในเครื่องไปยังระยะไกล
นอกเหนือจากลักษณะเฉพาะของ Linux Rsync ไปจนถึงเซิร์ฟเวอร์ระยะไกล ซึ่งเราอ้างถึงในส่วนก่อนหน้านี้ คำสั่งที่รู้จักกันดีนี้ยังอนุญาตให้ซิงค์ไฟล์และไดเร็กทอรีจากเครื่องโลคัลไปยังระบบระยะไกลได้
สมมติว่าเราต้องการคัดลอกโฟลเดอร์ (/เดสก์ท็อป/Cloudzy/โฟลเดอร์ใหม่) จากเครื่องท้องถิ่นไปยังระบบระยะไกล (กับ 192.168.1.79) ภายใต้ /mycpt; นี่คือตัวอย่างที่แสดงวิธีการทำงาน:
rsync -zarvh /desktop/Cloudzy/newfolder [email protected]:/mycpt
วิธีคัดลอกไดเรกทอรีโดยไม่มีไฟล์โดยใช้ Rsync
ในบางกรณี เราอาจต้องการใช้ Linux Rsync กับความสามารถของเซิร์ฟเวอร์ระยะไกลสำหรับการคัดลอกไดเร็กทอรีที่ไม่มีไฟล์ การซิงค์นี้อาจมาจากเครื่องระยะไกลไปยังระบบโลคัลหรือวิธีอื่น
ในบทความนี้เราได้ใช้ระบบระยะไกลที่ 192.168.1.79. สมมติว่าเรามีมันอยู่ข้างใต้ /mycpt โฟลเดอร์และต้องการคัดลอกไฟล์ /เดสก์ท็อป/Cloudzy ไดเร็กทอรีจากระบบโลคัลโดยไม่รวมไฟล์ โปรดป้อนคำสั่งด้านล่างเพื่อดำเนินการดังกล่าว:
rsync -av -f"+ */" -f"- *" /desktop/Cloudzy [email protected]:/mycpt/
คำสั่ง Rsync ที่มีประโยชน์อื่น ๆ
ที่นี่เราจะพูดถึงคำสั่ง Linux Rsync เพิ่มเติมที่สามารถใช้งานได้จริงสำหรับคุณ
กำหนดขนาดสูงสุดสำหรับการถ่ายโอนไฟล์ใน Rsync
คุณสามารถกำหนดขนาดขีดจำกัดสำหรับการถ่ายโอนไฟล์ได้โดยใช้คำสั่ง Rsync ซึ่งจะมีประโยชน์เมื่อคุณเรียกใช้ Rsync ไปยังเซิร์ฟเวอร์ระยะไกลและเครื่องท้องถิ่นเป็นประจำ ซึ่งแบนด์วิดท์และเวลาเป็นปัจจัยสำคัญที่ต้องพิจารณา โปรดใส่ใจกับคำสั่งต่อไปนี้เพื่อทำความคุ้นเคยกับการตั้งค่าขีดจำกัดขนาดในการถ่ายโอนไฟล์ Rsync:
rsync -avzhe ssh --max-size='100k' /desktop/Cloudzy [email protected]:/home/Public
กำหนดขนาดขั้นต่ำสำหรับการถ่ายโอนไฟล์ใน Rsync
เช่นเดียวกับการตั้งค่าขนาดสูงสุดสำหรับการถ่ายโอนไฟล์ คุณสามารถกำหนดขนาดขั้นต่ำของไฟล์ที่คุณต้องการถ่ายโอนโดย Rsync ไปยังเครื่องมือเซิร์ฟเวอร์ระยะไกลได้ ในคำสั่งด้านล่าง เราจะตั้งค่าขนาดไฟล์ขั้นต่ำเป็น 10k:
rsync -avzhe ssh --min-size='10k' /desktop/Cloudzy [email protected]:/home/Public
ลบไฟล์ออกจากแหล่งที่มาหลังจากการซิงโครไนซ์เสร็จสิ้น
เมื่อคุณใช้คำสั่ง Rsync เสร็จแล้ว คุณอาจไม่จำเป็นต้องมีไฟล์ในระบบต้นทางอีกต่อไป ในกรณีนี้ คุณสามารถใช้คำสั่ง Linux Rsync ดังด้านล่างเพื่อลบไฟล์ออกจากแหล่งที่มา:
rsync --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public
ซิงค์แบบแห้งรัน
หากคุณยังใหม่กับยูทิลิตี้ Linux Rsync และไม่คุ้นเคยกับตัวเลือกต่างๆ ก วิ่งแห้ง เป็นแนวทางที่ถูกต้อง เมื่อคุณใช้ dry run กับ Rsync มันจะไม่แก้ไขไฟล์ แต่จะแสดงผลของคำสั่งให้คุณ หลังจากที่คุณแน่ใจว่าต้องการรันคำสั่งแล้ว คุณสามารถลบไฟล์ – แห้งวิ่ง ตัวเลือกจากนั้นและดำเนินการบนเทอร์มินัล ดูคำสั่งต่อไปนี้เพื่อทราบข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชันการทำงานแบบทดลองเรียกใช้
rsync --dry-run --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public
สรุป: การใช้คำสั่ง Linux Rsync
บทความนี้อธิบายวิธีใช้ความสามารถ Linux Rsync กับเซิร์ฟเวอร์ระยะไกล (และ Rsync ไปยังเซิร์ฟเวอร์ภายในเครื่อง) สำหรับกรณีการใช้งานต่างๆ รวมถึง มิเรอร์ระบบการสร้างการสำรองข้อมูลไฟล์ และการคัดลอกไฟล์และไดเร็กทอรีทั้งภายในและระยะไกลโดยใช้แนวทางที่มีประสิทธิภาพ คำสั่ง Linux ที่รู้จักกันดีนี้ช่วยให้คุณได้รับประโยชน์จากการถ่ายโอนไฟล์ที่รวดเร็ว ในขณะเดียวกันก็ช่วยให้คุณใช้ SSH และการบีบอัดข้อมูลได้
รับ Linux VPS แบบประหยัดหรือพรีเมียมสำหรับการโฮสต์เว็บไซต์หรือเดสก์ท็อประยะไกลของคุณ ในราคาที่ถูกที่สุด VPS ทำงานบน Linux KVM เพื่อประสิทธิภาพที่เพิ่มขึ้น และทำงานบนฮาร์ดแวร์อันทรงพลังพร้อมที่เก็บข้อมูล NVMe SSD เพื่อเพิ่มความเร็ว
อ่านเพิ่มเติมคุณสามารถใช้ประโยชน์สูงสุดจากระบบปฏิบัติการนี้ได้โดยรับ ลินุกซ์ วีพีเอส โซลูชันจาก Cloudzy ช่วยให้คุณได้รับประโยชน์จากแผนโฮสติ้งที่ใช้ KVM เราภูมิใจเสนอบริการ VPS ประสิทธิภาพสูงพร้อมเวลาทำงาน 99.95% ความเสถียร เวลาแฝงที่น้อยที่สุด ศูนย์ข้อมูลทั่วโลก (12 แห่ง) ที่เก็บข้อมูล SSD ที่รวดเร็วเป็นพิเศษ และการสนับสนุนด้านเทคนิคตลอด 24 ชั่วโมงทุกวัน คุณสามารถเริ่มใช้ Linux VPS ของคุณได้ในราคา 4.95 ดอลลาร์สหรัฐฯ และปรับขนาดได้หากคุณต้องการโซลูชันขั้นสูงกว่านี้
คำถามที่พบบ่อย
Rsync ใช้พอร์ต TCP ใด
โดยทั่วไป SSH จะใช้พอร์ต 22 เป็นพอร์ตเริ่มต้น ดังนั้นเมื่อใช้ rsync บน SSH มันจะทำงานบนพอร์ตนี้โดยเฉพาะ ในทางกลับกัน เมื่อใช้ Rsync daemon พอร์ต 873 จะถูกนำมาใช้
Rsync คืออะไร?
Rsync เป็นยูทิลิตี้ Linux ที่สามารถซิงโครไนซ์ไฟล์และไดเร็กทอรีจากระยะไกลหรือในเครื่องได้ การใช้คำสั่ง Rsync ช่วยให้คุณสามารถทำงานต่างๆ ที่เกี่ยวข้องกับข้อมูลได้ เช่น การซิงโครไนซ์ การคัดลอก และการสำรองข้อมูล