0Pricing
Linux Server Deployment & SSH Mastery · บทเรียน

การถ่ายโอนไฟล์อย่างปลอดภัยด้วย SCP, SFTP และ rsync

ย้ายไฟล์ระหว่างเครื่องผ่านช่องทาง SSH ที่เข้ารหัส เปรียบเทียบ scp, sftp และ rsync เรียนรู้ตัวเลือกสำคัญ และเลือกเครื่องมือที่เหมาะกับการคัดลอกครั้งเดียว การถ่ายโอนแบบโต้ตอบ และการซิงค์อย่างมีประสิทธิภาพ

การถ่ายโอนไฟล์อย่างปลอดภัยด้วย SCP, SFTP และ rsync เป็นบทเรียน Linux Server Deployment & SSH Mastery ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Linux Server Deployment & SSH Mastery และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Linux Server Deployment & SSH Mastery มีบทเรียนทั้งหมด 4 บทเรียน

การถ่ายโอนไฟล์ผ่าน SSH

คุณเชี่ยวชาญอุโมงค์ ตัวแทน และการเชื่อมต่อหลายทอดแล้ว พื้นฐาน SSH เดียวกันนี้ยังรองรับการถ่ายโอนไฟล์อย่างปลอดภัย โดยไม่ต้องใช้บริการเพิ่มเติมหรือเปิดพอร์ตเพิ่ม

เครื่องมือสามชนิดทำงานบน SSH ได้แก่ scp สำหรับคัดลอกอย่างรวดเร็ว sftp สำหรับเซสชันแบบโต้ตอบ และ rsync สำหรับการซิงโครไนซ์อย่างมีประสิทธิภาพ

scp: การคัดลอกอย่างง่าย

scp ทำงานเหมือน cp แต่สามารถคัดลอกข้ามเครื่องได้ ฝั่งระยะไกลใช้ไวยากรณ์ user@host:path

คำสั่งนี้จะอัปโหลดไฟล์ในเครื่องไปยังเซิร์ฟเวอร์

scp report.pdf deploy@server:/home/deploy/docs/

scp: การดาวน์โหลดและไดเรกทอรี

สลับลำดับอาร์กิวเมนต์เพื่อดาวน์โหลด เพิ่ม -r เพื่อคัดลอกไดเรกทอรีทั้งหมดแบบวนซ้ำ

scp deploy@server:/var/log/app.log ./
scp -r deploy@server:/etc/myapp ./backup/

scp กับพอร์ตและคีย์แบบกำหนดเอง

หากเซิร์ฟเวอร์ใช้พอร์ตที่ไม่ใช่ค่ามาตรฐาน โปรดทราบว่า scp ใช้ -P ตัวพิมพ์ใหญ่ (ต่างจาก -p ตัวพิมพ์เล็กของ ssh) นอกจากนี้ คุณยังระบุคีย์เฉพาะด้วย -i ได้

scp -P 2222 -i ~/.ssh/deploy_key file.txt deploy@server:/tmp/

sftp: การถ่ายโอนแบบโต้ตอบ

sftp จะเปิดเซสชันแบบโต้ตอบที่คล้ายพรอมต์ FTP แต่เข้ารหัสอย่างสมบูรณ์ คุณสามารถนำทางและถ่ายโอนไฟล์ด้วยคำสั่งที่คุ้นเคย

  • put file — อัปโหลด
  • get file — ดาวน์โหลด
  • ls, cd, pwd — การนำทางฝั่งระยะไกล
  • lcd, lls — การนำทางในเครื่อง
sftp deploy@server
sftp> cd /var/www
sftp> put index.html
sftp> get backup.tar.gz

เหตุผลที่ rsync แตกต่าง

rsync จะถ่ายโอนเฉพาะส่วนของไฟล์ที่เปลี่ยนแปลง เมื่อเรียกใช้ซ้ำจะเร็วกว่า scp อย่างมาก จึงเหมาะสำหรับการสำรองข้อมูลและการนำระบบขึ้นใช้งาน

นอกจากนี้ โดยค่าเริ่มต้นยังทำงานผ่าน SSH เพื่อใช้การเข้ารหัสแบบเดียวกัน

การใช้ rsync เบื้องต้น

ชุดแฟล็กที่ใช้กันทั่วไปคือ -avz:

  • -a — โหมดเก็บถาวร (คงสิทธิ์ เวลา และลิงก์สัญลักษณ์ไว้)
  • -v — แสดงรายละเอียด
  • -z — บีบอัดระหว่างการถ่ายโอน

คำสั่งนี้จะทำให้โฟลเดอร์ในเครื่องมีเนื้อหาตรงกับโฟลเดอร์บนเซิร์ฟเวอร์

rsync -avz ./site/ deploy@server:/var/www/site/

