−25%

cho Windows trả theo năm, đến 31/10. Xem các gói

EQVPS

Cách chuyển tệp lên VPS: scp, rsync và SFTP

Sao chép tệp tới và từ máy chủ bằng scp, đồng bộ thư mục lớn bằng rsync có khả năng tiếp tục, hoặc dùng trình khách SFTP, kể cả trên NAT với cổng SSH riêng.

Sớm hay muộn, tệp cũng phải lên máy chủ: bản build của trang web, bản dump cơ sở dữ liệu, một cấu hình bạn viết trên máy. Bạn không cần máy chủ FTP cho việc đó: SSH đã cho bạn ba công cụ tốt. Mọi ví dụ đều dùng địa chỉ minh họa; hãy thay bằng địa chỉ của máy chủ bạn.

Nắm rõ thông tin kết nối

scp: sao chép một tệp hoặc thư mục

Tải một tệp lên:

scp backup.sql root@203.0.113.10:/root/

Tải một tệp về:

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

Cả một thư mục:

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

Trên gói NAT, thêm cổng bằng -P viết hoa:

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

rsync: công cụ đúng cho thư mục

rsync chỉ gửi phần khác biệt, hiển thị tiến độ và tiếp tục nếu kết nối bị ngắt. Nó phải được cài ở cả hai đầu (apt install -y rsync).

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

Với cổng SSH tùy chỉnh:

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

Để đích đến trở thành bản sao y hệt (xóa các tệp bạn đã xóa trên máy), hãy thêm --delete, nhưng xem trước nó sẽ làm gì:

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

Cẩn thận với dấu gạch chéo ở cuối. ./site/ sao chép nội dung của site; ./site sao chép chính thư mục vào đích. Với --delete, khác biệt đó quyết định thư mục nào bị xóa sạch.

SFTP: tương tác hoặc đồ họa

Trình khách dòng lệnh hoạt động như một trình quản lý tệp nhỏ:

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

Thích giao diện đồ họa hơn? FileZilla, WinSCP hoặc Cyberduck kết nối bằng cùng thông tin: giao thức SFTP, máy chủ của bạn, cổng 22 (hoặc cổng NAT), người dùng root và khóa SSH hoặc mật khẩu của bạn.

Nhanh hơn với khóa SSH

Mọi công cụ này đều dùng SSH, nên một khóa SSH sẽ loại bỏ các lần hỏi mật khẩu và cho phép bạn tự động hóa việc truyền tệp bằng cron. Nếu chưa làm: xác thực bằng khóa SSH. Máy chủ EQVPS mới chấp nhận mật khẩu root từ panel cho tới khi bạn chuyển sang khóa, điều chúng tôi khuyên bạn nên làm ngay ngày đầu.

Truyền dữ liệu lớn

Với hàng chục gigabyte, rsync là lựa chọn hợp lý duy nhất: nếu kết nối bị ngắt, chạy lại đúng lệnh đó và nó sẽ tiếp tục từ chỗ dừng. Hãy chạy nó trong tmux hoặc screen trên máy gửi, để việc gập máy tính không làm nó dừng.

Liên quan

FAQ

scp và rsync khác nhau thế nào?

scp sao chép mọi thứ mỗi lần. rsync so sánh hai phía và chỉ gửi phần đã thay đổi, có thể tiếp tục các lần truyền bị gián đoạn và có thể nhân bản một thư mục. Với một tệp đơn lẻ, scp là đủ; với thư mục bạn đồng bộ thường xuyên, hãy dùng rsync.

Làm sao dùng cổng SSH không chuẩn?

scp và sftp dùng -P viết hoa (scp -P 20123), ssh dùng -p viết thường, còn rsync nhận như sau: rsync -e 'ssh -p 20123'. Trên các gói NAT của EQVPS, cổng SSH cá nhân được hiển thị trong panel.

Tôi có thể dùng trình khách đồ họa không?

Có. Bất kỳ trình khách SFTP nào (FileZilla, WinSCP, Cyberduck) đều dùng cùng máy chủ, cổng, người dùng và khóa SSH hoặc mật khẩu như khi bạn dùng SSH. Hãy chọn giao thức SFTP, không phải FTP.

Cách này có dùng được trên Windows không?

Windows 10 và 11 có sẵn OpenSSH, nên scp và sftp chạy trong PowerShell đúng như ở đây. rsync không có sẵn; hãy dùng nó qua WSL hoặc dùng tính năng đồng bộ của WinSCP.

Dấu gạch chéo ở cuối trong rsync có nghĩa gì?

'rsync -a site/ dest/' sao chép nội dung của site vào dest. 'rsync -a site dest/' tạo ra dest/site. Nếu nhầm điều này khi dùng --delete, bạn có thể xóa sạch nhầm thư mục, vì vậy hãy chạy với --dry-run trước.

Bình luận

Chưa có bình luận nào. Hãy là người đầu tiên.

Để lại bình luận

Bình luận được kiểm duyệt trước khi hiển thị.