การ copy ไฟล์ครั้งละมาก ๆ (หลักหมื่น หรือว่าเป็นแสน ๆ ไฟล์) ด้วย rsync ครับ

posts
จากกระทู้ การ copy ไฟล์ครั้งละเยอะ ๆ (100,000 ไฟล์) และได้คุณ homoglobin มาโพสแนะนำเพิ่มเติมเอาไว้บน freemac.net เกี่ยวกับการใช้งานคำสั่ง rsync ผ่าน terminal เพื่อทำการ copy ไฟล์
ผมเลยลองทำตามดู และคิดว่าน่าจะดีถ้าเขียนเป็น how-to เก็บเอาไว้ สำหรับผู้ใช้งานทั่วไป ที่อาจจะไม่คุ้นกับการใช้งานคำสั่งผ่าน terminal ให้เห็นภาพทำตามได้ง่าย ๆ โดยเน้นบนพื้นฐานของผู้ใช้งานทั่วไปแบบบ้าน ๆ เป็นหลักครับ
note : จากการทดสอบสำหรับย้ายไฟล์ 38,000 กว่าไฟล์จาก hd ภายในเครื่องของผมเองไปยัง external hd ที่ต่อผ่าน firewire400 ใช้เวลาประมาณ 4 นาทีตั้งแต่เริ่มกระบวนการจนเสร็จสิ้นครับ ..
วิธีการ copy ไฟล์ผ่านคำสั่ง rsync บน terminal ครับ
ขั้นตอนที่ 1: กำหนดเป้าหมาย และปลายทางที่เราต้องการ
บน finder ให้เปิดเอาไว้ 2 หน้าต่างดังนี้ครับ
- หน้าต่างแรก เปิด folder ต้นทางที่เราต้องการจะ copy ไฟล์ข้างในนั้นทั้งหมดรอเอาไว้
- หน้าต่างที่สอง สร้าง folder ปลายทางที่เราต้องการ
ขั้นตอนที่ 2 : เปิด terminal.app ขึ้นมา โดยจะเรียกจากใน applications folder/ utilities หรือผ่าน spotlight แล้วพิมพ์ terminal ก็ได้ เราจะเห็นหน้าต่างเปล่า ๆ ของ terminal แบบนี้ครับ
ขั้นตอนที่ 3 : พิมพ์คำสั่ง rsync ลงใน terminal
คำสั่ง resync มีรูปแบบการใช้งานคร่าว ๆ ประมาณนี้ครับ
rsync -av [path ของ folder ต้นทาง] [path ของ folder ปลายทาง]
** คำสั่ง rsync, -av, folder ต้นทาง และ folder ปลายทาง มีเว้นวรรคคั่นอยู่นะครับ ...
อย่างในกรณีของผม เป็นแบบนี้
rsync -av /apache2/htdocs/folder ต้นทาง /Volumes/MyBook-Mac/folder ปลายทาง
โดยที่ [path ของ folder ต้นทาง] = /apache2/htdocs/folder ต้นทาง
และ [path ของ folder ปลายทาง]= /Volumes/MyBook-Mac/folder ปลายทาง
ทีนี้ สำหรับผู้ใช้ทั่วไป ที่ไม่ทราบว่าจะพิมพ์ path ของ folder ต้นทางกับ path ของ folder ปลายทางอย่างไรดีบน terminal ให้ทำแบบนี้ครับ
จาก finder ที่เราเปิดทิ้งเอาไว้ ให้ลองลาก folder ที่เราต้องการลงในบรรทัดของ terminal ดู เราจะเห็นว่า เค้าจะขึ้น path ของ folder นั้น ๆ ให้ แบบนี้ครับ
ที่เราต้องทำคือ พิมพ์คำสั่งว่า rsync -av ทิ้งเอาไว้บน terminal แล้วลาก folder ต้นทาง และ ปลายทาง จากบน finder มาลงใน terminal เพื่อให้คำสั่งสมบูรณ์
เมื่อได้ path ต้นทาง กับปลายทางลงในคำสั่ง rsync โดยสมบูรณ์แล้ว ให้กด enter ถ้าไม่มีอะไรผิดพลาด เราจะเห็นว่าเขาเริ่มทำงานย้ายไฟล์ให้เราครับ
โดยไฟล์ที่มีปัญหา จะถูกแสดงขึ้นมาก่อนพร้อมด้วยระบุว่าทำไมถึงย้ายไม่ได้ให้เราทราบด้วย หลังจากนั้นก็จะเริ่มการย้ายไฟล์ตามปรกติทั่วไป เราจะเห็นหน้าต่าง terminal แสดงไฟล์ที่ถูกย้ายไล่ลงมาเรื่อย ๆ และเมื่อเสร็จกระบวนการแล้ว เขาจะแจ้งเรามาแบบนี้ครับ
หมดแล้วครับ ลองนำไปใช้งานกันดู หวังว่าจะเป็นประโยชน์บ้างไม่มากก็น้อยนะครับ =)
- Printer-friendly version
- Login to post comments
How-Tos
- การติดตั้ง OS X Leopard (10.5)
- ใช้งาน OS X เบื้องต้น
- Software Update
- Desktop พื้นที่ทำงานของเรา
- จัด Icon บน Desktop
- Bluetooth
- Burn - การเขียนแผ่น
- Networking
- Spotlight
- การ Install & Uninstall โปรแกรมบน OS X
- การจัดการไฟล์แบบฐานข้อมูล ในโปรแกรมต่าง ๆ บน OS X
- การบำรุงรักษา OS X ให้มีสุขภาพดีอยู่เสมอ
- การแบ่ง partition
- ดูรายละเอียดไฟล์
- ปรับแต่ง OS X
- เกี่ยวกับ Shortcut
- เกี่ยวกับการ Sleep
- OS X Tips
- Thai-Eng Dictionary บน OS X #2
- Thai-Eng Ditionary บน OS X
- การ copy ไฟล์ครั้งละมาก ๆ (หลักหมื่น หรือว่าเป็นแสน ๆ ไฟล์) ด้วย rsync ครับ
- การตั้งชื่อไฟล์ : เรื่องง่าย ๆ ที่หลายคนมองข้าม
- มือใหม่ต้องเจอ : Capture หน้าจอยังไงเนี่ย???
- มือใหม่ต้องเจอ : กด Caps Lock เร็วฉันใด เปลี่ยนภาษาเร็วฉันนั้น
- มือใหม่ต้องเจอ : เสียงหลอนๆ ตอนคลิกๆ
- วิธีจัดการกับการเปิดหลายหน้าต่าง
- วิธีย้าย Menu bar icon
- OS X Bundle Apps
- การติดตั้ง Windows บน OS X (Boot Camp)
Comments
posts
แล้วก๊อปผ่านเครื่องในวง lan
แล้วก๊อปผ่านเครื่องในวง lan ได้มั้ยครับ
posts
ผมไม่มีเครื่องให้ลองครับ
แต่ผมเดาว่าน่าจะได้ตราบใดที่เราทราบ path ปลายทาง หรือไม่ก็ ip address ของเครื่องปลายทางครับ
posts
ขอบคุณครับ ใช้ได้ครับ
ขอบคุณครับ ใช้ได้ครับ พอดีนึกได้ว่าทำไมไม่ลองเอง
posts
รับทราบ
posts
ผมก๊อปไฟล์ลงในแฟลตไดร์ไม่ได้ค
ผมก๊อปไฟล์ลงในแฟลตไดร์ไม่ได้คับ คลิกขวาแล้วมันให้ถอดแฟลตไดร์อย่างเดียว ทำไงดีคับ ???
posts
format ให้เป็น fat32 หรือ
format ให้เป็น fat32 หรือ exfat ครับ