เครื่องหมายทับท้ายพาธมีความสำคัญ

ใน rsync เครื่องหมายทับท้ายพาธของ ต้นทาง จะเปลี่ยนผลลัพธ์:

  • src/ — คัดลอกเนื้อหาของ src ไปไว้ในปลายทาง
  • src — คัดลอกไดเรกทอรี src เองไปไว้ในปลายทาง

หากใช้ผิดจะทำให้เกิดโฟลเดอร์ซ้อนกัน ดังนั้นควรระบุให้รอบคอบ

rsync -avz src/  dest/   # contents of src into dest
rsync -avz src   dest/   # creates dest/src/

การทำสำเนาและการไม่รวมไฟล์

--delete จะทำให้ปลายทางเป็นสำเนาที่ตรงกันทุกประการ โดยลบไฟล์ที่ไม่มีอยู่ในต้นทาง ใช้ --exclude เพื่อข้ามพาธที่ไม่ต้องการ

ใช้ตัวเลือกเหล่านี้ร่วมกับ --dry-run ก่อนเสมอ

rsync -avz --delete --exclude '.git' --dry-run ./ deploy@server:/var/www/

rsync ผ่านการตั้งค่า SSH แบบกำหนดเอง

หากต้องการใช้พอร์ตหรือคีย์ที่ไม่ใช่ค่ามาตรฐาน ให้ส่งคำสั่ง ssh อย่างชัดเจนด้วย -e วิธีนี้ยังทำงานร่วมกับทุกอย่างที่คุณกำหนดไว้ใน ~/.ssh/config ได้ด้วย

rsync -avz -e 'ssh -p 2222 -i ~/.ssh/deploy_key' ./ deploy@server:/var/www/

แนวทางปฏิบัติที่ดี

ถ่ายโอนไฟล์อย่างปลอดภัยและมีประสิทธิภาพ:

  • ใช้ scp สำหรับการคัดลอกครั้งเดียวอย่างรวดเร็ว
  • ใช้ sftp เมื่อต้องการเรียกดูไฟล์แบบโต้ตอบ
  • ใช้ rsync สำหรับการซิงโครไนซ์และการสำรองข้อมูลเป็นประจำ
  • ใช้ --dry-run ก่อน --delete เสมอ

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความรู้เกี่ยวกับการถ่ายโอนที่ปลอดภัยของคุณ

ทบทวน

ขณะนี้คุณสามารถย้ายไฟล์อย่างปลอดภัยผ่าน SSH ได้แล้ว:

  • scp — การคัดลอกอย่างง่าย (-r, -P, -i)
  • sftp — เซสชัน put/get แบบโต้ตอบ
  • rsync — การซิงโครไนซ์เฉพาะส่วนที่เปลี่ยนแปลงอย่างมีประสิทธิภาพด้วย -avz, --delete, --exclude

ทั้งสามเครื่องมือใช้คีย์และการตั้งค่า SSH ที่มีอยู่เดิมของคุณ ทำให้ชุดเครื่องมือ SSH ขั้นสูงของคุณสมบูรณ์

คำถามที่พบบ่อย

บทเรียน “การถ่ายโอนไฟล์อย่างปลอดภัยด้วย SCP, SFTP และ rsync” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การถ่ายโอนไฟล์อย่างปลอดภัยด้วย SCP, SFTP และ rsync” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Linux Server Deployment & SSH Mastery ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Linux Server Deployment & SSH Mastery มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การถ่ายโอนไฟล์อย่างปลอดภัยด้วย SCP, SFTP และ rsync”

ย้ายไฟล์ระหว่างเครื่องผ่านช่องทาง SSH ที่เข้ารหัส เปรียบเทียบ scp, sftp และ rsync เรียนรู้ตัวเลือกสำคัญ และเลือกเครื่องมือที่เหมาะกับการคัดลอกครั้งเดียว การถ่ายโอนแบบโต้ตอบ และการซิงค์อย่างมีประสิทธิ… คุณปฏิบัติ Linux Server Deployment & SSH Mastery ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Linux Server Deployment & SSH Mastery หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Linux Server Deployment & SSH Mastery บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การถ่ายโอนไฟล์อย่างปลอดภัยด้วย SCP, SFTP และ rsync” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Linux Server Deployment & SSH Mastery นี้ได้ไหม

ได้ บทเรียน Linux Server Deployment & SSH Mastery ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การส่งต่อพอร์ต SSH (ภายในเครื่อง/ระยะไกล)
  2. อุโมงค์ SSH และพร็อกซี SOCKS
  3. ตัวแทน SSH และการเชื่อมต่อหลายทอด
  4. การถ่ายโอนไฟล์อย่างปลอดภัยด้วย SCP, SFTP และ rsync
← กลับไปที่ Linux Server Deployment & SSH Mastery