หมวดหมู่: Unix-like

Linux: scp (Secure Copy Protocol )Linux: scp (Secure Copy Protocol )

การใช้งานคำสั่ง scp เป็นวิธีที่ง่ายและปลอดภัยที่สุดวิธีหนึ่งในการคัดลอกไฟล์หรือโฟลเดอร์ระหว่างเครื่องคอมพิวเตอร์ผ่านระบบเครือข่าย โดยทำงานบนพื้นฐานของโปรโตคอล SSH ทำให้ข้อมูลที่รับส่งมีการเข้ารหัสไว้เสมอ


รูปแบบคำสั่งพื้นฐาน

หัวใจสำคัญของ scp คือการระบุ “ต้นทาง” และ “ปลายทาง” โดยมีรูปแบบดังนี้
scp [ตัวเลือก] [ต้นทาง] [ปลายทาง]


ตัวอย่างการใช้งานที่พบบ่อย


การคัดลอกไฟล์จากเครื่องเรา ไปยัง Server

สมมติว่าคุณต้องการส่งไฟล์ชื่อ document.pdf ไปไว้ที่ Home directory ของ Server
scp document.pdf [email protected]:/home/user/


การคัดลอกไฟล์จาก Server มายังเครื่องเรา

หากต้องการดึงไฟล์ backup.sql จาก Server มาไว้ที่โฟลเดอร์ปัจจุบันในเครื่องเรา
scp [email protected]:/var/www/db/backup.sql .


การคัดลอกทั้งโฟลเดอร์

หากต้องการส่งโฟลเดอร์ชื่อ my_project ไปทั้งโฟลเดอร์ ต้องใช้ Option -r
scp -r my_project/ [email protected]:/home/user/


Option ที่ใช้บ่อยและควรรู้

Optionคำอธิบาย
-rใช้สำหรับคัดลอกทั้ง Directory
-P [port]ระบุหมายเลข Port ของ SSH
-Cบีบอัดข้อมูลระหว่างส่ง ช่วยให้ส่งไฟล์ขนาดใหญ่ได้เร็วขึ้น
-vVerbose mode แสดงรายละเอียดการทำงานอย่างละเอียด
-i [identity_file]ระบุไฟล์ Private Key สำหรับการเข้าสู่ระบบ

ข้อควรระวังและการเตรียมตัว


การตรวจสอบสิทธิ์

ก่อนใช้งาน scp คุณต้องแน่ใจว่า

  1. เครื่องปลายทางมีการติดตั้งและเปิดใช้งาน SSH Server แล้ว
  2. คุณมีสิทธิ์ Read ในไฟล์ต้นทาง และสิทธิ์ Write ในโฟลเดอร์ปลายทาง
  3. หากมีการระบุปลายทางผิดและมีไฟล์ชื่อซ้ำอยู่แล้ว scp จะทำการ เขียนทับ ทันทีโดยไม่แจ้งเตือน

การสำรองข้อมูล

เช่นเดียวกับการจัดการ Server ในส่วนอื่น ๆ ก่อนจะทำการย้ายไฟล์สำคัญหรือแก้ไข Config ของระบบ ควรทำการ Snapshot หรือคัดลอกไฟล์ต้นฉบับเก็บไว้เป็นชื่ออื่นก่อนเสมอ เพื่อป้องกันความผิดพลาดที่อาจเกิดขึ้นระหว่างการส่งข้อมูล


สรุป

คำสั่ง scp เป็นเครื่องมือพื้นฐานที่ทรงพลังสำหรับ Admin และ Developer เพราะไม่ต้องติดตั้งโปรแกรมเสริมเพิ่มเติม เพียงแค่มี SSH ก็สามารถจัดการไฟล์ข้ามเครื่องได้อย่างรวดเร็วและปลอดภัยครับ


อ่านเพิ่มเติม