Sync ไฟล์กับ Remote Server ง่ายๆ ด้วย Rsync

Sync ไฟล์กับ Remote Server ง่ายๆ ด้วย Rsync image

Sync ไฟล์กับ Remote Server ง่ายๆ ด้วย Rsync

คนที่เคยทำงานร่วมกับ remote server หรือเครื่อง vm (virtual machine) จะรู้ดีว่าในการทำงานกับเครื่อง remote นั้นค่อนข้างที่จะยุ่งยากในการอัปโหลดไฟล์ ขึ้นไปยังเครื่อง server ยิ่งไฟล์จำนวนมากก็มีความซับซ้อนในการทำงานมากขึ้นเช่นกัน โดยเฉพาะเครื่อง server ที่ไม่มี GUI (Graphical user interface) อย่าง linux ที่ในการจะโยกย้าย อัปเดต ดาวน์โหลด ยิ่งในการอัปโหลด และ ดาวน์โหลดไฟล์จำนวนมากยิ่งมีความยุ่งยาก และใช้เวลานาน

 

 

 

สิ่งที่ควรรู้เกี่ยวกับ Sync ไฟล์กับ Remote Server ง่ายๆ ด้วย Rsync

  • Rsync คืออะไร
  • วิธีใช้งานเบื้องต้นจะคล้ายกับ cp ในการ copy ไฟล์ใน local
  • ประโยชน์การใช้งาน Rsync
  • การประยุกต์ใช้งาน

 

 

 

 

Rsync คืออะไร

Rsync เป็นโปรแกรม cli ที่ไว้สำหรับ sync file ระหว่างเครื่อง local และ remote server ผ่านทาง ssh โดยตรง สามารถถ่ายโอนไฟล์ ใน local ด้วยกันได้ หรือ copy ไปยังหลายๆ host ได้พร้อมกัน

 

 

 

วิธีใช้งานเบื่องต้นจะคล้ายกับ cp ในการ copy ไฟล์ใน local

 

 

 

ถ้าใช้การ copy file ระหว่าง /document/A ไป folder /document/B ก็ใช้เป็น  

 

 

 

ถ้าจะ copy file จาก local ขึ้นไปบน remote server 

 

 

 

เช่นเดียวกันก็สามารถดาวน์โหลดไฟล์จาก remote server ลงมา local ได้เช่นเดียวกันโดยใช้

 

 

 

option

ใช้ option -ar ในการ sync file ทั้ง directory

 

 

 

ตามปกติการใช้งาน sync ข้อมูลกับ server จะเป็นการ sync แบบทับไฟล์ที่ชื่อเดียวกัน ก็สามารถใช้ option —backup ในการ backup ไฟล์ข้อมูลที่จะถูกทับไปได้อีกด้วย

 

 

 

ตามปกติ output ของ rsync จะไม่มี progress จะหยุดทำงานก็ต่อเมื่อการทำงานเสร็จสิ้น ถ้าจะให้มี progress การถ่ายโอนไฟล์ก็ไช้ option -p เข้ามาเพิ่มเติม

 

 

 

ใช้ option -av ในการ checksum verify copy เช็ค checksum file ก่อนกว่าเป็นไฟล์เดิมหรือไม่ก่อนทำการ transfer sensitive data

 

 

 

ประโยชน์การใช้งาน Rsync

 

1. ซิงโครไนซ์ไฟล์เฉพาะส่วนที่เปลี่ยนแปลง ช่วยประหยัดเวลาและแบนด์วิธ

  • Rsync ใช้การเปรียบเทียบข้อมูล (Checksum) ระหว่างต้นทางและปลายทาง ทำให้สามารถถ่ายโอนเฉพาะส่วนที่เปลี่ยนแปลงของไฟล์ ช่วยลดเวลาในการถ่ายโอนและประหยัดแบนด์วิธอย่างมาก

 

2. รองรับการถ่ายโอนข้อมูลระหว่าง Local และ Remote ผ่าน SSH

  • Rsync ทำงานผ่านโปรโตคอล SSH (Secure Shell) ซึ่งช่วยรักษาความปลอดภัยของข้อมูลระหว่างการถ่ายโอน ทั้งยังเหมาะสำหรับงานที่ต้องการความปลอดภัยสูง เช่น การสำรองข้อมูลบนเซิร์ฟเวอร์สำคัญ

 

