การใช้งานคำสั่ง scp ( Secure Copy Protocol ) เป็นวิธีที่ง่ายและปลอดภัยที่สุดวิธีหนึ่งในการคัดลอกไฟล์หรือโฟลเดอร์ระหว่างเครื่องคอมพิวเตอร์ผ่านระบบเครือข่าย โดยทำงานบนพื้นฐานของโปรโตคอล SSH ทำให้ข้อมูลที่รับส่งมีการเข้ารหัสไว้เสมอ
รูปแบบคำสั่งพื้นฐาน ( Syntax )
หัวใจสำคัญของ scp คือการระบุ “ต้นทาง” และ “ปลายทาง” โดยมีรูปแบบดังนี้scp [ตัวเลือก] [ต้นทาง] [ปลายทาง]
ตัวอย่างการใช้งานที่พบบ่อย
การคัดลอกไฟล์จากเครื่องเรา ( Local ) ไปยัง Server ( Remote )
สมมติว่าคุณต้องการส่งไฟล์ชื่อ document.pdf ไปไว้ที่ Home directory ของ Serverscp document.pdf [email protected]:/home/user/
การคัดลอกไฟล์จาก Server ( Remote ) มายังเครื่องเรา ( Local )
หากต้องการดึงไฟล์ backup.sql จาก Server มาไว้ที่โฟลเดอร์ปัจจุบันในเครื่องเราscp [email protected]:/var/www/db/backup.sql .
( จุด . ด้านหลังสุดหมายถึงโฟลเดอร์ปัจจุบันที่ตัวคุณเปิด Terminal ค้างไว้อยู่ )
การคัดลอกทั้งโฟลเดอร์ ( Directory )
หากต้องการส่งโฟลเดอร์ชื่อ my_project ไปทั้งโฟลเดอร์ ต้องใช้ Option -r ( Recursive )scp -r my_project/ [email protected]:/home/user/
Option ที่ใช้บ่อยและควรรู้
| Option | คำอธิบาย |
-r | ใช้สำหรับคัดลอกทั้ง Directory ( Recursive ) |
-P [port] | ระบุหมายเลข Port ของ SSH ( กรณี Server ไม่ได้ใช้ Port มาตรฐาน 22 ) |
-C | บีบอัดข้อมูลระหว่างส่ง ( Compression ) ช่วยให้ส่งไฟล์ขนาดใหญ่ได้เร็วขึ้น |
-v | Verbose mode แสดงรายละเอียดการทำงานอย่างละเอียด ( มีประโยชน์เวลาแก้ปัญหาเชื่อมต่อไม่ได้ ) |
-i [identity_file] | ระบุไฟล์ Private Key สำหรับการเข้าสู่ระบบ ( เช่นไฟล์ .pem หรือ .key ) |
ข้อควรระวังและการเตรียมตัว
การตรวจสอบสิทธิ์ ( Permissions )
ก่อนใช้งาน scp คุณต้องแน่ใจว่า
- เครื่องปลายทางมีการติดตั้งและเปิดใช้งาน SSH Server แล้ว
- คุณมีสิทธิ์ Read ในไฟล์ต้นทาง และสิทธิ์ Write ในโฟลเดอร์ปลายทาง
- หากมีการระบุปลายทางผิดและมีไฟล์ชื่อซ้ำอยู่แล้ว
scpจะทำการ เขียนทับ ( Overwrite ) ทันทีโดยไม่แจ้งเตือน
การสำรองข้อมูล ( Backup )
เช่นเดียวกับการจัดการ Server ในส่วนอื่น ๆ ก่อนจะทำการย้ายไฟล์สำคัญหรือแก้ไข Config ของระบบ ( เช่น Nginx ) ควรทำการ Snapshot หรือคัดลอกไฟล์ต้นฉบับเก็บไว้เป็นชื่ออื่นก่อนเสมอ เพื่อป้องกันความผิดพลาดที่อาจเกิดขึ้นระหว่างการส่งข้อมูล
สรุป
คำสั่ง scp เป็นเครื่องมือพื้นฐานที่ทรงพลังสำหรับ Admin และ Developer เพราะไม่ต้องติดตั้งโปรแกรมเสริมเพิ่มเติม เพียงแค่มี SSH ก็สามารถจัดการไฟล์ข้ามเครื่องได้อย่างรวดเร็วและปลอดภัยครับ
อ่านเพิ่มเติม