ป้ายกำกับ: ตัวเลือก

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

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


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

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


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


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

สมมติว่าคุณต้องการส่งไฟล์ชื่อ document.pdf ไปไว้ที่ Home directory ของ Server
scp 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 ) ช่วยให้ส่งไฟล์ขนาดใหญ่ได้เร็วขึ้น
-vVerbose mode แสดงรายละเอียดการทำงานอย่างละเอียด ( มีประโยชน์เวลาแก้ปัญหาเชื่อมต่อไม่ได้ )
-i [identity_file]ระบุไฟล์ Private Key สำหรับการเข้าสู่ระบบ ( เช่นไฟล์ .pem หรือ .key )

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


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

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

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

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

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


สรุป

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


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