3. สำรองข้อมูลอัตโนมัติด้วยตัวเลือก -backup

  • สามารถสำรองข้อมูลไฟล์ก่อนการเขียนทับ โดยไฟล์ที่ถูกสำรองจะถูกเก็บไว้ในตำแหน่งที่กำหนด ช่วยป้องกันการสูญหายของข้อมูลเดิม

 

4. ตรวจสอบความสมบูรณ์ของไฟล์ด้วย -av

  • ด้วยตัวเลือก -av Rsync จะตรวจสอบความสมบูรณ์ของไฟล์ก่อนถ่ายโอน ทำให้มั่นใจได้ว่าข้อมูลที่ถูกคัดลอกยังคงมีความถูกต้องและครบถ้วน

 

5. ใช้ร่วมกับระบบ Automation เช่น crontab ได้ง่าย

  • Rsync สามารถใช้ร่วมกับ Crontab หรือ Task Scheduler เพื่อกำหนดเวลาซิงโครไนซ์ข้อมูล เช่น การสำรองฐานข้อมูลรายวันหรือการอัปเดตไฟล์รายชั่วโมง

 

6. ถ่ายโอนข้อมูลกับ Cloud Storage เช่น GCP, AWS S3

  • สามารถใช้งานร่วมกับบริการ Cloud เช่น Google Cloud Storage (GCP) และ Amazon S3 เพื่อซิงโครไนซ์หรือสำรองข้อมูลจาก Local ไปยังระบบ Cloud

 

 

 

การประยุกต์ใช้งาน

นอกจากการใช้ rsync ในการอัปโหลดและดาวน์โหลดไฟล์จาก local และ remote server ก็สามารถประยุกต์ใช้งานได้หลากหลาย เช่น

  • ใช้ crontab ในการตั้งเวลา (schedule) และ rsync ในการสำรองข้อมูล (backup) ระหว่าง db server และ back up server

 

  • ใช้ fswatch ในการตรวจสอบการเปลี่ยนแปลงของระบบไฟล์ (file system) ระหว่าง 2 remote server

 

  • ซิงโครไนซ์ข้อมูลกับ cloud storage เช่น GCP Storage หรือ Amazon S3

 

  • รวม (merge) ไดเรกทอรี 2 ไดเรกทอรีเข้าด้วยกัน

 

  • ตรวจสอบไฟล์ในไดเรกทอรีระหว่าง remote ว่ามีการแก้ไขหรือไม่

 

 

 

Rsync เป็นเครื่องมือ CLI อันทรงพลังสำหรับการซิงค์ไฟล์และไดเรกทอรีระหว่างเครื่อง local และ remote server ผ่าน SSH ช่วยให้การถ่ายโอนข้อมูลรวดเร็วและมีประสิทธิภาพ ด้วยตัวเลือกที่ยืดหยุ่น เช่น การสำรองไฟล์ การตรวจสอบความถูกต้อง และการแสดงความคืบหน้า ผู้ใช้สามารถประยุกต์ใช้ Rsync ในการสำรองข้อมูล ตรวจสอบการเปลี่ยนแปลงไฟล์ ซิงค์กับ cloud storage หรือแม้แต่รวมไดเรกทอรีหลาย ๆ แห่งเข้าด้วยกัน เหมาะสำหรับการจัดการไฟล์ที่ต้องการความแม่นยำและความสะดวกในการทำงาน

 

 

 

 

บทความอื่นๆที่น่าสนใจเพิ่มเติม :

TensorFlow vs PyTorch: เลือก Framework ไหนดี?

CI/CD ตัวช่วยให้ Developer ทำงานง่ายขึ้น

Low-code - No-code: ใครๆ ก็เป็นนักพัฒนาได้ เจาะลึกเครื่องมือพัฒนาซอฟต์แวร์ที่ไม่ต้องเขียนโค้ด และผลกระทบต่อตลาดแรงงาน

Agile และ DevOps กับการปรับตัวของธุรกิจในยุค AI-First

UX/UI : บทบาทสำคัญของการพัฒนาธุรกิจ

 

Tag