−25%

Windows รายปี ถึง 31 ต.ค. ดูแพ็กเกจ

EQVPS

วิธีโอนไฟล์ไปยัง VPS: scp, rsync และ SFTP

คัดลอกไฟล์ไปและกลับจากเซิร์ฟเวอร์ด้วย scp ซิงก์โฟลเดอร์ใหญ่ด้วย rsync ที่ทำต่อได้ หรือใช้ไคลเอนต์ SFTP รวมถึงบน NAT ที่มีพอร์ต SSH ของตัวเอง

ไม่ช้าก็เร็ว ไฟล์ต้องขึ้นไปอยู่บนเซิร์ฟเวอร์: ผลการ build ของเว็บ ไฟล์ dump ฐานข้อมูล หรือการตั้งค่าที่คุณเขียนในเครื่อง คุณไม่ต้องมีเซิร์ฟเวอร์ FTP สำหรับเรื่องนี้ เพราะ SSH ให้เครื่องมือดี ๆ มาแล้วสามตัว ตัวอย่างทั้งหมดใช้ที่อยู่สำหรับเอกสาร ให้เปลี่ยนเป็นที่อยู่ของเซิร์ฟเวอร์คุณ

รู้ข้อมูลการเชื่อมต่อของคุณ

scp: คัดลอกไฟล์หรือโฟลเดอร์

อัปโหลดไฟล์:

scp backup.sql root@203.0.113.10:/root/

ดาวน์โหลดไฟล์:

scp root@203.0.113.10:/var/log/nginx/access.log .

ทั้งโฟลเดอร์:

scp -r ./site root@203.0.113.10:/var/www/

บนแพ็กเกจ NAT ให้เพิ่มพอร์ตด้วย -P ตัวใหญ่:

scp -P 20123 backup.sql root@your-nat-host:/root/

rsync: เครื่องมือที่เหมาะกับโฟลเดอร์

rsync ส่งเฉพาะส่วนต่าง แสดงความคืบหน้า และทำต่อได้หากการเชื่อมต่อหลุด ต้องติดตั้งไว้ทั้งสองฝั่ง (apt install -y rsync)

rsync -avzP ./site/ root@203.0.113.10:/var/www/site/

กับพอร์ต SSH ที่กำหนดเอง:

rsync -avzP -e "ssh -p 20123" ./site/ root@your-nat-host:/var/www/site/

หากต้องการให้ปลายทางเหมือนต้นทางทุกประการ (ลบไฟล์ที่คุณลบในเครื่องแล้ว) ให้เพิ่ม --delete แต่ตรวจดูก่อนว่ามันจะทำอะไร:

rsync -avzP --delete --dry-run ./site/ root@203.0.113.10:/var/www/site/

ระวังเครื่องหมายทับท้าย ./site/ คัดลอก เนื้อหา ของ site ส่วน ./site คัดลอกตัวโฟลเดอร์ไปไว้ในปลายทาง เมื่อใช้ --delete ความต่างนี้จะเป็นตัวตัดสินว่าไดเรกทอรีใดถูกล้าง

SFTP: แบบโต้ตอบหรือแบบกราฟิก

ไคลเอนต์บรรทัดคำสั่งทำงานเหมือนตัวจัดการไฟล์ขนาดเล็ก:

sftp -P 20123 root@your-nat-host
sftp> put backup.sql
sftp> get /etc/nginx/nginx.conf
sftp> exit

ชอบอินเทอร์เฟซแบบกราฟิกมากกว่า? FileZilla, WinSCP หรือ Cyberduck เชื่อมต่อด้วยข้อมูลชุดเดียวกัน: โปรโตคอล SFTP โฮสต์ของคุณ พอร์ต 22 (หรือพอร์ต NAT ของคุณ) ผู้ใช้ root และคีย์ SSH หรือรหัสผ่านของคุณ

เร็วขึ้นด้วยคีย์ SSH

เครื่องมือทั้งหมดนี้ใช้ SSH การใช้คีย์ SSH จึงตัดการถามรหัสผ่าน และช่วยให้คุณตั้งการโอนไฟล์อัตโนมัติผ่าน cron ได้ หากยังไม่ได้ทำ: การยืนยันตัวตนด้วยคีย์ SSH เซิร์ฟเวอร์ EQVPS ใหม่ยอมรับรหัสผ่าน root จากแผงควบคุมจนกว่าคุณจะเปลี่ยนไปใช้คีย์ ซึ่งเราแนะนำให้ทำตั้งแต่วันแรก

การโอนไฟล์ขนาดใหญ่

สำหรับข้อมูลหลายสิบกิกะไบต์ rsync คือตัวเลือกเดียวที่สมเหตุสมผล: หากการเชื่อมต่อหลุด ให้รันคำสั่งเดิมอีกครั้ง แล้วมันจะทำต่อจากจุดที่ค้างไว้ รันมันใน tmux หรือ screen บนเครื่องที่ส่ง เพื่อไม่ให้การพับหน้าจอแล็ปท็อปหยุดการทำงาน

ที่เกี่ยวข้อง

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

scp กับ rsync ต่างกันอย่างไร?

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

จะใช้พอร์ต SSH ที่ไม่ใช่ค่ามาตรฐานอย่างไร?

scp และ sftp ใช้ -P ตัวใหญ่ (scp -P 20123) ssh ใช้ -p ตัวเล็ก ส่วน rsync รับแบบนี้: rsync -e 'ssh -p 20123' บนแพ็กเกจ NAT ของ EQVPS พอร์ต SSH ส่วนตัวแสดงอยู่ในแผงควบคุม

ใช้ไคลเอนต์แบบกราฟิกได้ไหม?

ได้ ไคลเอนต์ SFTP ใดก็ได้ (FileZilla, WinSCP, Cyberduck) ใช้โฮสต์ พอร์ต ผู้ใช้ และคีย์ SSH หรือรหัสผ่านชุดเดียวกับที่คุณใช้กับ SSH ให้เลือกโปรโตคอล SFTP ไม่ใช่ FTP

ใช้งานจาก Windows ได้ไหม?

Windows 10 และ 11 มี OpenSSH ในตัว scp และ sftp จึงทำงานใน PowerShell ได้เหมือนที่นี่ทุกประการ rsync ไม่ได้ติดมาด้วย ให้ใช้ผ่าน WSL หรือใช้ฟีเจอร์ซิงก์ของ WinSCP

เครื่องหมายทับท้ายใน rsync หมายถึงอะไร?

'rsync -a site/ dest/' คัดลอกเนื้อหาของ site ไปไว้ใน dest ส่วน 'rsync -a site dest/' จะสร้าง dest/site หากใช้ผิดร่วมกับ --delete คุณอาจล้างโฟลเดอร์ผิดตัว จึงควรรันด้วย --dry-run ก่อน

ความคิดเห็น

ยังไม่มีความคิดเห็น เป็นคนแรกสิ

แสดงความคิดเห็น

ความคิดเห็นจะถูกตรวจสอบก่อนแสดง